summaryrefslogtreecommitdiff
path: root/chromium/third_party/ffmpeg
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-10-24 11:30:15 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-10-30 12:56:19 +0000
commit6036726eb981b6c4b42047513b9d3f4ac865daac (patch)
tree673593e70678e7789766d1f732eb51f613a2703b /chromium/third_party/ffmpeg
parent466052c4e7c052268fd931888cd58961da94c586 (diff)
downloadqtwebengine-chromium-6036726eb981b6c4b42047513b9d3f4ac865daac.tar.gz
BASELINE: Update Chromium to 70.0.3538.78
Change-Id: Ie634710bf039e26c1957f4ae45e101bd4c434ae7 Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'chromium/third_party/ffmpeg')
-rw-r--r--chromium/third_party/ffmpeg/Changelog4
-rw-r--r--chromium/third_party/ffmpeg/MAINTAINERS1
-rw-r--r--chromium/third_party/ffmpeg/Makefile1
-rw-r--r--chromium/third_party/ffmpeg/README.chromium2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/android/arm-neon/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/android/arm-neon/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/android/arm64/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/android/arm64/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/android/ia32/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/android/ia32/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/android/mips64el/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/android/mips64el/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/android/mipsel/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/android/mipsel/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/android/x64/config.asm11
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/android/x64/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/android/x64/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/linux-noasm/x64/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/linux-noasm/x64/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/linux/arm-neon/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/linux/arm-neon/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/linux/arm/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/linux/arm/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/linux/arm64/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/linux/arm64/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/linux/ia32/config.asm11
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/linux/ia32/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/linux/ia32/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/linux/mips64el/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/linux/mips64el/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/linux/mipsel/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/linux/mipsel/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/linux/x64/config.asm11
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/linux/x64/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/linux/x64/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/mac/x64/config.asm11
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/mac/x64/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/mac/x64/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/win/ia32/config.asm11
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/win/ia32/config.h13
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/win/ia32/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/win/x64/config.asm11
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/win/x64/config.h13
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chrome/win/x64/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux-noasm/x64/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux-noasm/x64/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm-neon/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm-neon/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm64/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm64/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/ia32/config.asm11
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/ia32/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/ia32/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/mips64el/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/mips64el/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/mipsel/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/mipsel/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/x64/config.asm11
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/x64/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/x64/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/android/arm-neon/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/android/arm-neon/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/android/arm64/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/android/arm64/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/android/ia32/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/android/ia32/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/android/mips64el/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/android/mips64el/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/android/mipsel/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/android/mipsel/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/android/x64/config.asm11
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/android/x64/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/android/x64/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/linux-noasm/x64/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/linux-noasm/x64/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.asm11
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/linux/mips64el/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/linux/mips64el/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/linux/mipsel/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/linux/mipsel/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.asm11
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/linux/x64/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/mac/x64/config.asm11
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/mac/x64/config.h15
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/mac/x64/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/win/ia32/config.asm11
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/win/ia32/config.h13
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/win/ia32/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/win/x64/config.asm11
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/win/x64/config.h13
-rw-r--r--chromium/third_party/ffmpeg/chromium/config/Chromium/win/x64/libavutil/ffversion.h2
-rw-r--r--chromium/third_party/ffmpeg/chromium/patches/README49
-rw-r--r--chromium/third_party/ffmpeg/chromium/patches/config_flag_changes.txt11
-rwxr-xr-xchromium/third_party/ffmpeg/chromium/scripts/find_patches.py27
-rw-r--r--chromium/third_party/ffmpeg/chromium/scripts/robo_branch.py155
-rw-r--r--chromium/third_party/ffmpeg/chromium/scripts/robo_build.py4
-rw-r--r--chromium/third_party/ffmpeg/chromium/scripts/robo_lib.py34
-rwxr-xr-xchromium/third_party/ffmpeg/chromium/scripts/robosushi.py45
-rwxr-xr-xchromium/third_party/ffmpeg/configure38
-rw-r--r--chromium/third_party/ffmpeg/doc/fate.texi5
-rw-r--r--chromium/third_party/ffmpeg/doc/filters.texi216
-rw-r--r--chromium/third_party/ffmpeg/doc/formats.texi42
-rw-r--r--chromium/third_party/ffmpeg/doc/indevs.texi227
-rw-r--r--chromium/third_party/ffmpeg/doc/outdevs.texi62
-rw-r--r--chromium/third_party/ffmpeg/ffmpeg_generated.gni1
-rw-r--r--chromium/third_party/ffmpeg/fftools/cmdutils.c2
-rw-r--r--chromium/third_party/ffmpeg/fftools/ffmpeg.c91
-rw-r--r--chromium/third_party/ffmpeg/fftools/ffmpeg_filter.c2
-rw-r--r--chromium/third_party/ffmpeg/fftools/ffmpeg_opt.c15
-rw-r--r--chromium/third_party/ffmpeg/fftools/ffplay.c27
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/Makefile4
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/aacdec_fixed.c2
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/aarch64/h264dsp_init_aarch64.c12
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/ac3_parser.c4
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/ac3dec.c7
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/allcodecs.c1
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/atrac9dec.c929
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/atrac9tab.h1633
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/av1.h42
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/av1_parse.c103
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/av1_parse.h126
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/avcodec.h1
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/bink.c22
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/cdgraphics.c4
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/cfhd.c12
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/cfhd.h3
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/codec_desc.c7
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/cscd.c2
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/decode.c51
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/dirac_dwt_template.c4
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/dpx.c57
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/dvbsub_parser.c16
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/dvbsubdec.c44
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/dvdsub_parser.c9
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/dvdsubdec.c21
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/dvdsubenc.c2
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/error_resilience.c3
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/escape124.c6
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/extract_extradata_bsf.c82
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/fft_template.c2
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/ffv1dec.c10
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/ffv1enc.c2
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/h263dec.c5
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/h264_parser.c19
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/h264_slice.c5
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/hevc_ps.c8
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/indeo4.c5
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/internal.h2
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/jpeg2000dec.c13
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/lagarith.c9
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/libaomenc.c41
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/libopenjpegdec.c1
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/libopenjpegenc.c7
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/libx265.c8
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/libzvbi-teletextdec.c15
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/magicyuv.c4
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/mediacodecdec_common.c8
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/mediacodecdec_common.h1
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/mips/vc1dsp_mips.h2
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/mips/vc1dsp_mmi.c15
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/mjpegdec.c9
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/mpeg4videodec.c39
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/mpegaudiodecheader.h3
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/nvenc.c12
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/parser.c85
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/parsers.c106
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/pngdec.c4
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/ppc/hevcdsp.c8
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/qsv.c5
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/qsvenc.h2
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/ra144.c4
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/shorten.c4
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/truemotion2.c4
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/tscc.c30
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/utils.c2
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/v4l2_m2m_dec.c5
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/vaapi_vc1.c8
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/vc1.h1
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/vc1_block.c178
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/vc1_loopfilter.c177
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/vc1dec.c71
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/vc1dsp.c15
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/vc1dsp.h2
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/version.h4
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/videotoolboxenc.c81
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/vp8.c6
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/vp8_parser.c5
-rw-r--r--chromium/third_party/ffmpeg/libavdevice/decklink_common.cpp30
-rw-r--r--chromium/third_party/ffmpeg/libavdevice/decklink_common.h43
-rw-r--r--chromium/third_party/ffmpeg/libavdevice/decklink_common_c.h1
-rw-r--r--chromium/third_party/ffmpeg/libavdevice/decklink_dec.cpp125
-rw-r--r--chromium/third_party/ffmpeg/libavdevice/decklink_dec_c.c9
-rw-r--r--chromium/third_party/ffmpeg/libavdevice/v4l2enc.c2
-rw-r--r--chromium/third_party/ffmpeg/libavdevice/version.h2
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/Makefile22
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/af_afir.c4
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/af_aiir.c4
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/af_amerge.c2
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/af_atempo.c6
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/allfilters.c9
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/boxblur.c127
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/boxblur.h48
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/colorspace.c91
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/colorspace.h43
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/dnn_backend_native.c283
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/dnn_backend_tf.c74
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/dnn_espcn.h12637
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/dnn_interface.h4
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/dnn_srcnn.h14
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/framesync.c2
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/framesync.h6
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/graphdump.c2
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/opencl.h27
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/opencl/colorspace_common.cl220
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/opencl/convolution.cl82
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/opencl/tonemap.cl272
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/opencl_source.h2
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/setpts.c5
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/version.h2
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/vf_avgblur_opencl.c311
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/vf_boxblur.c116
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/vf_colorconstancy.c758
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/vf_colorspace.c136
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/vf_convolution_opencl.c274
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/vf_drawtext.c4
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/vf_lensfun.c548
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/vf_minterpolate.c4
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/vf_overlay_opencl.c73
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/vf_program_opencl.c14
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/vf_sr.c354
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/vf_srcnn.c250
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/vf_tonemap_opencl.c603
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/vf_unsharp_opencl.c109
-rw-r--r--chromium/third_party/ffmpeg/libavfilter/vf_weave.c32
-rw-r--r--chromium/third_party/ffmpeg/libavformat/Makefile2
-rw-r--r--chromium/third_party/ffmpeg/libavformat/aadec.c115
-rw-r--r--chromium/third_party/ffmpeg/libavformat/amr.c12
-rw-r--r--chromium/third_party/ffmpeg/libavformat/apngdec.c4
-rw-r--r--chromium/third_party/ffmpeg/libavformat/asfdec_o.c3
-rw-r--r--chromium/third_party/ffmpeg/libavformat/av1.c108
-rw-r--r--chromium/third_party/ffmpeg/libavformat/av1.h70
-rw-r--r--chromium/third_party/ffmpeg/libavformat/avformat.h4
-rw-r--r--chromium/third_party/ffmpeg/libavformat/aviobuf.c4
-rw-r--r--chromium/third_party/ffmpeg/libavformat/bink.c14
-rw-r--r--chromium/third_party/ffmpeg/libavformat/hlsenc.c2
-rw-r--r--chromium/third_party/ffmpeg/libavformat/icecast.c2
-rw-r--r--chromium/third_party/ffmpeg/libavformat/isom.c1
-rw-r--r--chromium/third_party/ffmpeg/libavformat/mms.c44
-rw-r--r--chromium/third_party/ffmpeg/libavformat/mov.c191
-rw-r--r--chromium/third_party/ffmpeg/libavformat/movenc.c132
-rw-r--r--chromium/third_party/ffmpeg/libavformat/movenc.h1
-rw-r--r--chromium/third_party/ffmpeg/libavformat/mpegts.c1
-rw-r--r--chromium/third_party/ffmpeg/libavformat/mpjpegdec.c2
-rw-r--r--chromium/third_party/ffmpeg/libavformat/mxf.h10
-rw-r--r--chromium/third_party/ffmpeg/libavformat/mxfdec.c677
-rw-r--r--chromium/third_party/ffmpeg/libavformat/options_table.h4
-rw-r--r--chromium/third_party/ffmpeg/libavformat/pva.c4
-rw-r--r--chromium/third_party/ffmpeg/libavformat/riff.c1
-rw-r--r--chromium/third_party/ffmpeg/libavformat/rmdec.c2
-rw-r--r--chromium/third_party/ffmpeg/libavformat/rtpenc_chain.c2
-rw-r--r--chromium/third_party/ffmpeg/libavformat/tedcaptionsdec.c2
-rw-r--r--chromium/third_party/ffmpeg/libavformat/version.h5
-rw-r--r--chromium/third_party/ffmpeg/libavformat/yuv4mpegdec.c8
-rw-r--r--chromium/third_party/ffmpeg/libavformat/yuv4mpegenc.c37
-rw-r--r--chromium/third_party/ffmpeg/libavutil/Makefile1
-rw-r--r--chromium/third_party/ffmpeg/libavutil/common.h2
-rw-r--r--chromium/third_party/ffmpeg/libavutil/encryption_info.c146
-rw-r--r--chromium/third_party/ffmpeg/libavutil/encryption_info.h7
-rw-r--r--chromium/third_party/ffmpeg/libavutil/hwcontext.c7
-rw-r--r--chromium/third_party/ffmpeg/libavutil/hwcontext_internal.h5
-rw-r--r--chromium/third_party/ffmpeg/libavutil/hwcontext_opencl.c19
-rw-r--r--chromium/third_party/ffmpeg/libavutil/log.c6
-rw-r--r--chromium/third_party/ffmpeg/libavutil/pixfmt.h4
-rw-r--r--chromium/third_party/ffmpeg/libavutil/x86/cpu.c2
-rw-r--r--chromium/third_party/ffmpeg/libavutil/x86/pixelutils.asm8
-rw-r--r--chromium/third_party/ffmpeg/tools/qt-faststart.c418
-rw-r--r--chromium/third_party/ffmpeg/tools/target_dec_fuzzer.c44
288 files changed, 23586 insertions, 2515 deletions
diff --git a/chromium/third_party/ffmpeg/Changelog b/chromium/third_party/ffmpeg/Changelog
index 784e09aeae5..807a05dec92 100644
--- a/chromium/third_party/ffmpeg/Changelog
+++ b/chromium/third_party/ffmpeg/Changelog
@@ -12,6 +12,10 @@ version <next>:
- adeclick filter
- adeclip filter
- libtensorflow backend for DNN based filters like srcnn
+- vc1 decoder is now bit-exact
+- ATRAC9 decoder
+- lensfun wrapper filter
+- colorconstancy filter
version 4.0:
diff --git a/chromium/third_party/ffmpeg/MAINTAINERS b/chromium/third_party/ffmpeg/MAINTAINERS
index 78f450dda60..234b655cefb 100644
--- a/chromium/third_party/ffmpeg/MAINTAINERS
+++ b/chromium/third_party/ffmpeg/MAINTAINERS
@@ -332,6 +332,7 @@ Filters:
vf_bwdif Thomas Mundt (CC <thomas.mundt@hr.de>)
vf_chromakey.c Timo Rothenpieler
vf_colorchannelmixer.c Paul B Mahol
+ vf_colorconstancy.c Mina Sami (CC <minas.gorgy@gmail.com>)
vf_colorbalance.c Paul B Mahol
vf_colorkey.c Timo Rothenpieler
vf_colorlevels.c Paul B Mahol
diff --git a/chromium/third_party/ffmpeg/Makefile b/chromium/third_party/ffmpeg/Makefile
index 0cd0a1d6f2d..4bf1dfedcfc 100644
--- a/chromium/third_party/ffmpeg/Makefile
+++ b/chromium/third_party/ffmpeg/Makefile
@@ -58,6 +58,7 @@ tools/target_dec_%_fuzzer$(EXESUF): $(FF_DEP_LIBS)
CONFIGURABLE_COMPONENTS = \
$(wildcard $(FFLIBS:%=$(SRC_PATH)/lib%/all*.c)) \
$(SRC_PATH)/libavcodec/bitstream_filters.c \
+ $(SRC_PATH)/libavcodec/parsers.c \
$(SRC_PATH)/libavformat/protocols.c \
config.h: ffbuild/.config
diff --git a/chromium/third_party/ffmpeg/README.chromium b/chromium/third_party/ffmpeg/README.chromium
index 43b8ef6fe72..fe45954f4e2 100644
--- a/chromium/third_party/ffmpeg/README.chromium
+++ b/chromium/third_party/ffmpeg/README.chromium
@@ -3,7 +3,7 @@ URL: http://ffmpeg.org/
License: LGPL 2.1
License File: CREDITS.chromium
Upstream Git: git://source.ffmpeg.org/ffmpeg.git
-Last Upstream Merge: 2c2d689c56646cce64d02a3b75f61c12c5589260, May 21 2018
+Last Upstream Merge: a5c17cf43e42ae3562a66a3f350cd1619361a395, July 31 2018
This file documents the layout of the Chromium copy of FFmpeg, some common
tasks, and how to create the build files and related configurations.
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/android/arm-neon/config.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/android/arm-neon/config.h
index 339941f2b09..ad802dac571 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/android/arm-neon/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/android/arm-neon/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --enable-small --enable-cross-compile --sysroot=/usr/local/google2/chrome-client2/src/third_party/android_ndk/platforms/android-16/arch-arm --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/android_ndk/sysroot/usr/include --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/android_ndk/sysroot/usr/include/arm-linux-androideabi --extra-cflags='--target=arm-linux-androideabi' --extra-ldflags='--target=arm-linux-androideabi' --extra-ldflags='--gcc-toolchain=/usr/local/google2/chrome-client2/src/third_party/android_ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/' --target-os=android --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-neon --extra-cflags='-mtune=generic-armv7-a' --extra-cflags='-mfloat-abi=softfp' --extra-cflags='-mfpu=neon' --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld' --enable-demuxer=aac --enable-parser=aac --enable-decoder=aac" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --enable-small --enable-cross-compile --sysroot=/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/platforms/android-16/arch-arm --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/sysroot/usr/include --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/sysroot/usr/include/arm-linux-androideabi --extra-cflags='--target=arm-linux-androideabi' --extra-ldflags='--target=arm-linux-androideabi' --extra-ldflags='--gcc-toolchain=/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/' --target-os=android --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-neon --extra-cflags='-mtune=generic-armv7-a' --extra-cflags='-mfloat-abi=softfp' --extra-cflags='-mfpu=neon' --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld' --enable-demuxer=aac --enable-parser=aac --enable-decoder=aac" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/android/arm-neon/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/android/arm-neon/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/android/arm-neon/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/android/arm-neon/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/android/arm64/config.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/android/arm64/config.h
index 085d3886690..5712a07f393 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/android/arm64/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/android/arm64/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --enable-small --enable-cross-compile --sysroot=/usr/local/google2/chrome-client2/src/third_party/android_ndk/platforms/android-21/arch-arm64 --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/android_ndk/sysroot/usr/include --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/android_ndk/sysroot/usr/include/aarch64-linux-android --extra-cflags='--target=aarch64-linux-android' --extra-ldflags='--target=aarch64-linux-android' --extra-ldflags='--gcc-toolchain=/usr/local/google2/chrome-client2/src/third_party/android_ndk/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/' --target-os=android --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic --cc=clang --cxx=clang++ --ld=clang --enable-demuxer=aac --enable-parser=aac --enable-decoder=aac" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --enable-small --enable-cross-compile --sysroot=/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/platforms/android-21/arch-arm64 --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/sysroot/usr/include --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/sysroot/usr/include/aarch64-linux-android --extra-cflags='--target=aarch64-linux-android' --extra-ldflags='--target=aarch64-linux-android' --extra-ldflags='--gcc-toolchain=/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/' --target-os=android --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic --cc=clang --cxx=clang++ --ld=clang --enable-demuxer=aac --enable-parser=aac --enable-decoder=aac" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/android/arm64/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/android/arm64/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/android/arm64/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/android/arm64/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/android/ia32/config.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/android/ia32/config.h
index 55fd903565f..f3044376095 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/android/ia32/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/android/ia32/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --enable-small --enable-cross-compile --sysroot=/usr/local/google2/chrome-client2/src/third_party/android_ndk/platforms/android-16/arch-x86 --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/android_ndk/sysroot/usr/include --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/android_ndk/sysroot/usr/include/i686-linux-android --extra-cflags='--target=i686-linux-android' --extra-ldflags='--target=i686-linux-android' --extra-ldflags='--gcc-toolchain=/usr/local/google2/chrome-client2/src/third_party/android_ndk/toolchains/x86-4.9/prebuilt/linux-x86_64/' --target-os=android --arch=i686 --extra-cflags='\"-m32\"' --extra-ldflags='\"-m32\"' --disable-x86asm --enable-pic --cc=clang --cxx=clang++ --ld=clang --enable-demuxer=aac --enable-parser=aac --enable-decoder=aac" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --enable-small --enable-cross-compile --sysroot=/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/platforms/android-16/arch-x86 --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/sysroot/usr/include --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/sysroot/usr/include/i686-linux-android --extra-cflags='--target=i686-linux-android' --extra-ldflags='--target=i686-linux-android' --extra-ldflags='--gcc-toolchain=/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/toolchains/x86-4.9/prebuilt/linux-x86_64/' --target-os=android --arch=i686 --extra-cflags='\"-m32\"' --extra-ldflags='\"-m32\"' --disable-x86asm --enable-pic --cc=clang --cxx=clang++ --ld=clang --enable-demuxer=aac --enable-parser=aac --enable-decoder=aac" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/android/ia32/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/android/ia32/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/android/ia32/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/android/ia32/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/android/mips64el/config.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/android/mips64el/config.h
index 8275115e7b2..abef9eb52ac 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/android/mips64el/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/android/mips64el/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --enable-small --enable-cross-compile --sysroot=/usr/local/google2/chrome-client2/src/third_party/android_ndk/platforms/android-21/arch-mips64 --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/android_ndk/sysroot/usr/include --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/android_ndk/sysroot/usr/include/mips64el-linux-android --extra-cflags='--target=mips64el-linux-android' --extra-ldflags='--target=mips64el-linux-android' --extra-ldflags='--gcc-toolchain=/usr/local/google2/chrome-client2/src/third_party/android_ndk/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/' --target-os=android --arch=mips64el --enable-mipsfpu --disable-mipsdsp --disable-mipsdspr2 --extra-cflags='-march=mips64el' --extra-ldflags='-z notext' --enable-mips64r6 --extra-cflags='-mcpu=mips64r6' --disable-mips64r2 --enable-msa --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld' --enable-demuxer=aac --enable-parser=aac --enable-decoder=aac" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --enable-small --enable-cross-compile --sysroot=/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/platforms/android-21/arch-mips64 --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/sysroot/usr/include --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/sysroot/usr/include/mips64el-linux-android --extra-cflags='--target=mips64el-linux-android' --extra-ldflags='--target=mips64el-linux-android' --extra-ldflags='--gcc-toolchain=/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/' --target-os=android --arch=mips64el --enable-mipsfpu --disable-mipsdsp --disable-mipsdspr2 --extra-cflags='-march=mips64el' --extra-ldflags='-z notext' --enable-mips64r6 --extra-cflags='-mcpu=mips64r6' --disable-mips64r2 --enable-msa --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld' --enable-demuxer=aac --enable-parser=aac --enable-decoder=aac" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/android/mips64el/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/android/mips64el/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/android/mips64el/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/android/mips64el/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/android/mipsel/config.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/android/mipsel/config.h
index 9ae8143f3a1..201cb5f1916 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/android/mipsel/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/android/mipsel/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --enable-small --enable-cross-compile --sysroot=/usr/local/google2/chrome-client2/src/third_party/android_ndk/platforms/android-16/arch-mips --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/android_ndk/sysroot/usr/include --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/android_ndk/sysroot/usr/include/mipsel-linux-android --extra-cflags='--target=mipsel-linux-android' --extra-ldflags='--target=mipsel-linux-android' --extra-ldflags='--gcc-toolchain=/usr/local/google2/chrome-client2/src/third_party/android_ndk/toolchains/mipsel-linux-android-4.9/prebuilt/linux-x86_64/' --target-os=android --arch=mipsel --disable-mips32r6 --disable-mips32r5 --disable-mips32r2 --disable-mipsdsp --disable-mipsdspr2 --disable-msa --enable-mipsfpu --extra-cflags='-march=mipsel' --extra-cflags='-mcpu=mips32' --extra-ldflags='-z notext' --enable-pic --cc=clang --cxx=clang++ --ld=clang --enable-demuxer=aac --enable-parser=aac --enable-decoder=aac" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --enable-small --enable-cross-compile --sysroot=/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/platforms/android-16/arch-mips --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/sysroot/usr/include --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/sysroot/usr/include/mipsel-linux-android --extra-cflags='--target=mipsel-linux-android' --extra-ldflags='--target=mipsel-linux-android' --extra-ldflags='--gcc-toolchain=/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/toolchains/mipsel-linux-android-4.9/prebuilt/linux-x86_64/' --target-os=android --arch=mipsel --disable-mips32r6 --disable-mips32r5 --disable-mips32r2 --disable-mipsdsp --disable-mipsdspr2 --disable-msa --enable-mipsfpu --extra-cflags='-march=mipsel' --extra-cflags='-mcpu=mips32' --extra-ldflags='-z notext' --enable-pic --cc=clang --cxx=clang++ --ld=clang --enable-demuxer=aac --enable-parser=aac --enable-decoder=aac" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/android/mipsel/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/android/mipsel/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/android/mipsel/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/android/mipsel/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/android/x64/config.asm b/chromium/third_party/ffmpeg/chromium/config/Chrome/android/x64/config.asm
index 5bf2a343f44..2652b409b96 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/android/x64/config.asm
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/android/x64/config.asm
@@ -402,6 +402,7 @@
%define CONFIG_OPENSSL 0
%define CONFIG_LIBTLS 0
%define CONFIG_GMP 0
+%define CONFIG_LIBLENSFUN 0
%define CONFIG_LIBOPENCORE_AMRNB 0
%define CONFIG_LIBOPENCORE_AMRWB 0
%define CONFIG_LIBVMAF 0
@@ -956,6 +957,7 @@
%define CONFIG_ATRAC3AL_DECODER 0
%define CONFIG_ATRAC3P_DECODER 0
%define CONFIG_ATRAC3PAL_DECODER 0
+%define CONFIG_ATRAC9_DECODER 0
%define CONFIG_BINKAUDIO_DCT_DECODER 0
%define CONFIG_BINKAUDIO_RDFT_DECODER 0
%define CONFIG_BMV_AUDIO_DECODER 0
@@ -1641,6 +1643,7 @@
%define CONFIG_BLACKFRAME_FILTER 0
%define CONFIG_BLEND_FILTER 0
%define CONFIG_BOXBLUR_FILTER 0
+%define CONFIG_BOXBLUR_OPENCL_FILTER 0
%define CONFIG_BWDIF_FILTER 0
%define CONFIG_CHROMAKEY_FILTER 0
%define CONFIG_CIESCOPE_FILTER 0
@@ -1709,6 +1712,7 @@
%define CONFIG_GBLUR_FILTER 0
%define CONFIG_GEQ_FILTER 0
%define CONFIG_GRADFUN_FILTER 0
+%define CONFIG_GREYEDGE_FILTER 0
%define CONFIG_HALDCLUT_FILTER 0
%define CONFIG_HFLIP_FILTER 0
%define CONFIG_HISTEQ_FILTER 0
@@ -1729,6 +1733,7 @@
%define CONFIG_INTERLEAVE_FILTER 0
%define CONFIG_KERNDEINT_FILTER 0
%define CONFIG_LENSCORRECTION_FILTER 0
+%define CONFIG_LENSFUN_FILTER 0
%define CONFIG_LIBVMAF_FILTER 0
%define CONFIG_LIMITER_FILTER 0
%define CONFIG_LOOP_FILTER 0
@@ -1774,6 +1779,7 @@
%define CONFIG_PP7_FILTER 0
%define CONFIG_PREMULTIPLY_FILTER 0
%define CONFIG_PREWITT_FILTER 0
+%define CONFIG_PREWITT_OPENCL_FILTER 0
%define CONFIG_PROCAMP_VAAPI_FILTER 0
%define CONFIG_PROGRAM_OPENCL_FILTER 0
%define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1790,6 +1796,7 @@
%define CONFIG_REPEATFIELDS_FILTER 0
%define CONFIG_REVERSE_FILTER 0
%define CONFIG_ROBERTS_FILTER 0
+%define CONFIG_ROBERTS_OPENCL_FILTER 0
%define CONFIG_ROTATE_FILTER 0
%define CONFIG_SAB_FILTER 0
%define CONFIG_SCALE_FILTER 0
@@ -1818,9 +1825,10 @@
%define CONFIG_SIGNATURE_FILTER 0
%define CONFIG_SMARTBLUR_FILTER 0
%define CONFIG_SOBEL_FILTER 0
+%define CONFIG_SOBEL_OPENCL_FILTER 0
%define CONFIG_SPLIT_FILTER 0
%define CONFIG_SPP_FILTER 0
-%define CONFIG_SRCNN_FILTER 0
+%define CONFIG_SR_FILTER 0
%define CONFIG_SSIM_FILTER 0
%define CONFIG_STEREO3D_FILTER 0
%define CONFIG_STREAMSELECT_FILTER 0
@@ -1838,6 +1846,7 @@
%define CONFIG_TLUT2_FILTER 0
%define CONFIG_TMIX_FILTER 0
%define CONFIG_TONEMAP_FILTER 0
+%define CONFIG_TONEMAP_OPENCL_FILTER 0
%define CONFIG_TRANSPOSE_FILTER 0
%define CONFIG_TRIM_FILTER 0
%define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/android/x64/config.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/android/x64/config.h
index 24233614296..fd77750dfbb 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/android/x64/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/android/x64/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --enable-small --enable-cross-compile --sysroot=/usr/local/google2/chrome-client2/src/third_party/android_ndk/platforms/android-21/arch-x86_64 --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/android_ndk/sysroot/usr/include --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/android_ndk/sysroot/usr/include/x86_64-linux-android --extra-cflags='--target=x86_64-linux-android' --extra-ldflags='--target=x86_64-linux-android' --extra-ldflags='--gcc-toolchain=/usr/local/google2/chrome-client2/src/third_party/android_ndk/toolchains/x86_64-4.9/prebuilt/linux-x86_64/' --target-os=android --arch=x86_64 --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld' --enable-demuxer=aac --enable-parser=aac --enable-decoder=aac" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --enable-small --enable-cross-compile --sysroot=/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/platforms/android-21/arch-x86_64 --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/sysroot/usr/include --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/sysroot/usr/include/x86_64-linux-android --extra-cflags='--target=x86_64-linux-android' --extra-ldflags='--target=x86_64-linux-android' --extra-ldflags='--gcc-toolchain=/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/toolchains/x86_64-4.9/prebuilt/linux-x86_64/' --target-os=android --arch=x86_64 --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld' --enable-demuxer=aac --enable-parser=aac --enable-decoder=aac" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/android/x64/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/android/x64/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/android/x64/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/android/x64/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux-noasm/x64/config.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux-noasm/x64/config.h
index 15c9f4620e2..1dd5a7e09de 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux-noasm/x64/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux-noasm/x64/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-lto --disable-asm --disable-inline-asm --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld' --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264'" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-lto --disable-asm --disable-inline-asm --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld' --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264'" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux-noasm/x64/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux-noasm/x64/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux-noasm/x64/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux-noasm/x64/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/arm-neon/config.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/arm-neon/config.h
index 612aeab1648..f3e73ea97ba 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/arm-neon/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/arm-neon/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --extra-cflags='--target=arm-linux-gnueabihf' --extra-ldflags='--target=arm-linux-gnueabihf' --sysroot=/usr/local/google2/chrome-client2/src/build/linux/debian_sid_arm-sysroot --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --extra-cflags=-O2 --enable-neon --extra-cflags='-mfpu=neon' --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld' --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264'" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --extra-cflags='--target=arm-linux-gnueabihf' --extra-ldflags='--target=arm-linux-gnueabihf' --sysroot=/usr/local/google/home/tguilbert/Code/chromium/src/build/linux/debian_sid_arm-sysroot --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --extra-cflags=-O2 --enable-neon --extra-cflags='-mfpu=neon' --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld' --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264'" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/arm-neon/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/arm-neon/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/arm-neon/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/arm-neon/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/arm/config.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/arm/config.h
index 8999bbfca09..5b1bab8d90f 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/arm/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/arm/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --extra-cflags='--target=arm-linux-gnueabihf' --extra-ldflags='--target=arm-linux-gnueabihf' --sysroot=/usr/local/google2/chrome-client2/src/build/linux/debian_sid_arm-sysroot --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --extra-cflags=-O2 --disable-neon --extra-cflags='-mfpu=vfpv3-d16' --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld' --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264'" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --extra-cflags='--target=arm-linux-gnueabihf' --extra-ldflags='--target=arm-linux-gnueabihf' --sysroot=/usr/local/google/home/tguilbert/Code/chromium/src/build/linux/debian_sid_arm-sysroot --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --extra-cflags=-O2 --disable-neon --extra-cflags='-mfpu=vfpv3-d16' --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld' --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264'" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/arm/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/arm/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/arm/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/arm/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/arm64/config.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/arm64/config.h
index f1374f66b55..29af8c4d6d2 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/arm64/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/arm64/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-cross-compile --cross-prefix=/usr/bin/aarch64-linux-gnu- --target-os=linux --extra-cflags='--target=aarch64-linux-gnu' --extra-ldflags='--target=aarch64-linux-gnu' --sysroot=/usr/local/google2/chrome-client2/src/build/linux/debian_sid_arm64-sysroot --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic --cc=clang --cxx=clang++ --ld=clang --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264'" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-cross-compile --cross-prefix=/usr/bin/aarch64-linux-gnu- --target-os=linux --extra-cflags='--target=aarch64-linux-gnu' --extra-ldflags='--target=aarch64-linux-gnu' --sysroot=/usr/local/google/home/tguilbert/Code/chromium/src/build/linux/debian_sid_arm64-sysroot --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic --cc=clang --cxx=clang++ --ld=clang --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264'" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/arm64/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/arm64/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/arm64/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/arm64/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/ia32/config.asm b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/ia32/config.asm
index b6cd026d28f..b1b412798ed 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/ia32/config.asm
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/ia32/config.asm
@@ -402,6 +402,7 @@
%define CONFIG_OPENSSL 0
%define CONFIG_LIBTLS 0
%define CONFIG_GMP 0
+%define CONFIG_LIBLENSFUN 0
%define CONFIG_LIBOPENCORE_AMRNB 0
%define CONFIG_LIBOPENCORE_AMRWB 0
%define CONFIG_LIBVMAF 0
@@ -956,6 +957,7 @@
%define CONFIG_ATRAC3AL_DECODER 0
%define CONFIG_ATRAC3P_DECODER 0
%define CONFIG_ATRAC3PAL_DECODER 0
+%define CONFIG_ATRAC9_DECODER 0
%define CONFIG_BINKAUDIO_DCT_DECODER 0
%define CONFIG_BINKAUDIO_RDFT_DECODER 0
%define CONFIG_BMV_AUDIO_DECODER 0
@@ -1641,6 +1643,7 @@
%define CONFIG_BLACKFRAME_FILTER 0
%define CONFIG_BLEND_FILTER 0
%define CONFIG_BOXBLUR_FILTER 0
+%define CONFIG_BOXBLUR_OPENCL_FILTER 0
%define CONFIG_BWDIF_FILTER 0
%define CONFIG_CHROMAKEY_FILTER 0
%define CONFIG_CIESCOPE_FILTER 0
@@ -1709,6 +1712,7 @@
%define CONFIG_GBLUR_FILTER 0
%define CONFIG_GEQ_FILTER 0
%define CONFIG_GRADFUN_FILTER 0
+%define CONFIG_GREYEDGE_FILTER 0
%define CONFIG_HALDCLUT_FILTER 0
%define CONFIG_HFLIP_FILTER 0
%define CONFIG_HISTEQ_FILTER 0
@@ -1729,6 +1733,7 @@
%define CONFIG_INTERLEAVE_FILTER 0
%define CONFIG_KERNDEINT_FILTER 0
%define CONFIG_LENSCORRECTION_FILTER 0
+%define CONFIG_LENSFUN_FILTER 0
%define CONFIG_LIBVMAF_FILTER 0
%define CONFIG_LIMITER_FILTER 0
%define CONFIG_LOOP_FILTER 0
@@ -1774,6 +1779,7 @@
%define CONFIG_PP7_FILTER 0
%define CONFIG_PREMULTIPLY_FILTER 0
%define CONFIG_PREWITT_FILTER 0
+%define CONFIG_PREWITT_OPENCL_FILTER 0
%define CONFIG_PROCAMP_VAAPI_FILTER 0
%define CONFIG_PROGRAM_OPENCL_FILTER 0
%define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1790,6 +1796,7 @@
%define CONFIG_REPEATFIELDS_FILTER 0
%define CONFIG_REVERSE_FILTER 0
%define CONFIG_ROBERTS_FILTER 0
+%define CONFIG_ROBERTS_OPENCL_FILTER 0
%define CONFIG_ROTATE_FILTER 0
%define CONFIG_SAB_FILTER 0
%define CONFIG_SCALE_FILTER 0
@@ -1818,9 +1825,10 @@
%define CONFIG_SIGNATURE_FILTER 0
%define CONFIG_SMARTBLUR_FILTER 0
%define CONFIG_SOBEL_FILTER 0
+%define CONFIG_SOBEL_OPENCL_FILTER 0
%define CONFIG_SPLIT_FILTER 0
%define CONFIG_SPP_FILTER 0
-%define CONFIG_SRCNN_FILTER 0
+%define CONFIG_SR_FILTER 0
%define CONFIG_SSIM_FILTER 0
%define CONFIG_STEREO3D_FILTER 0
%define CONFIG_STREAMSELECT_FILTER 0
@@ -1838,6 +1846,7 @@
%define CONFIG_TLUT2_FILTER 0
%define CONFIG_TMIX_FILTER 0
%define CONFIG_TONEMAP_FILTER 0
+%define CONFIG_TONEMAP_OPENCL_FILTER 0
%define CONFIG_TRANSPOSE_FILTER 0
%define CONFIG_TRIM_FILTER 0
%define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/ia32/config.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/ia32/config.h
index 65d19be18d2..ad9576cd927 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/ia32/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/ia32/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=i686 --extra-cflags='\"-m32\"' --extra-ldflags='\"-m32\"' --enable-pic --cc=clang --cxx=clang++ --ld=clang --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264'" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=i686 --extra-cflags='\"-m32\"' --extra-ldflags='\"-m32\"' --enable-pic --cc=clang --cxx=clang++ --ld=clang --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264'" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/ia32/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/ia32/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/ia32/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/ia32/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/mips64el/config.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/mips64el/config.h
index 98a87b7c7d7..9f9d18c8f73 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/mips64el/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/mips64el/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=mips64el --enable-mipsfpu --disable-mipsdsp --disable-mipsdspr2 --extra-cflags='-march=mips64el' --extra-ldflags='-z notext' --enable-cross-compile --target-os=linux --sysroot=/usr/local/google2/chrome-client2/src/build/linux/debian_sid_mips64el-sysroot --enable-mips64r2 --disable-mips64r6 --disable-msa --extra-cflags='-mcpu=mips64r2' --extra-cflags='--target=mips64el-linux-gnuabi64' --extra-ldflags='--target=mips64el-linux-gnuabi64' --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld' --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264'" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=mips64el --enable-mipsfpu --disable-mipsdsp --disable-mipsdspr2 --extra-cflags='-march=mips64el' --extra-ldflags='-z notext' --enable-cross-compile --target-os=linux --sysroot=/usr/local/google/home/tguilbert/Code/chromium/src/build/linux/debian_sid_mips64el-sysroot --enable-mips64r2 --disable-mips64r6 --disable-msa --extra-cflags='-mcpu=mips64r2' --extra-cflags='--target=mips64el-linux-gnuabi64' --extra-ldflags='--target=mips64el-linux-gnuabi64' --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld' --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264'" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/mips64el/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/mips64el/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/mips64el/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/mips64el/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/mipsel/config.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/mipsel/config.h
index 4d2d68d433c..813b34175e8 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/mipsel/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/mipsel/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=mipsel --disable-mips32r6 --disable-mips32r5 --disable-mips32r2 --disable-mipsdsp --disable-mipsdspr2 --disable-msa --enable-mipsfpu --extra-cflags='-march=mipsel' --extra-cflags='-mcpu=mips32' --extra-ldflags='-z notext' --enable-cross-compile --target-os=linux --sysroot=/usr/local/google2/chrome-client2/src/build/linux/debian_sid_mips-sysroot --extra-cflags='--target=mipsel-linux-gnu' --extra-ldflags='--target=mipsel-linux-gnu' --enable-pic --cc=clang --cxx=clang++ --ld=clang --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264'" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=mipsel --disable-mips32r6 --disable-mips32r5 --disable-mips32r2 --disable-mipsdsp --disable-mipsdspr2 --disable-msa --enable-mipsfpu --extra-cflags='-march=mipsel' --extra-cflags='-mcpu=mips32' --extra-ldflags='-z notext' --enable-cross-compile --target-os=linux --sysroot=/usr/local/google/home/tguilbert/Code/chromium/src/build/linux/debian_sid_mips-sysroot --extra-cflags='--target=mipsel-linux-gnu' --extra-ldflags='--target=mipsel-linux-gnu' --enable-pic --cc=clang --cxx=clang++ --ld=clang --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264'" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/mipsel/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/mipsel/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/mipsel/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/mipsel/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/x64/config.asm b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/x64/config.asm
index 98a4d7133fd..8ecf078d618 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/x64/config.asm
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/x64/config.asm
@@ -402,6 +402,7 @@
%define CONFIG_OPENSSL 0
%define CONFIG_LIBTLS 0
%define CONFIG_GMP 0
+%define CONFIG_LIBLENSFUN 0
%define CONFIG_LIBOPENCORE_AMRNB 0
%define CONFIG_LIBOPENCORE_AMRWB 0
%define CONFIG_LIBVMAF 0
@@ -956,6 +957,7 @@
%define CONFIG_ATRAC3AL_DECODER 0
%define CONFIG_ATRAC3P_DECODER 0
%define CONFIG_ATRAC3PAL_DECODER 0
+%define CONFIG_ATRAC9_DECODER 0
%define CONFIG_BINKAUDIO_DCT_DECODER 0
%define CONFIG_BINKAUDIO_RDFT_DECODER 0
%define CONFIG_BMV_AUDIO_DECODER 0
@@ -1641,6 +1643,7 @@
%define CONFIG_BLACKFRAME_FILTER 0
%define CONFIG_BLEND_FILTER 0
%define CONFIG_BOXBLUR_FILTER 0
+%define CONFIG_BOXBLUR_OPENCL_FILTER 0
%define CONFIG_BWDIF_FILTER 0
%define CONFIG_CHROMAKEY_FILTER 0
%define CONFIG_CIESCOPE_FILTER 0
@@ -1709,6 +1712,7 @@
%define CONFIG_GBLUR_FILTER 0
%define CONFIG_GEQ_FILTER 0
%define CONFIG_GRADFUN_FILTER 0
+%define CONFIG_GREYEDGE_FILTER 0
%define CONFIG_HALDCLUT_FILTER 0
%define CONFIG_HFLIP_FILTER 0
%define CONFIG_HISTEQ_FILTER 0
@@ -1729,6 +1733,7 @@
%define CONFIG_INTERLEAVE_FILTER 0
%define CONFIG_KERNDEINT_FILTER 0
%define CONFIG_LENSCORRECTION_FILTER 0
+%define CONFIG_LENSFUN_FILTER 0
%define CONFIG_LIBVMAF_FILTER 0
%define CONFIG_LIMITER_FILTER 0
%define CONFIG_LOOP_FILTER 0
@@ -1774,6 +1779,7 @@
%define CONFIG_PP7_FILTER 0
%define CONFIG_PREMULTIPLY_FILTER 0
%define CONFIG_PREWITT_FILTER 0
+%define CONFIG_PREWITT_OPENCL_FILTER 0
%define CONFIG_PROCAMP_VAAPI_FILTER 0
%define CONFIG_PROGRAM_OPENCL_FILTER 0
%define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1790,6 +1796,7 @@
%define CONFIG_REPEATFIELDS_FILTER 0
%define CONFIG_REVERSE_FILTER 0
%define CONFIG_ROBERTS_FILTER 0
+%define CONFIG_ROBERTS_OPENCL_FILTER 0
%define CONFIG_ROTATE_FILTER 0
%define CONFIG_SAB_FILTER 0
%define CONFIG_SCALE_FILTER 0
@@ -1818,9 +1825,10 @@
%define CONFIG_SIGNATURE_FILTER 0
%define CONFIG_SMARTBLUR_FILTER 0
%define CONFIG_SOBEL_FILTER 0
+%define CONFIG_SOBEL_OPENCL_FILTER 0
%define CONFIG_SPLIT_FILTER 0
%define CONFIG_SPP_FILTER 0
-%define CONFIG_SRCNN_FILTER 0
+%define CONFIG_SR_FILTER 0
%define CONFIG_SSIM_FILTER 0
%define CONFIG_STEREO3D_FILTER 0
%define CONFIG_STREAMSELECT_FILTER 0
@@ -1838,6 +1846,7 @@
%define CONFIG_TLUT2_FILTER 0
%define CONFIG_TMIX_FILTER 0
%define CONFIG_TONEMAP_FILTER 0
+%define CONFIG_TONEMAP_OPENCL_FILTER 0
%define CONFIG_TRANSPOSE_FILTER 0
%define CONFIG_TRIM_FILTER 0
%define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/x64/config.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/x64/config.h
index 2b6fb3d43d7..026747b2ca1 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/x64/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/x64/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-lto --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld' --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264'" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-lto --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld' --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264'" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/x64/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/x64/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/x64/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/linux/x64/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/mac/x64/config.asm b/chromium/third_party/ffmpeg/chromium/config/Chrome/mac/x64/config.asm
index 44d4044ad04..a4d3e3fdecb 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/mac/x64/config.asm
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/mac/x64/config.asm
@@ -402,6 +402,7 @@
%define CONFIG_OPENSSL 0
%define CONFIG_LIBTLS 0
%define CONFIG_GMP 0
+%define CONFIG_LIBLENSFUN 0
%define CONFIG_LIBOPENCORE_AMRNB 0
%define CONFIG_LIBOPENCORE_AMRWB 0
%define CONFIG_LIBVMAF 0
@@ -956,6 +957,7 @@
%define CONFIG_ATRAC3AL_DECODER 0
%define CONFIG_ATRAC3P_DECODER 0
%define CONFIG_ATRAC3PAL_DECODER 0
+%define CONFIG_ATRAC9_DECODER 0
%define CONFIG_BINKAUDIO_DCT_DECODER 0
%define CONFIG_BINKAUDIO_RDFT_DECODER 0
%define CONFIG_BMV_AUDIO_DECODER 0
@@ -1641,6 +1643,7 @@
%define CONFIG_BLACKFRAME_FILTER 0
%define CONFIG_BLEND_FILTER 0
%define CONFIG_BOXBLUR_FILTER 0
+%define CONFIG_BOXBLUR_OPENCL_FILTER 0
%define CONFIG_BWDIF_FILTER 0
%define CONFIG_CHROMAKEY_FILTER 0
%define CONFIG_CIESCOPE_FILTER 0
@@ -1709,6 +1712,7 @@
%define CONFIG_GBLUR_FILTER 0
%define CONFIG_GEQ_FILTER 0
%define CONFIG_GRADFUN_FILTER 0
+%define CONFIG_GREYEDGE_FILTER 0
%define CONFIG_HALDCLUT_FILTER 0
%define CONFIG_HFLIP_FILTER 0
%define CONFIG_HISTEQ_FILTER 0
@@ -1729,6 +1733,7 @@
%define CONFIG_INTERLEAVE_FILTER 0
%define CONFIG_KERNDEINT_FILTER 0
%define CONFIG_LENSCORRECTION_FILTER 0
+%define CONFIG_LENSFUN_FILTER 0
%define CONFIG_LIBVMAF_FILTER 0
%define CONFIG_LIMITER_FILTER 0
%define CONFIG_LOOP_FILTER 0
@@ -1774,6 +1779,7 @@
%define CONFIG_PP7_FILTER 0
%define CONFIG_PREMULTIPLY_FILTER 0
%define CONFIG_PREWITT_FILTER 0
+%define CONFIG_PREWITT_OPENCL_FILTER 0
%define CONFIG_PROCAMP_VAAPI_FILTER 0
%define CONFIG_PROGRAM_OPENCL_FILTER 0
%define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1790,6 +1796,7 @@
%define CONFIG_REPEATFIELDS_FILTER 0
%define CONFIG_REVERSE_FILTER 0
%define CONFIG_ROBERTS_FILTER 0
+%define CONFIG_ROBERTS_OPENCL_FILTER 0
%define CONFIG_ROTATE_FILTER 0
%define CONFIG_SAB_FILTER 0
%define CONFIG_SCALE_FILTER 0
@@ -1818,9 +1825,10 @@
%define CONFIG_SIGNATURE_FILTER 0
%define CONFIG_SMARTBLUR_FILTER 0
%define CONFIG_SOBEL_FILTER 0
+%define CONFIG_SOBEL_OPENCL_FILTER 0
%define CONFIG_SPLIT_FILTER 0
%define CONFIG_SPP_FILTER 0
-%define CONFIG_SRCNN_FILTER 0
+%define CONFIG_SR_FILTER 0
%define CONFIG_SSIM_FILTER 0
%define CONFIG_STEREO3D_FILTER 0
%define CONFIG_STREAMSELECT_FILTER 0
@@ -1838,6 +1846,7 @@
%define CONFIG_TLUT2_FILTER 0
%define CONFIG_TMIX_FILTER 0
%define CONFIG_TONEMAP_FILTER 0
+%define CONFIG_TONEMAP_OPENCL_FILTER 0
%define CONFIG_TRANSPOSE_FILTER 0
%define CONFIG_TRIM_FILTER 0
%define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/mac/x64/config.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/mac/x64/config.h
index 69722f139f8..99425f23c5d 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/mac/x64/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/mac/x64/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-pic --cc=clang --cxx=clang++ --ld=clang --enable-cross-compile --cc=clang --ld=ld64.lld --nm=llvm-nm --ar=llvm-ar --target-os=darwin --extra-cflags='--target=i686-apple-darwin-macho' --extra-cflags=-F/usr/local/google2/chrome-client2/src/build/win_files/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks --extra-cflags='-mmacosx-version-min=10.10' --extra-cflags=-fblocks --extra-cflags=-nostdinc --extra-cflags=-isystem/usr/local/google2/chrome-client2/src/build/win_files/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include --extra-cflags=-isystem/usr/local/google2/chrome-client2/src/build/win_files/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/c++/4.2.1 --extra-cflags=-isystem/usr/local/google2/chrome-client2/src/build/win_files/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/8.1.0/include/ --extra-ldflags=-syslibroot --extra-ldflags=/usr/local/google2/chrome-client2/src/build/win_files/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk --extra-ldflags=-L/usr/local/google2/chrome-client2/src/build/win_files/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/lib --extra-ldflags=-lSystem --extra-ldflags=-macosx_version_min --extra-ldflags=10.10 --extra-ldflags=-sdk_version --extra-ldflags=10.10 --arch=x86_64 --extra-cflags=-m64 --extra-ldflags=-m64 --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264'" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-pic --cc=clang --cxx=clang++ --ld=clang --enable-cross-compile --cc=clang --ld=ld64.lld --nm=llvm-nm --ar=llvm-ar --target-os=darwin --extra-cflags='--target=i686-apple-darwin-macho' --extra-cflags=-F/usr/local/google/home/tguilbert/Code/chromium/src/build/win_files/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks --extra-cflags='-mmacosx-version-min=10.10' --extra-cflags=-fblocks --extra-cflags=-nostdinc --extra-cflags=-isystem/usr/local/google/home/tguilbert/Code/chromium/src/build/win_files/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include --extra-cflags=-isystem/usr/local/google/home/tguilbert/Code/chromium/src/build/win_files/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/c++/4.2.1 --extra-cflags=-isystem/usr/local/google/home/tguilbert/Code/chromium/src/build/win_files/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/8.1.0/include/ --extra-ldflags=-syslibroot --extra-ldflags=/usr/local/google/home/tguilbert/Code/chromium/src/build/win_files/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk --extra-ldflags=-L/usr/local/google/home/tguilbert/Code/chromium/src/build/win_files/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/lib --extra-ldflags=-lSystem --extra-ldflags=-macosx_version_min --extra-ldflags=10.10 --extra-ldflags=-sdk_version --extra-ldflags=10.10 --arch=x86_64 --extra-cflags=-m64 --extra-ldflags=-m64 --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264'" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX "_"
#define EXTERN_ASM _
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/mac/x64/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/mac/x64/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/mac/x64/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/mac/x64/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/win/ia32/config.asm b/chromium/third_party/ffmpeg/chromium/config/Chrome/win/ia32/config.asm
index 4d6d7396a98..4e63c0899ba 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/win/ia32/config.asm
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/win/ia32/config.asm
@@ -402,6 +402,7 @@
%define CONFIG_OPENSSL 0
%define CONFIG_LIBTLS 0
%define CONFIG_GMP 0
+%define CONFIG_LIBLENSFUN 0
%define CONFIG_LIBOPENCORE_AMRNB 0
%define CONFIG_LIBOPENCORE_AMRWB 0
%define CONFIG_LIBVMAF 0
@@ -956,6 +957,7 @@
%define CONFIG_ATRAC3AL_DECODER 0
%define CONFIG_ATRAC3P_DECODER 0
%define CONFIG_ATRAC3PAL_DECODER 0
+%define CONFIG_ATRAC9_DECODER 0
%define CONFIG_BINKAUDIO_DCT_DECODER 0
%define CONFIG_BINKAUDIO_RDFT_DECODER 0
%define CONFIG_BMV_AUDIO_DECODER 0
@@ -1641,6 +1643,7 @@
%define CONFIG_BLACKFRAME_FILTER 0
%define CONFIG_BLEND_FILTER 0
%define CONFIG_BOXBLUR_FILTER 0
+%define CONFIG_BOXBLUR_OPENCL_FILTER 0
%define CONFIG_BWDIF_FILTER 0
%define CONFIG_CHROMAKEY_FILTER 0
%define CONFIG_CIESCOPE_FILTER 0
@@ -1709,6 +1712,7 @@
%define CONFIG_GBLUR_FILTER 0
%define CONFIG_GEQ_FILTER 0
%define CONFIG_GRADFUN_FILTER 0
+%define CONFIG_GREYEDGE_FILTER 0
%define CONFIG_HALDCLUT_FILTER 0
%define CONFIG_HFLIP_FILTER 0
%define CONFIG_HISTEQ_FILTER 0
@@ -1729,6 +1733,7 @@
%define CONFIG_INTERLEAVE_FILTER 0
%define CONFIG_KERNDEINT_FILTER 0
%define CONFIG_LENSCORRECTION_FILTER 0
+%define CONFIG_LENSFUN_FILTER 0
%define CONFIG_LIBVMAF_FILTER 0
%define CONFIG_LIMITER_FILTER 0
%define CONFIG_LOOP_FILTER 0
@@ -1774,6 +1779,7 @@
%define CONFIG_PP7_FILTER 0
%define CONFIG_PREMULTIPLY_FILTER 0
%define CONFIG_PREWITT_FILTER 0
+%define CONFIG_PREWITT_OPENCL_FILTER 0
%define CONFIG_PROCAMP_VAAPI_FILTER 0
%define CONFIG_PROGRAM_OPENCL_FILTER 0
%define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1790,6 +1796,7 @@
%define CONFIG_REPEATFIELDS_FILTER 0
%define CONFIG_REVERSE_FILTER 0
%define CONFIG_ROBERTS_FILTER 0
+%define CONFIG_ROBERTS_OPENCL_FILTER 0
%define CONFIG_ROTATE_FILTER 0
%define CONFIG_SAB_FILTER 0
%define CONFIG_SCALE_FILTER 0
@@ -1818,9 +1825,10 @@
%define CONFIG_SIGNATURE_FILTER 0
%define CONFIG_SMARTBLUR_FILTER 0
%define CONFIG_SOBEL_FILTER 0
+%define CONFIG_SOBEL_OPENCL_FILTER 0
%define CONFIG_SPLIT_FILTER 0
%define CONFIG_SPP_FILTER 0
-%define CONFIG_SRCNN_FILTER 0
+%define CONFIG_SR_FILTER 0
%define CONFIG_SSIM_FILTER 0
%define CONFIG_STEREO3D_FILTER 0
%define CONFIG_STREAMSELECT_FILTER 0
@@ -1838,6 +1846,7 @@
%define CONFIG_TLUT2_FILTER 0
%define CONFIG_TMIX_FILTER 0
%define CONFIG_TONEMAP_FILTER 0
+%define CONFIG_TONEMAP_OPENCL_FILTER 0
%define CONFIG_TRANSPOSE_FILTER 0
%define CONFIG_TRIM_FILTER 0
%define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/win/ia32/config.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/win/ia32/config.h
index 65689976f16..b105e818c70 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/win/ia32/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/win/ia32/config.h
@@ -1,7 +1,7 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --toolchain=msvc --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/ffmpeg/chromium/include/win --target-os=win32 --enable-cross-compile --cc=clang-cl --ld=lld-link --nm=llvm-nm --ar=llvm-ar --extra-cflags=-O2 --extra-cflags=-m32 --extra-cflags=-imsvc/usr/local/google2/chrome-client2/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/um --extra-cflags=-imsvc/usr/local/google2/chrome-client2/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/shared --extra-cflags=-imsvc/usr/local/google2/chrome-client2/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/winrt --extra-cflags=-imsvc/usr/local/google2/chrome-client2/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/ucrt --extra-cflags=-imsvc/usr/local/google2/chrome-client2/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/include --extra-cflags=-imsvc/usr/local/google2/chrome-client2/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/atlmfc/include --extra-ldflags='-libpath:/usr/local/google2/chrome-client2/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/atlmfc/lib/x86' --extra-ldflags='-libpath:/usr/local/google2/chrome-client2/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Lib/10.0.17134.0/ucrt/x86' --extra-ldflags='-libpath:/usr/local/google2/chrome-client2/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Lib/10.0.17134.0/um/x86' --extra-ldflags='-libpath:/usr/local/google2/chrome-client2/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/lib/x86' --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264'" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --toolchain=msvc --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/ffmpeg/chromium/include/win --target-os=win32 --enable-cross-compile --cc=clang-cl --ld=lld-link --nm=llvm-nm --ar=llvm-ar --extra-cflags=-O2 --extra-cflags=-m32 --extra-cflags=-imsvc/usr/local/google/home/tguilbert/Code/chromium/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/um --extra-cflags=-imsvc/usr/local/google/home/tguilbert/Code/chromium/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/shared --extra-cflags=-imsvc/usr/local/google/home/tguilbert/Code/chromium/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/winrt --extra-cflags=-imsvc/usr/local/google/home/tguilbert/Code/chromium/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/ucrt --extra-cflags=-imsvc/usr/local/google/home/tguilbert/Code/chromium/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/include --extra-cflags=-imsvc/usr/local/google/home/tguilbert/Code/chromium/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/atlmfc/include --extra-ldflags='-libpath:/usr/local/google/home/tguilbert/Code/chromium/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/atlmfc/lib/x86' --extra-ldflags='-libpath:-libpath:../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/lib/x86 -libpath:../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Lib/10.0.17134.0/um/x86 -libpath:../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Lib/10.0.17134.0/ucrt/x86 -libpath:../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/atlmfc/lib/x86' --extra-ldflags='-libpath:/usr/local/google/home/tguilbert/Code/chromium/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Lib/10.0.17134.0/ucrt/x86' --extra-ldflags='-libpath:/usr/local/google/home/tguilbert/Code/chromium/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Lib/10.0.17134.0/um/x86' --extra-ldflags='-libpath:/usr/local/google/home/tguilbert/Code/chromium/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/lib/x86' --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264'" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/win/ia32/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/win/ia32/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/win/ia32/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/win/ia32/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/win/x64/config.asm b/chromium/third_party/ffmpeg/chromium/config/Chrome/win/x64/config.asm
index 50a29f2c078..23b15575fa5 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/win/x64/config.asm
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/win/x64/config.asm
@@ -402,6 +402,7 @@
%define CONFIG_OPENSSL 0
%define CONFIG_LIBTLS 0
%define CONFIG_GMP 0
+%define CONFIG_LIBLENSFUN 0
%define CONFIG_LIBOPENCORE_AMRNB 0
%define CONFIG_LIBOPENCORE_AMRWB 0
%define CONFIG_LIBVMAF 0
@@ -956,6 +957,7 @@
%define CONFIG_ATRAC3AL_DECODER 0
%define CONFIG_ATRAC3P_DECODER 0
%define CONFIG_ATRAC3PAL_DECODER 0
+%define CONFIG_ATRAC9_DECODER 0
%define CONFIG_BINKAUDIO_DCT_DECODER 0
%define CONFIG_BINKAUDIO_RDFT_DECODER 0
%define CONFIG_BMV_AUDIO_DECODER 0
@@ -1641,6 +1643,7 @@
%define CONFIG_BLACKFRAME_FILTER 0
%define CONFIG_BLEND_FILTER 0
%define CONFIG_BOXBLUR_FILTER 0
+%define CONFIG_BOXBLUR_OPENCL_FILTER 0
%define CONFIG_BWDIF_FILTER 0
%define CONFIG_CHROMAKEY_FILTER 0
%define CONFIG_CIESCOPE_FILTER 0
@@ -1709,6 +1712,7 @@
%define CONFIG_GBLUR_FILTER 0
%define CONFIG_GEQ_FILTER 0
%define CONFIG_GRADFUN_FILTER 0
+%define CONFIG_GREYEDGE_FILTER 0
%define CONFIG_HALDCLUT_FILTER 0
%define CONFIG_HFLIP_FILTER 0
%define CONFIG_HISTEQ_FILTER 0
@@ -1729,6 +1733,7 @@
%define CONFIG_INTERLEAVE_FILTER 0
%define CONFIG_KERNDEINT_FILTER 0
%define CONFIG_LENSCORRECTION_FILTER 0
+%define CONFIG_LENSFUN_FILTER 0
%define CONFIG_LIBVMAF_FILTER 0
%define CONFIG_LIMITER_FILTER 0
%define CONFIG_LOOP_FILTER 0
@@ -1774,6 +1779,7 @@
%define CONFIG_PP7_FILTER 0
%define CONFIG_PREMULTIPLY_FILTER 0
%define CONFIG_PREWITT_FILTER 0
+%define CONFIG_PREWITT_OPENCL_FILTER 0
%define CONFIG_PROCAMP_VAAPI_FILTER 0
%define CONFIG_PROGRAM_OPENCL_FILTER 0
%define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1790,6 +1796,7 @@
%define CONFIG_REPEATFIELDS_FILTER 0
%define CONFIG_REVERSE_FILTER 0
%define CONFIG_ROBERTS_FILTER 0
+%define CONFIG_ROBERTS_OPENCL_FILTER 0
%define CONFIG_ROTATE_FILTER 0
%define CONFIG_SAB_FILTER 0
%define CONFIG_SCALE_FILTER 0
@@ -1818,9 +1825,10 @@
%define CONFIG_SIGNATURE_FILTER 0
%define CONFIG_SMARTBLUR_FILTER 0
%define CONFIG_SOBEL_FILTER 0
+%define CONFIG_SOBEL_OPENCL_FILTER 0
%define CONFIG_SPLIT_FILTER 0
%define CONFIG_SPP_FILTER 0
-%define CONFIG_SRCNN_FILTER 0
+%define CONFIG_SR_FILTER 0
%define CONFIG_SSIM_FILTER 0
%define CONFIG_STEREO3D_FILTER 0
%define CONFIG_STREAMSELECT_FILTER 0
@@ -1838,6 +1846,7 @@
%define CONFIG_TLUT2_FILTER 0
%define CONFIG_TMIX_FILTER 0
%define CONFIG_TONEMAP_FILTER 0
+%define CONFIG_TONEMAP_OPENCL_FILTER 0
%define CONFIG_TRANSPOSE_FILTER 0
%define CONFIG_TRIM_FILTER 0
%define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/win/x64/config.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/win/x64/config.h
index ac4d5d30e26..370f57a52c7 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/win/x64/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/win/x64/config.h
@@ -1,7 +1,7 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --toolchain=msvc --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/ffmpeg/chromium/include/win --target-os=win64 --enable-cross-compile --cc=clang-cl --ld=lld-link --nm=llvm-nm --ar=llvm-ar --extra-cflags=-O2 --extra-cflags=-imsvc/usr/local/google2/chrome-client2/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/um --extra-cflags=-imsvc/usr/local/google2/chrome-client2/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/shared --extra-cflags=-imsvc/usr/local/google2/chrome-client2/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/winrt --extra-cflags=-imsvc/usr/local/google2/chrome-client2/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/ucrt --extra-cflags=-imsvc/usr/local/google2/chrome-client2/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/include --extra-cflags=-imsvc/usr/local/google2/chrome-client2/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/atlmfc/include --extra-ldflags='-libpath:/usr/local/google2/chrome-client2/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/atlmfc/lib/x64' --extra-ldflags='-libpath:/usr/local/google2/chrome-client2/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Lib/10.0.17134.0/ucrt/x64' --extra-ldflags='-libpath:/usr/local/google2/chrome-client2/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Lib/10.0.17134.0/um/x64' --extra-ldflags='-libpath:/usr/local/google2/chrome-client2/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/lib/x64' --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264'" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --toolchain=msvc --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/ffmpeg/chromium/include/win --target-os=win64 --enable-cross-compile --cc=clang-cl --ld=lld-link --nm=llvm-nm --ar=llvm-ar --extra-cflags=-O2 --extra-cflags=-imsvc/usr/local/google/home/tguilbert/Code/chromium/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/um --extra-cflags=-imsvc/usr/local/google/home/tguilbert/Code/chromium/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/shared --extra-cflags=-imsvc/usr/local/google/home/tguilbert/Code/chromium/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/winrt --extra-cflags=-imsvc/usr/local/google/home/tguilbert/Code/chromium/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/ucrt --extra-cflags=-imsvc/usr/local/google/home/tguilbert/Code/chromium/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/include --extra-cflags=-imsvc/usr/local/google/home/tguilbert/Code/chromium/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/atlmfc/include --extra-ldflags='-libpath:/usr/local/google/home/tguilbert/Code/chromium/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/atlmfc/lib/x64' --extra-ldflags='-libpath:-libpath:../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/lib/x64 -libpath:../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Lib/10.0.17134.0/um/x64 -libpath:../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Lib/10.0.17134.0/ucrt/x64 -libpath:../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/atlmfc/lib/x64' --extra-ldflags='-libpath:/usr/local/google/home/tguilbert/Code/chromium/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Lib/10.0.17134.0/ucrt/x64' --extra-ldflags='-libpath:/usr/local/google/home/tguilbert/Code/chromium/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Lib/10.0.17134.0/um/x64' --extra-ldflags='-libpath:/usr/local/google/home/tguilbert/Code/chromium/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/lib/x64' --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264'" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chrome/win/x64/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chrome/win/x64/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chrome/win/x64/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chrome/win/x64/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux-noasm/x64/config.h b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux-noasm/x64/config.h
index cd87f49d618..9afab4de858 100644
--- a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux-noasm/x64/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux-noasm/x64/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-lto --disable-asm --disable-inline-asm --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld' --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264' --enable-decoder=mpeg4 --enable-parser='h263,mpeg4video' --enable-demuxer=avi --enable-demuxer=amr --enable-decoder='amrnb,amrwb' --enable-decoder=gsm_ms --enable-parser=gsm" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-lto --disable-asm --disable-inline-asm --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld' --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264' --enable-decoder=mpeg4 --enable-parser='h263,mpeg4video' --enable-demuxer=avi --enable-demuxer=amr --enable-decoder='amrnb,amrwb' --enable-decoder=gsm_ms --enable-parser=gsm" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux-noasm/x64/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux-noasm/x64/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux-noasm/x64/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux-noasm/x64/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm-neon/config.h b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm-neon/config.h
index 7080200a5dc..2b28acb7650 100644
--- a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm-neon/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm-neon/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --extra-cflags='--target=arm-linux-gnueabihf' --extra-ldflags='--target=arm-linux-gnueabihf' --sysroot=/usr/local/google2/chrome-client2/src/build/linux/debian_sid_arm-sysroot --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --extra-cflags=-O2 --enable-neon --extra-cflags='-mfpu=neon' --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld' --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264' --enable-decoder=mpeg4 --enable-parser='h263,mpeg4video' --enable-demuxer=avi --enable-demuxer=amr --enable-decoder='amrnb,amrwb' --enable-decoder=gsm_ms --enable-parser=gsm" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --extra-cflags='--target=arm-linux-gnueabihf' --extra-ldflags='--target=arm-linux-gnueabihf' --sysroot=/usr/local/google/home/tguilbert/Code/chromium/src/build/linux/debian_sid_arm-sysroot --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --extra-cflags=-O2 --enable-neon --extra-cflags='-mfpu=neon' --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld' --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264' --enable-decoder=mpeg4 --enable-parser='h263,mpeg4video' --enable-demuxer=avi --enable-demuxer=amr --enable-decoder='amrnb,amrwb' --enable-decoder=gsm_ms --enable-parser=gsm" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm-neon/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm-neon/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm-neon/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm-neon/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm/config.h b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm/config.h
index 26d6544c4ca..747fb4e7f0b 100644
--- a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --extra-cflags='--target=arm-linux-gnueabihf' --extra-ldflags='--target=arm-linux-gnueabihf' --sysroot=/usr/local/google2/chrome-client2/src/build/linux/debian_sid_arm-sysroot --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --extra-cflags=-O2 --disable-neon --extra-cflags='-mfpu=vfpv3-d16' --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld' --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264' --enable-decoder=mpeg4 --enable-parser='h263,mpeg4video' --enable-demuxer=avi --enable-demuxer=amr --enable-decoder='amrnb,amrwb' --enable-decoder=gsm_ms --enable-parser=gsm" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --extra-cflags='--target=arm-linux-gnueabihf' --extra-ldflags='--target=arm-linux-gnueabihf' --sysroot=/usr/local/google/home/tguilbert/Code/chromium/src/build/linux/debian_sid_arm-sysroot --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --extra-cflags=-O2 --disable-neon --extra-cflags='-mfpu=vfpv3-d16' --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld' --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264' --enable-decoder=mpeg4 --enable-parser='h263,mpeg4video' --enable-demuxer=avi --enable-demuxer=amr --enable-decoder='amrnb,amrwb' --enable-decoder=gsm_ms --enable-parser=gsm" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm64/config.h b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm64/config.h
index bd288c1d18e..a38d08cbb9c 100644
--- a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm64/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm64/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-cross-compile --cross-prefix=/usr/bin/aarch64-linux-gnu- --target-os=linux --extra-cflags='--target=aarch64-linux-gnu' --extra-ldflags='--target=aarch64-linux-gnu' --sysroot=/usr/local/google2/chrome-client2/src/build/linux/debian_sid_arm64-sysroot --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic --cc=clang --cxx=clang++ --ld=clang --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264' --enable-decoder=mpeg4 --enable-parser='h263,mpeg4video' --enable-demuxer=avi --enable-demuxer=amr --enable-decoder='amrnb,amrwb' --enable-decoder=gsm_ms --enable-parser=gsm" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-cross-compile --cross-prefix=/usr/bin/aarch64-linux-gnu- --target-os=linux --extra-cflags='--target=aarch64-linux-gnu' --extra-ldflags='--target=aarch64-linux-gnu' --sysroot=/usr/local/google/home/tguilbert/Code/chromium/src/build/linux/debian_sid_arm64-sysroot --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic --cc=clang --cxx=clang++ --ld=clang --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264' --enable-decoder=mpeg4 --enable-parser='h263,mpeg4video' --enable-demuxer=avi --enable-demuxer=amr --enable-decoder='amrnb,amrwb' --enable-decoder=gsm_ms --enable-parser=gsm" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm64/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm64/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm64/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/arm64/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/ia32/config.asm b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/ia32/config.asm
index 3d6f63fcb58..28292cc300d 100644
--- a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/ia32/config.asm
+++ b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/ia32/config.asm
@@ -402,6 +402,7 @@
%define CONFIG_OPENSSL 0
%define CONFIG_LIBTLS 0
%define CONFIG_GMP 0
+%define CONFIG_LIBLENSFUN 0
%define CONFIG_LIBOPENCORE_AMRNB 0
%define CONFIG_LIBOPENCORE_AMRWB 0
%define CONFIG_LIBVMAF 0
@@ -956,6 +957,7 @@
%define CONFIG_ATRAC3AL_DECODER 0
%define CONFIG_ATRAC3P_DECODER 0
%define CONFIG_ATRAC3PAL_DECODER 0
+%define CONFIG_ATRAC9_DECODER 0
%define CONFIG_BINKAUDIO_DCT_DECODER 0
%define CONFIG_BINKAUDIO_RDFT_DECODER 0
%define CONFIG_BMV_AUDIO_DECODER 0
@@ -1641,6 +1643,7 @@
%define CONFIG_BLACKFRAME_FILTER 0
%define CONFIG_BLEND_FILTER 0
%define CONFIG_BOXBLUR_FILTER 0
+%define CONFIG_BOXBLUR_OPENCL_FILTER 0
%define CONFIG_BWDIF_FILTER 0
%define CONFIG_CHROMAKEY_FILTER 0
%define CONFIG_CIESCOPE_FILTER 0
@@ -1709,6 +1712,7 @@
%define CONFIG_GBLUR_FILTER 0
%define CONFIG_GEQ_FILTER 0
%define CONFIG_GRADFUN_FILTER 0
+%define CONFIG_GREYEDGE_FILTER 0
%define CONFIG_HALDCLUT_FILTER 0
%define CONFIG_HFLIP_FILTER 0
%define CONFIG_HISTEQ_FILTER 0
@@ -1729,6 +1733,7 @@
%define CONFIG_INTERLEAVE_FILTER 0
%define CONFIG_KERNDEINT_FILTER 0
%define CONFIG_LENSCORRECTION_FILTER 0
+%define CONFIG_LENSFUN_FILTER 0
%define CONFIG_LIBVMAF_FILTER 0
%define CONFIG_LIMITER_FILTER 0
%define CONFIG_LOOP_FILTER 0
@@ -1774,6 +1779,7 @@
%define CONFIG_PP7_FILTER 0
%define CONFIG_PREMULTIPLY_FILTER 0
%define CONFIG_PREWITT_FILTER 0
+%define CONFIG_PREWITT_OPENCL_FILTER 0
%define CONFIG_PROCAMP_VAAPI_FILTER 0
%define CONFIG_PROGRAM_OPENCL_FILTER 0
%define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1790,6 +1796,7 @@
%define CONFIG_REPEATFIELDS_FILTER 0
%define CONFIG_REVERSE_FILTER 0
%define CONFIG_ROBERTS_FILTER 0
+%define CONFIG_ROBERTS_OPENCL_FILTER 0
%define CONFIG_ROTATE_FILTER 0
%define CONFIG_SAB_FILTER 0
%define CONFIG_SCALE_FILTER 0
@@ -1818,9 +1825,10 @@
%define CONFIG_SIGNATURE_FILTER 0
%define CONFIG_SMARTBLUR_FILTER 0
%define CONFIG_SOBEL_FILTER 0
+%define CONFIG_SOBEL_OPENCL_FILTER 0
%define CONFIG_SPLIT_FILTER 0
%define CONFIG_SPP_FILTER 0
-%define CONFIG_SRCNN_FILTER 0
+%define CONFIG_SR_FILTER 0
%define CONFIG_SSIM_FILTER 0
%define CONFIG_STEREO3D_FILTER 0
%define CONFIG_STREAMSELECT_FILTER 0
@@ -1838,6 +1846,7 @@
%define CONFIG_TLUT2_FILTER 0
%define CONFIG_TMIX_FILTER 0
%define CONFIG_TONEMAP_FILTER 0
+%define CONFIG_TONEMAP_OPENCL_FILTER 0
%define CONFIG_TRANSPOSE_FILTER 0
%define CONFIG_TRIM_FILTER 0
%define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/ia32/config.h b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/ia32/config.h
index aa433ab6117..01075800f09 100644
--- a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/ia32/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/ia32/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=i686 --extra-cflags='\"-m32\"' --extra-ldflags='\"-m32\"' --enable-pic --cc=clang --cxx=clang++ --ld=clang --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264' --enable-decoder=mpeg4 --enable-parser='h263,mpeg4video' --enable-demuxer=avi --enable-demuxer=amr --enable-decoder='amrnb,amrwb' --enable-decoder=gsm_ms --enable-parser=gsm" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=i686 --extra-cflags='\"-m32\"' --extra-ldflags='\"-m32\"' --enable-pic --cc=clang --cxx=clang++ --ld=clang --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264' --enable-decoder=mpeg4 --enable-parser='h263,mpeg4video' --enable-demuxer=avi --enable-demuxer=amr --enable-decoder='amrnb,amrwb' --enable-decoder=gsm_ms --enable-parser=gsm" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/ia32/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/ia32/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/ia32/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/ia32/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/mips64el/config.h b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/mips64el/config.h
index 177be757239..f44ba1bf058 100644
--- a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/mips64el/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/mips64el/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=mips64el --enable-mipsfpu --disable-mipsdsp --disable-mipsdspr2 --extra-cflags='-march=mips64el' --extra-ldflags='-z notext' --enable-cross-compile --target-os=linux --sysroot=/usr/local/google2/chrome-client2/src/build/linux/debian_sid_mips64el-sysroot --enable-mips64r2 --disable-mips64r6 --disable-msa --extra-cflags='-mcpu=mips64r2' --extra-cflags='--target=mips64el-linux-gnuabi64' --extra-ldflags='--target=mips64el-linux-gnuabi64' --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld' --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264' --enable-decoder=mpeg4 --enable-parser='h263,mpeg4video' --enable-demuxer=avi --enable-demuxer=amr --enable-decoder='amrnb,amrwb' --enable-decoder=gsm_ms --enable-parser=gsm" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=mips64el --enable-mipsfpu --disable-mipsdsp --disable-mipsdspr2 --extra-cflags='-march=mips64el' --extra-ldflags='-z notext' --enable-cross-compile --target-os=linux --sysroot=/usr/local/google/home/tguilbert/Code/chromium/src/build/linux/debian_sid_mips64el-sysroot --enable-mips64r2 --disable-mips64r6 --disable-msa --extra-cflags='-mcpu=mips64r2' --extra-cflags='--target=mips64el-linux-gnuabi64' --extra-ldflags='--target=mips64el-linux-gnuabi64' --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld' --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264' --enable-decoder=mpeg4 --enable-parser='h263,mpeg4video' --enable-demuxer=avi --enable-demuxer=amr --enable-decoder='amrnb,amrwb' --enable-decoder=gsm_ms --enable-parser=gsm" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/mips64el/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/mips64el/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/mips64el/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/mips64el/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/mipsel/config.h b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/mipsel/config.h
index 7b5e14f7214..44ca065d82c 100644
--- a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/mipsel/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/mipsel/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=mipsel --disable-mips32r6 --disable-mips32r5 --disable-mips32r2 --disable-mipsdsp --disable-mipsdspr2 --disable-msa --enable-mipsfpu --extra-cflags='-march=mipsel' --extra-cflags='-mcpu=mips32' --extra-ldflags='-z notext' --enable-cross-compile --target-os=linux --sysroot=/usr/local/google2/chrome-client2/src/build/linux/debian_sid_mips-sysroot --extra-cflags='--target=mipsel-linux-gnu' --extra-ldflags='--target=mipsel-linux-gnu' --enable-pic --cc=clang --cxx=clang++ --ld=clang --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264' --enable-decoder=mpeg4 --enable-parser='h263,mpeg4video' --enable-demuxer=avi --enable-demuxer=amr --enable-decoder='amrnb,amrwb' --enable-decoder=gsm_ms --enable-parser=gsm" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=mipsel --disable-mips32r6 --disable-mips32r5 --disable-mips32r2 --disable-mipsdsp --disable-mipsdspr2 --disable-msa --enable-mipsfpu --extra-cflags='-march=mipsel' --extra-cflags='-mcpu=mips32' --extra-ldflags='-z notext' --enable-cross-compile --target-os=linux --sysroot=/usr/local/google/home/tguilbert/Code/chromium/src/build/linux/debian_sid_mips-sysroot --extra-cflags='--target=mipsel-linux-gnu' --extra-ldflags='--target=mipsel-linux-gnu' --enable-pic --cc=clang --cxx=clang++ --ld=clang --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264' --enable-decoder=mpeg4 --enable-parser='h263,mpeg4video' --enable-demuxer=avi --enable-demuxer=amr --enable-decoder='amrnb,amrwb' --enable-decoder=gsm_ms --enable-parser=gsm" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/mipsel/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/mipsel/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/mipsel/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/mipsel/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/x64/config.asm b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/x64/config.asm
index db2389340bf..8645bfc4516 100644
--- a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/x64/config.asm
+++ b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/x64/config.asm
@@ -402,6 +402,7 @@
%define CONFIG_OPENSSL 0
%define CONFIG_LIBTLS 0
%define CONFIG_GMP 0
+%define CONFIG_LIBLENSFUN 0
%define CONFIG_LIBOPENCORE_AMRNB 0
%define CONFIG_LIBOPENCORE_AMRWB 0
%define CONFIG_LIBVMAF 0
@@ -956,6 +957,7 @@
%define CONFIG_ATRAC3AL_DECODER 0
%define CONFIG_ATRAC3P_DECODER 0
%define CONFIG_ATRAC3PAL_DECODER 0
+%define CONFIG_ATRAC9_DECODER 0
%define CONFIG_BINKAUDIO_DCT_DECODER 0
%define CONFIG_BINKAUDIO_RDFT_DECODER 0
%define CONFIG_BMV_AUDIO_DECODER 0
@@ -1641,6 +1643,7 @@
%define CONFIG_BLACKFRAME_FILTER 0
%define CONFIG_BLEND_FILTER 0
%define CONFIG_BOXBLUR_FILTER 0
+%define CONFIG_BOXBLUR_OPENCL_FILTER 0
%define CONFIG_BWDIF_FILTER 0
%define CONFIG_CHROMAKEY_FILTER 0
%define CONFIG_CIESCOPE_FILTER 0
@@ -1709,6 +1712,7 @@
%define CONFIG_GBLUR_FILTER 0
%define CONFIG_GEQ_FILTER 0
%define CONFIG_GRADFUN_FILTER 0
+%define CONFIG_GREYEDGE_FILTER 0
%define CONFIG_HALDCLUT_FILTER 0
%define CONFIG_HFLIP_FILTER 0
%define CONFIG_HISTEQ_FILTER 0
@@ -1729,6 +1733,7 @@
%define CONFIG_INTERLEAVE_FILTER 0
%define CONFIG_KERNDEINT_FILTER 0
%define CONFIG_LENSCORRECTION_FILTER 0
+%define CONFIG_LENSFUN_FILTER 0
%define CONFIG_LIBVMAF_FILTER 0
%define CONFIG_LIMITER_FILTER 0
%define CONFIG_LOOP_FILTER 0
@@ -1774,6 +1779,7 @@
%define CONFIG_PP7_FILTER 0
%define CONFIG_PREMULTIPLY_FILTER 0
%define CONFIG_PREWITT_FILTER 0
+%define CONFIG_PREWITT_OPENCL_FILTER 0
%define CONFIG_PROCAMP_VAAPI_FILTER 0
%define CONFIG_PROGRAM_OPENCL_FILTER 0
%define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1790,6 +1796,7 @@
%define CONFIG_REPEATFIELDS_FILTER 0
%define CONFIG_REVERSE_FILTER 0
%define CONFIG_ROBERTS_FILTER 0
+%define CONFIG_ROBERTS_OPENCL_FILTER 0
%define CONFIG_ROTATE_FILTER 0
%define CONFIG_SAB_FILTER 0
%define CONFIG_SCALE_FILTER 0
@@ -1818,9 +1825,10 @@
%define CONFIG_SIGNATURE_FILTER 0
%define CONFIG_SMARTBLUR_FILTER 0
%define CONFIG_SOBEL_FILTER 0
+%define CONFIG_SOBEL_OPENCL_FILTER 0
%define CONFIG_SPLIT_FILTER 0
%define CONFIG_SPP_FILTER 0
-%define CONFIG_SRCNN_FILTER 0
+%define CONFIG_SR_FILTER 0
%define CONFIG_SSIM_FILTER 0
%define CONFIG_STEREO3D_FILTER 0
%define CONFIG_STREAMSELECT_FILTER 0
@@ -1838,6 +1846,7 @@
%define CONFIG_TLUT2_FILTER 0
%define CONFIG_TMIX_FILTER 0
%define CONFIG_TONEMAP_FILTER 0
+%define CONFIG_TONEMAP_OPENCL_FILTER 0
%define CONFIG_TRANSPOSE_FILTER 0
%define CONFIG_TRIM_FILTER 0
%define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/x64/config.h b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/x64/config.h
index ab16fe003b5..4d851be838c 100644
--- a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/x64/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/x64/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-lto --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld' --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264' --enable-decoder=mpeg4 --enable-parser='h263,mpeg4video' --enable-demuxer=avi --enable-demuxer=amr --enable-decoder='amrnb,amrwb' --enable-decoder=gsm_ms --enable-parser=gsm" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-lto --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld' --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264' --enable-decoder=mpeg4 --enable-parser='h263,mpeg4video' --enable-demuxer=avi --enable-demuxer=amr --enable-decoder='amrnb,amrwb' --enable-decoder=gsm_ms --enable-parser=gsm" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/x64/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/x64/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/x64/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/ChromeOS/linux/x64/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/android/arm-neon/config.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/android/arm-neon/config.h
index 2898620950c..5f542d540fe 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/android/arm-neon/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/android/arm-neon/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --enable-small --enable-cross-compile --sysroot=/usr/local/google2/chrome-client2/src/third_party/android_ndk/platforms/android-16/arch-arm --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/android_ndk/sysroot/usr/include --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/android_ndk/sysroot/usr/include/arm-linux-androideabi --extra-cflags='--target=arm-linux-androideabi' --extra-ldflags='--target=arm-linux-androideabi' --extra-ldflags='--gcc-toolchain=/usr/local/google2/chrome-client2/src/third_party/android_ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/' --target-os=android --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-neon --extra-cflags='-mtune=generic-armv7-a' --extra-cflags='-mfloat-abi=softfp' --extra-cflags='-mfpu=neon' --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld'" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --enable-small --enable-cross-compile --sysroot=/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/platforms/android-16/arch-arm --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/sysroot/usr/include --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/sysroot/usr/include/arm-linux-androideabi --extra-cflags='--target=arm-linux-androideabi' --extra-ldflags='--target=arm-linux-androideabi' --extra-ldflags='--gcc-toolchain=/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/' --target-os=android --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-neon --extra-cflags='-mtune=generic-armv7-a' --extra-cflags='-mfloat-abi=softfp' --extra-cflags='-mfpu=neon' --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld'" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/android/arm-neon/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/android/arm-neon/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/android/arm-neon/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/android/arm-neon/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/android/arm64/config.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/android/arm64/config.h
index 4b072c561bb..ceb7440abc8 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/android/arm64/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/android/arm64/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --enable-small --enable-cross-compile --sysroot=/usr/local/google2/chrome-client2/src/third_party/android_ndk/platforms/android-21/arch-arm64 --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/android_ndk/sysroot/usr/include --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/android_ndk/sysroot/usr/include/aarch64-linux-android --extra-cflags='--target=aarch64-linux-android' --extra-ldflags='--target=aarch64-linux-android' --extra-ldflags='--gcc-toolchain=/usr/local/google2/chrome-client2/src/third_party/android_ndk/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/' --target-os=android --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic --cc=clang --cxx=clang++ --ld=clang" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --enable-small --enable-cross-compile --sysroot=/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/platforms/android-21/arch-arm64 --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/sysroot/usr/include --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/sysroot/usr/include/aarch64-linux-android --extra-cflags='--target=aarch64-linux-android' --extra-ldflags='--target=aarch64-linux-android' --extra-ldflags='--gcc-toolchain=/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/' --target-os=android --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic --cc=clang --cxx=clang++ --ld=clang" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/android/arm64/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/android/arm64/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/android/arm64/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/android/arm64/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/android/ia32/config.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/android/ia32/config.h
index b1e8557ba80..10847311f72 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/android/ia32/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/android/ia32/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --enable-small --enable-cross-compile --sysroot=/usr/local/google2/chrome-client2/src/third_party/android_ndk/platforms/android-16/arch-x86 --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/android_ndk/sysroot/usr/include --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/android_ndk/sysroot/usr/include/i686-linux-android --extra-cflags='--target=i686-linux-android' --extra-ldflags='--target=i686-linux-android' --extra-ldflags='--gcc-toolchain=/usr/local/google2/chrome-client2/src/third_party/android_ndk/toolchains/x86-4.9/prebuilt/linux-x86_64/' --target-os=android --arch=i686 --extra-cflags='\"-m32\"' --extra-ldflags='\"-m32\"' --disable-x86asm --enable-pic --cc=clang --cxx=clang++ --ld=clang" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --enable-small --enable-cross-compile --sysroot=/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/platforms/android-16/arch-x86 --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/sysroot/usr/include --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/sysroot/usr/include/i686-linux-android --extra-cflags='--target=i686-linux-android' --extra-ldflags='--target=i686-linux-android' --extra-ldflags='--gcc-toolchain=/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/toolchains/x86-4.9/prebuilt/linux-x86_64/' --target-os=android --arch=i686 --extra-cflags='\"-m32\"' --extra-ldflags='\"-m32\"' --disable-x86asm --enable-pic --cc=clang --cxx=clang++ --ld=clang" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/android/ia32/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/android/ia32/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/android/ia32/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/android/ia32/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/android/mips64el/config.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/android/mips64el/config.h
index 931d20dee99..b61b4e0153a 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/android/mips64el/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/android/mips64el/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --enable-small --enable-cross-compile --sysroot=/usr/local/google2/chrome-client2/src/third_party/android_ndk/platforms/android-21/arch-mips64 --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/android_ndk/sysroot/usr/include --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/android_ndk/sysroot/usr/include/mips64el-linux-android --extra-cflags='--target=mips64el-linux-android' --extra-ldflags='--target=mips64el-linux-android' --extra-ldflags='--gcc-toolchain=/usr/local/google2/chrome-client2/src/third_party/android_ndk/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/' --target-os=android --arch=mips64el --enable-mipsfpu --disable-mipsdsp --disable-mipsdspr2 --extra-cflags='-march=mips64el' --extra-ldflags='-z notext' --enable-mips64r6 --extra-cflags='-mcpu=mips64r6' --disable-mips64r2 --enable-msa --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld'" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --enable-small --enable-cross-compile --sysroot=/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/platforms/android-21/arch-mips64 --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/sysroot/usr/include --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/sysroot/usr/include/mips64el-linux-android --extra-cflags='--target=mips64el-linux-android' --extra-ldflags='--target=mips64el-linux-android' --extra-ldflags='--gcc-toolchain=/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/' --target-os=android --arch=mips64el --enable-mipsfpu --disable-mipsdsp --disable-mipsdspr2 --extra-cflags='-march=mips64el' --extra-ldflags='-z notext' --enable-mips64r6 --extra-cflags='-mcpu=mips64r6' --disable-mips64r2 --enable-msa --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld'" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/android/mips64el/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/android/mips64el/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/android/mips64el/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/android/mips64el/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/android/mipsel/config.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/android/mipsel/config.h
index dd4426ba7c4..e87d6d7b84e 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/android/mipsel/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/android/mipsel/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --enable-small --enable-cross-compile --sysroot=/usr/local/google2/chrome-client2/src/third_party/android_ndk/platforms/android-16/arch-mips --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/android_ndk/sysroot/usr/include --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/android_ndk/sysroot/usr/include/mipsel-linux-android --extra-cflags='--target=mipsel-linux-android' --extra-ldflags='--target=mipsel-linux-android' --extra-ldflags='--gcc-toolchain=/usr/local/google2/chrome-client2/src/third_party/android_ndk/toolchains/mipsel-linux-android-4.9/prebuilt/linux-x86_64/' --target-os=android --arch=mipsel --disable-mips32r6 --disable-mips32r5 --disable-mips32r2 --disable-mipsdsp --disable-mipsdspr2 --disable-msa --enable-mipsfpu --extra-cflags='-march=mipsel' --extra-cflags='-mcpu=mips32' --extra-ldflags='-z notext' --enable-pic --cc=clang --cxx=clang++ --ld=clang" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --enable-small --enable-cross-compile --sysroot=/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/platforms/android-16/arch-mips --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/sysroot/usr/include --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/sysroot/usr/include/mipsel-linux-android --extra-cflags='--target=mipsel-linux-android' --extra-ldflags='--target=mipsel-linux-android' --extra-ldflags='--gcc-toolchain=/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/toolchains/mipsel-linux-android-4.9/prebuilt/linux-x86_64/' --target-os=android --arch=mipsel --disable-mips32r6 --disable-mips32r5 --disable-mips32r2 --disable-mipsdsp --disable-mipsdspr2 --disable-msa --enable-mipsfpu --extra-cflags='-march=mipsel' --extra-cflags='-mcpu=mips32' --extra-ldflags='-z notext' --enable-pic --cc=clang --cxx=clang++ --ld=clang" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/android/mipsel/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/android/mipsel/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/android/mipsel/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/android/mipsel/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/android/x64/config.asm b/chromium/third_party/ffmpeg/chromium/config/Chromium/android/x64/config.asm
index 539c82573c7..6ee7848a17a 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/android/x64/config.asm
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/android/x64/config.asm
@@ -402,6 +402,7 @@
%define CONFIG_OPENSSL 0
%define CONFIG_LIBTLS 0
%define CONFIG_GMP 0
+%define CONFIG_LIBLENSFUN 0
%define CONFIG_LIBOPENCORE_AMRNB 0
%define CONFIG_LIBOPENCORE_AMRWB 0
%define CONFIG_LIBVMAF 0
@@ -956,6 +957,7 @@
%define CONFIG_ATRAC3AL_DECODER 0
%define CONFIG_ATRAC3P_DECODER 0
%define CONFIG_ATRAC3PAL_DECODER 0
+%define CONFIG_ATRAC9_DECODER 0
%define CONFIG_BINKAUDIO_DCT_DECODER 0
%define CONFIG_BINKAUDIO_RDFT_DECODER 0
%define CONFIG_BMV_AUDIO_DECODER 0
@@ -1641,6 +1643,7 @@
%define CONFIG_BLACKFRAME_FILTER 0
%define CONFIG_BLEND_FILTER 0
%define CONFIG_BOXBLUR_FILTER 0
+%define CONFIG_BOXBLUR_OPENCL_FILTER 0
%define CONFIG_BWDIF_FILTER 0
%define CONFIG_CHROMAKEY_FILTER 0
%define CONFIG_CIESCOPE_FILTER 0
@@ -1709,6 +1712,7 @@
%define CONFIG_GBLUR_FILTER 0
%define CONFIG_GEQ_FILTER 0
%define CONFIG_GRADFUN_FILTER 0
+%define CONFIG_GREYEDGE_FILTER 0
%define CONFIG_HALDCLUT_FILTER 0
%define CONFIG_HFLIP_FILTER 0
%define CONFIG_HISTEQ_FILTER 0
@@ -1729,6 +1733,7 @@
%define CONFIG_INTERLEAVE_FILTER 0
%define CONFIG_KERNDEINT_FILTER 0
%define CONFIG_LENSCORRECTION_FILTER 0
+%define CONFIG_LENSFUN_FILTER 0
%define CONFIG_LIBVMAF_FILTER 0
%define CONFIG_LIMITER_FILTER 0
%define CONFIG_LOOP_FILTER 0
@@ -1774,6 +1779,7 @@
%define CONFIG_PP7_FILTER 0
%define CONFIG_PREMULTIPLY_FILTER 0
%define CONFIG_PREWITT_FILTER 0
+%define CONFIG_PREWITT_OPENCL_FILTER 0
%define CONFIG_PROCAMP_VAAPI_FILTER 0
%define CONFIG_PROGRAM_OPENCL_FILTER 0
%define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1790,6 +1796,7 @@
%define CONFIG_REPEATFIELDS_FILTER 0
%define CONFIG_REVERSE_FILTER 0
%define CONFIG_ROBERTS_FILTER 0
+%define CONFIG_ROBERTS_OPENCL_FILTER 0
%define CONFIG_ROTATE_FILTER 0
%define CONFIG_SAB_FILTER 0
%define CONFIG_SCALE_FILTER 0
@@ -1818,9 +1825,10 @@
%define CONFIG_SIGNATURE_FILTER 0
%define CONFIG_SMARTBLUR_FILTER 0
%define CONFIG_SOBEL_FILTER 0
+%define CONFIG_SOBEL_OPENCL_FILTER 0
%define CONFIG_SPLIT_FILTER 0
%define CONFIG_SPP_FILTER 0
-%define CONFIG_SRCNN_FILTER 0
+%define CONFIG_SR_FILTER 0
%define CONFIG_SSIM_FILTER 0
%define CONFIG_STEREO3D_FILTER 0
%define CONFIG_STREAMSELECT_FILTER 0
@@ -1838,6 +1846,7 @@
%define CONFIG_TLUT2_FILTER 0
%define CONFIG_TMIX_FILTER 0
%define CONFIG_TONEMAP_FILTER 0
+%define CONFIG_TONEMAP_OPENCL_FILTER 0
%define CONFIG_TRANSPOSE_FILTER 0
%define CONFIG_TRIM_FILTER 0
%define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/android/x64/config.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/android/x64/config.h
index dfad80548c3..3e19915cc88 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/android/x64/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/android/x64/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --enable-small --enable-cross-compile --sysroot=/usr/local/google2/chrome-client2/src/third_party/android_ndk/platforms/android-21/arch-x86_64 --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/android_ndk/sysroot/usr/include --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/android_ndk/sysroot/usr/include/x86_64-linux-android --extra-cflags='--target=x86_64-linux-android' --extra-ldflags='--target=x86_64-linux-android' --extra-ldflags='--gcc-toolchain=/usr/local/google2/chrome-client2/src/third_party/android_ndk/toolchains/x86_64-4.9/prebuilt/linux-x86_64/' --target-os=android --arch=x86_64 --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld'" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --enable-small --enable-cross-compile --sysroot=/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/platforms/android-21/arch-x86_64 --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/sysroot/usr/include --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/sysroot/usr/include/x86_64-linux-android --extra-cflags='--target=x86_64-linux-android' --extra-ldflags='--target=x86_64-linux-android' --extra-ldflags='--gcc-toolchain=/usr/local/google/home/tguilbert/Code/chromium/src/third_party/android_ndk/toolchains/x86_64-4.9/prebuilt/linux-x86_64/' --target-os=android --arch=x86_64 --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld'" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/android/x64/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/android/x64/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/android/x64/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/android/x64/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux-noasm/x64/config.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux-noasm/x64/config.h
index 48125a55e0f..17065061057 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux-noasm/x64/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux-noasm/x64/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-lto --disable-asm --disable-inline-asm --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld'" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-lto --disable-asm --disable-inline-asm --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld'" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux-noasm/x64/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux-noasm/x64/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux-noasm/x64/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux-noasm/x64/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h
index abd5b584c4e..aedb5a0af35 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --extra-cflags='--target=arm-linux-gnueabihf' --extra-ldflags='--target=arm-linux-gnueabihf' --sysroot=/usr/local/google2/chrome-client2/src/build/linux/debian_sid_arm-sysroot --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --extra-cflags=-O2 --enable-neon --extra-cflags='-mfpu=neon' --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld'" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --extra-cflags='--target=arm-linux-gnueabihf' --extra-ldflags='--target=arm-linux-gnueabihf' --sysroot=/usr/local/google/home/tguilbert/Code/chromium/src/build/linux/debian_sid_arm-sysroot --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --extra-cflags=-O2 --enable-neon --extra-cflags='-mfpu=neon' --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld'" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h
index 8d6e7ea3b01..b814942f09d 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --extra-cflags='--target=arm-linux-gnueabihf' --extra-ldflags='--target=arm-linux-gnueabihf' --sysroot=/usr/local/google2/chrome-client2/src/build/linux/debian_sid_arm-sysroot --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --extra-cflags=-O2 --disable-neon --extra-cflags='-mfpu=vfpv3-d16' --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld'" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --extra-cflags='--target=arm-linux-gnueabihf' --extra-ldflags='--target=arm-linux-gnueabihf' --sysroot=/usr/local/google/home/tguilbert/Code/chromium/src/build/linux/debian_sid_arm-sysroot --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --extra-cflags=-O2 --disable-neon --extra-cflags='-mfpu=vfpv3-d16' --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld'" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h
index 503cefe255c..8ce6e73e9d6 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-cross-compile --cross-prefix=/usr/bin/aarch64-linux-gnu- --target-os=linux --extra-cflags='--target=aarch64-linux-gnu' --extra-ldflags='--target=aarch64-linux-gnu' --sysroot=/usr/local/google2/chrome-client2/src/build/linux/debian_sid_arm64-sysroot --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic --cc=clang --cxx=clang++ --ld=clang" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-cross-compile --cross-prefix=/usr/bin/aarch64-linux-gnu- --target-os=linux --extra-cflags='--target=aarch64-linux-gnu' --extra-ldflags='--target=aarch64-linux-gnu' --sysroot=/usr/local/google/home/tguilbert/Code/chromium/src/build/linux/debian_sid_arm64-sysroot --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic --cc=clang --cxx=clang++ --ld=clang" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.asm b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.asm
index 319dab08334..0cd31d21d66 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.asm
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.asm
@@ -402,6 +402,7 @@
%define CONFIG_OPENSSL 0
%define CONFIG_LIBTLS 0
%define CONFIG_GMP 0
+%define CONFIG_LIBLENSFUN 0
%define CONFIG_LIBOPENCORE_AMRNB 0
%define CONFIG_LIBOPENCORE_AMRWB 0
%define CONFIG_LIBVMAF 0
@@ -956,6 +957,7 @@
%define CONFIG_ATRAC3AL_DECODER 0
%define CONFIG_ATRAC3P_DECODER 0
%define CONFIG_ATRAC3PAL_DECODER 0
+%define CONFIG_ATRAC9_DECODER 0
%define CONFIG_BINKAUDIO_DCT_DECODER 0
%define CONFIG_BINKAUDIO_RDFT_DECODER 0
%define CONFIG_BMV_AUDIO_DECODER 0
@@ -1641,6 +1643,7 @@
%define CONFIG_BLACKFRAME_FILTER 0
%define CONFIG_BLEND_FILTER 0
%define CONFIG_BOXBLUR_FILTER 0
+%define CONFIG_BOXBLUR_OPENCL_FILTER 0
%define CONFIG_BWDIF_FILTER 0
%define CONFIG_CHROMAKEY_FILTER 0
%define CONFIG_CIESCOPE_FILTER 0
@@ -1709,6 +1712,7 @@
%define CONFIG_GBLUR_FILTER 0
%define CONFIG_GEQ_FILTER 0
%define CONFIG_GRADFUN_FILTER 0
+%define CONFIG_GREYEDGE_FILTER 0
%define CONFIG_HALDCLUT_FILTER 0
%define CONFIG_HFLIP_FILTER 0
%define CONFIG_HISTEQ_FILTER 0
@@ -1729,6 +1733,7 @@
%define CONFIG_INTERLEAVE_FILTER 0
%define CONFIG_KERNDEINT_FILTER 0
%define CONFIG_LENSCORRECTION_FILTER 0
+%define CONFIG_LENSFUN_FILTER 0
%define CONFIG_LIBVMAF_FILTER 0
%define CONFIG_LIMITER_FILTER 0
%define CONFIG_LOOP_FILTER 0
@@ -1774,6 +1779,7 @@
%define CONFIG_PP7_FILTER 0
%define CONFIG_PREMULTIPLY_FILTER 0
%define CONFIG_PREWITT_FILTER 0
+%define CONFIG_PREWITT_OPENCL_FILTER 0
%define CONFIG_PROCAMP_VAAPI_FILTER 0
%define CONFIG_PROGRAM_OPENCL_FILTER 0
%define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1790,6 +1796,7 @@
%define CONFIG_REPEATFIELDS_FILTER 0
%define CONFIG_REVERSE_FILTER 0
%define CONFIG_ROBERTS_FILTER 0
+%define CONFIG_ROBERTS_OPENCL_FILTER 0
%define CONFIG_ROTATE_FILTER 0
%define CONFIG_SAB_FILTER 0
%define CONFIG_SCALE_FILTER 0
@@ -1818,9 +1825,10 @@
%define CONFIG_SIGNATURE_FILTER 0
%define CONFIG_SMARTBLUR_FILTER 0
%define CONFIG_SOBEL_FILTER 0
+%define CONFIG_SOBEL_OPENCL_FILTER 0
%define CONFIG_SPLIT_FILTER 0
%define CONFIG_SPP_FILTER 0
-%define CONFIG_SRCNN_FILTER 0
+%define CONFIG_SR_FILTER 0
%define CONFIG_SSIM_FILTER 0
%define CONFIG_STEREO3D_FILTER 0
%define CONFIG_STREAMSELECT_FILTER 0
@@ -1838,6 +1846,7 @@
%define CONFIG_TLUT2_FILTER 0
%define CONFIG_TMIX_FILTER 0
%define CONFIG_TONEMAP_FILTER 0
+%define CONFIG_TONEMAP_OPENCL_FILTER 0
%define CONFIG_TRANSPOSE_FILTER 0
%define CONFIG_TRIM_FILTER 0
%define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h
index a53a6f8816c..af44931cf23 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=i686 --extra-cflags='\"-m32\"' --extra-ldflags='\"-m32\"' --enable-pic --cc=clang --cxx=clang++ --ld=clang" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=i686 --extra-cflags='\"-m32\"' --extra-ldflags='\"-m32\"' --enable-pic --cc=clang --cxx=clang++ --ld=clang" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/mips64el/config.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/mips64el/config.h
index d975268be05..2674f067ba4 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/mips64el/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/mips64el/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=mips64el --enable-mipsfpu --disable-mipsdsp --disable-mipsdspr2 --extra-cflags='-march=mips64el' --extra-ldflags='-z notext' --enable-cross-compile --target-os=linux --sysroot=/usr/local/google2/chrome-client2/src/build/linux/debian_sid_mips64el-sysroot --enable-mips64r2 --disable-mips64r6 --disable-msa --extra-cflags='-mcpu=mips64r2' --extra-cflags='--target=mips64el-linux-gnuabi64' --extra-ldflags='--target=mips64el-linux-gnuabi64' --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld'" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=mips64el --enable-mipsfpu --disable-mipsdsp --disable-mipsdspr2 --extra-cflags='-march=mips64el' --extra-ldflags='-z notext' --enable-cross-compile --target-os=linux --sysroot=/usr/local/google/home/tguilbert/Code/chromium/src/build/linux/debian_sid_mips64el-sysroot --enable-mips64r2 --disable-mips64r6 --disable-msa --extra-cflags='-mcpu=mips64r2' --extra-cflags='--target=mips64el-linux-gnuabi64' --extra-ldflags='--target=mips64el-linux-gnuabi64' --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld'" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/mips64el/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/mips64el/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/mips64el/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/mips64el/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/mipsel/config.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/mipsel/config.h
index ccd97e8e78d..f5231148de6 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/mipsel/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/mipsel/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=mipsel --disable-mips32r6 --disable-mips32r5 --disable-mips32r2 --disable-mipsdsp --disable-mipsdspr2 --disable-msa --enable-mipsfpu --extra-cflags='-march=mipsel' --extra-cflags='-mcpu=mips32' --extra-ldflags='-z notext' --enable-cross-compile --target-os=linux --sysroot=/usr/local/google2/chrome-client2/src/build/linux/debian_sid_mips-sysroot --extra-cflags='--target=mipsel-linux-gnu' --extra-ldflags='--target=mipsel-linux-gnu' --enable-pic --cc=clang --cxx=clang++ --ld=clang" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=mipsel --disable-mips32r6 --disable-mips32r5 --disable-mips32r2 --disable-mipsdsp --disable-mipsdspr2 --disable-msa --enable-mipsfpu --extra-cflags='-march=mipsel' --extra-cflags='-mcpu=mips32' --extra-ldflags='-z notext' --enable-cross-compile --target-os=linux --sysroot=/usr/local/google/home/tguilbert/Code/chromium/src/build/linux/debian_sid_mips-sysroot --extra-cflags='--target=mipsel-linux-gnu' --extra-ldflags='--target=mipsel-linux-gnu' --enable-pic --cc=clang --cxx=clang++ --ld=clang" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/mipsel/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/mipsel/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/mipsel/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/mipsel/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.asm b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.asm
index 091f0353afd..191dabc3f37 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.asm
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.asm
@@ -402,6 +402,7 @@
%define CONFIG_OPENSSL 0
%define CONFIG_LIBTLS 0
%define CONFIG_GMP 0
+%define CONFIG_LIBLENSFUN 0
%define CONFIG_LIBOPENCORE_AMRNB 0
%define CONFIG_LIBOPENCORE_AMRWB 0
%define CONFIG_LIBVMAF 0
@@ -956,6 +957,7 @@
%define CONFIG_ATRAC3AL_DECODER 0
%define CONFIG_ATRAC3P_DECODER 0
%define CONFIG_ATRAC3PAL_DECODER 0
+%define CONFIG_ATRAC9_DECODER 0
%define CONFIG_BINKAUDIO_DCT_DECODER 0
%define CONFIG_BINKAUDIO_RDFT_DECODER 0
%define CONFIG_BMV_AUDIO_DECODER 0
@@ -1641,6 +1643,7 @@
%define CONFIG_BLACKFRAME_FILTER 0
%define CONFIG_BLEND_FILTER 0
%define CONFIG_BOXBLUR_FILTER 0
+%define CONFIG_BOXBLUR_OPENCL_FILTER 0
%define CONFIG_BWDIF_FILTER 0
%define CONFIG_CHROMAKEY_FILTER 0
%define CONFIG_CIESCOPE_FILTER 0
@@ -1709,6 +1712,7 @@
%define CONFIG_GBLUR_FILTER 0
%define CONFIG_GEQ_FILTER 0
%define CONFIG_GRADFUN_FILTER 0
+%define CONFIG_GREYEDGE_FILTER 0
%define CONFIG_HALDCLUT_FILTER 0
%define CONFIG_HFLIP_FILTER 0
%define CONFIG_HISTEQ_FILTER 0
@@ -1729,6 +1733,7 @@
%define CONFIG_INTERLEAVE_FILTER 0
%define CONFIG_KERNDEINT_FILTER 0
%define CONFIG_LENSCORRECTION_FILTER 0
+%define CONFIG_LENSFUN_FILTER 0
%define CONFIG_LIBVMAF_FILTER 0
%define CONFIG_LIMITER_FILTER 0
%define CONFIG_LOOP_FILTER 0
@@ -1774,6 +1779,7 @@
%define CONFIG_PP7_FILTER 0
%define CONFIG_PREMULTIPLY_FILTER 0
%define CONFIG_PREWITT_FILTER 0
+%define CONFIG_PREWITT_OPENCL_FILTER 0
%define CONFIG_PROCAMP_VAAPI_FILTER 0
%define CONFIG_PROGRAM_OPENCL_FILTER 0
%define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1790,6 +1796,7 @@
%define CONFIG_REPEATFIELDS_FILTER 0
%define CONFIG_REVERSE_FILTER 0
%define CONFIG_ROBERTS_FILTER 0
+%define CONFIG_ROBERTS_OPENCL_FILTER 0
%define CONFIG_ROTATE_FILTER 0
%define CONFIG_SAB_FILTER 0
%define CONFIG_SCALE_FILTER 0
@@ -1818,9 +1825,10 @@
%define CONFIG_SIGNATURE_FILTER 0
%define CONFIG_SMARTBLUR_FILTER 0
%define CONFIG_SOBEL_FILTER 0
+%define CONFIG_SOBEL_OPENCL_FILTER 0
%define CONFIG_SPLIT_FILTER 0
%define CONFIG_SPP_FILTER 0
-%define CONFIG_SRCNN_FILTER 0
+%define CONFIG_SR_FILTER 0
%define CONFIG_SSIM_FILTER 0
%define CONFIG_STEREO3D_FILTER 0
%define CONFIG_STREAMSELECT_FILTER 0
@@ -1838,6 +1846,7 @@
%define CONFIG_TLUT2_FILTER 0
%define CONFIG_TMIX_FILTER 0
%define CONFIG_TONEMAP_FILTER 0
+%define CONFIG_TONEMAP_OPENCL_FILTER 0
%define CONFIG_TRANSPOSE_FILTER 0
%define CONFIG_TRIM_FILTER 0
%define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h
index 276c64964c2..3c9b98446d1 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-lto --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld'" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-lto --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld'" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/x64/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/x64/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/x64/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/x64/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/mac/x64/config.asm b/chromium/third_party/ffmpeg/chromium/config/Chromium/mac/x64/config.asm
index 91fdc089d4a..a8eb7c343ee 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/mac/x64/config.asm
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/mac/x64/config.asm
@@ -402,6 +402,7 @@
%define CONFIG_OPENSSL 0
%define CONFIG_LIBTLS 0
%define CONFIG_GMP 0
+%define CONFIG_LIBLENSFUN 0
%define CONFIG_LIBOPENCORE_AMRNB 0
%define CONFIG_LIBOPENCORE_AMRWB 0
%define CONFIG_LIBVMAF 0
@@ -956,6 +957,7 @@
%define CONFIG_ATRAC3AL_DECODER 0
%define CONFIG_ATRAC3P_DECODER 0
%define CONFIG_ATRAC3PAL_DECODER 0
+%define CONFIG_ATRAC9_DECODER 0
%define CONFIG_BINKAUDIO_DCT_DECODER 0
%define CONFIG_BINKAUDIO_RDFT_DECODER 0
%define CONFIG_BMV_AUDIO_DECODER 0
@@ -1641,6 +1643,7 @@
%define CONFIG_BLACKFRAME_FILTER 0
%define CONFIG_BLEND_FILTER 0
%define CONFIG_BOXBLUR_FILTER 0
+%define CONFIG_BOXBLUR_OPENCL_FILTER 0
%define CONFIG_BWDIF_FILTER 0
%define CONFIG_CHROMAKEY_FILTER 0
%define CONFIG_CIESCOPE_FILTER 0
@@ -1709,6 +1712,7 @@
%define CONFIG_GBLUR_FILTER 0
%define CONFIG_GEQ_FILTER 0
%define CONFIG_GRADFUN_FILTER 0
+%define CONFIG_GREYEDGE_FILTER 0
%define CONFIG_HALDCLUT_FILTER 0
%define CONFIG_HFLIP_FILTER 0
%define CONFIG_HISTEQ_FILTER 0
@@ -1729,6 +1733,7 @@
%define CONFIG_INTERLEAVE_FILTER 0
%define CONFIG_KERNDEINT_FILTER 0
%define CONFIG_LENSCORRECTION_FILTER 0
+%define CONFIG_LENSFUN_FILTER 0
%define CONFIG_LIBVMAF_FILTER 0
%define CONFIG_LIMITER_FILTER 0
%define CONFIG_LOOP_FILTER 0
@@ -1774,6 +1779,7 @@
%define CONFIG_PP7_FILTER 0
%define CONFIG_PREMULTIPLY_FILTER 0
%define CONFIG_PREWITT_FILTER 0
+%define CONFIG_PREWITT_OPENCL_FILTER 0
%define CONFIG_PROCAMP_VAAPI_FILTER 0
%define CONFIG_PROGRAM_OPENCL_FILTER 0
%define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1790,6 +1796,7 @@
%define CONFIG_REPEATFIELDS_FILTER 0
%define CONFIG_REVERSE_FILTER 0
%define CONFIG_ROBERTS_FILTER 0
+%define CONFIG_ROBERTS_OPENCL_FILTER 0
%define CONFIG_ROTATE_FILTER 0
%define CONFIG_SAB_FILTER 0
%define CONFIG_SCALE_FILTER 0
@@ -1818,9 +1825,10 @@
%define CONFIG_SIGNATURE_FILTER 0
%define CONFIG_SMARTBLUR_FILTER 0
%define CONFIG_SOBEL_FILTER 0
+%define CONFIG_SOBEL_OPENCL_FILTER 0
%define CONFIG_SPLIT_FILTER 0
%define CONFIG_SPP_FILTER 0
-%define CONFIG_SRCNN_FILTER 0
+%define CONFIG_SR_FILTER 0
%define CONFIG_SSIM_FILTER 0
%define CONFIG_STEREO3D_FILTER 0
%define CONFIG_STREAMSELECT_FILTER 0
@@ -1838,6 +1846,7 @@
%define CONFIG_TLUT2_FILTER 0
%define CONFIG_TMIX_FILTER 0
%define CONFIG_TONEMAP_FILTER 0
+%define CONFIG_TONEMAP_OPENCL_FILTER 0
%define CONFIG_TRANSPOSE_FILTER 0
%define CONFIG_TRIM_FILTER 0
%define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/mac/x64/config.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/mac/x64/config.h
index 9c6e4bf483b..bf3b66faf07 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/mac/x64/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/mac/x64/config.h
@@ -1,12 +1,12 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-pic --cc=clang --cxx=clang++ --ld=clang --enable-cross-compile --cc=clang --ld=ld64.lld --nm=llvm-nm --ar=llvm-ar --target-os=darwin --extra-cflags='--target=i686-apple-darwin-macho' --extra-cflags=-F/usr/local/google2/chrome-client2/src/build/win_files/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks --extra-cflags='-mmacosx-version-min=10.10' --extra-cflags=-fblocks --extra-cflags=-nostdinc --extra-cflags=-isystem/usr/local/google2/chrome-client2/src/build/win_files/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include --extra-cflags=-isystem/usr/local/google2/chrome-client2/src/build/win_files/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/c++/4.2.1 --extra-cflags=-isystem/usr/local/google2/chrome-client2/src/build/win_files/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/8.1.0/include/ --extra-ldflags=-syslibroot --extra-ldflags=/usr/local/google2/chrome-client2/src/build/win_files/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk --extra-ldflags=-L/usr/local/google2/chrome-client2/src/build/win_files/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/lib --extra-ldflags=-lSystem --extra-ldflags=-macosx_version_min --extra-ldflags=10.10 --extra-ldflags=-sdk_version --extra-ldflags=10.10 --arch=x86_64 --extra-cflags=-m64 --extra-ldflags=-m64" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-pic --cc=clang --cxx=clang++ --ld=clang --enable-cross-compile --cc=clang --ld=ld64.lld --nm=llvm-nm --ar=llvm-ar --target-os=darwin --extra-cflags='--target=i686-apple-darwin-macho' --extra-cflags=-F/usr/local/google/home/tguilbert/Code/chromium/src/build/win_files/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks --extra-cflags='-mmacosx-version-min=10.10' --extra-cflags=-fblocks --extra-cflags=-nostdinc --extra-cflags=-isystem/usr/local/google/home/tguilbert/Code/chromium/src/build/win_files/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include --extra-cflags=-isystem/usr/local/google/home/tguilbert/Code/chromium/src/build/win_files/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/c++/4.2.1 --extra-cflags=-isystem/usr/local/google/home/tguilbert/Code/chromium/src/build/win_files/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/8.1.0/include/ --extra-ldflags=-syslibroot --extra-ldflags=/usr/local/google/home/tguilbert/Code/chromium/src/build/win_files/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk --extra-ldflags=-L/usr/local/google/home/tguilbert/Code/chromium/src/build/win_files/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/lib --extra-ldflags=-lSystem --extra-ldflags=-macosx_version_min --extra-ldflags=10.10 --extra-ldflags=-sdk_version --extra-ldflags=10.10 --arch=x86_64 --extra-cflags=-m64 --extra-ldflags=-m64" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
-#define CC_IDENT "clang version 7.0.0 (trunk 334100)"
+#define CC_IDENT "clang version 7.0.0 (trunk 337439)"
#define av_restrict restrict
#define EXTERN_PREFIX "_"
#define EXTERN_ASM _
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/mac/x64/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/mac/x64/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/mac/x64/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/mac/x64/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/win/ia32/config.asm b/chromium/third_party/ffmpeg/chromium/config/Chromium/win/ia32/config.asm
index 575c59c9966..f97b64edc1d 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/win/ia32/config.asm
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/win/ia32/config.asm
@@ -402,6 +402,7 @@
%define CONFIG_OPENSSL 0
%define CONFIG_LIBTLS 0
%define CONFIG_GMP 0
+%define CONFIG_LIBLENSFUN 0
%define CONFIG_LIBOPENCORE_AMRNB 0
%define CONFIG_LIBOPENCORE_AMRWB 0
%define CONFIG_LIBVMAF 0
@@ -956,6 +957,7 @@
%define CONFIG_ATRAC3AL_DECODER 0
%define CONFIG_ATRAC3P_DECODER 0
%define CONFIG_ATRAC3PAL_DECODER 0
+%define CONFIG_ATRAC9_DECODER 0
%define CONFIG_BINKAUDIO_DCT_DECODER 0
%define CONFIG_BINKAUDIO_RDFT_DECODER 0
%define CONFIG_BMV_AUDIO_DECODER 0
@@ -1641,6 +1643,7 @@
%define CONFIG_BLACKFRAME_FILTER 0
%define CONFIG_BLEND_FILTER 0
%define CONFIG_BOXBLUR_FILTER 0
+%define CONFIG_BOXBLUR_OPENCL_FILTER 0
%define CONFIG_BWDIF_FILTER 0
%define CONFIG_CHROMAKEY_FILTER 0
%define CONFIG_CIESCOPE_FILTER 0
@@ -1709,6 +1712,7 @@
%define CONFIG_GBLUR_FILTER 0
%define CONFIG_GEQ_FILTER 0
%define CONFIG_GRADFUN_FILTER 0
+%define CONFIG_GREYEDGE_FILTER 0
%define CONFIG_HALDCLUT_FILTER 0
%define CONFIG_HFLIP_FILTER 0
%define CONFIG_HISTEQ_FILTER 0
@@ -1729,6 +1733,7 @@
%define CONFIG_INTERLEAVE_FILTER 0
%define CONFIG_KERNDEINT_FILTER 0
%define CONFIG_LENSCORRECTION_FILTER 0
+%define CONFIG_LENSFUN_FILTER 0
%define CONFIG_LIBVMAF_FILTER 0
%define CONFIG_LIMITER_FILTER 0
%define CONFIG_LOOP_FILTER 0
@@ -1774,6 +1779,7 @@
%define CONFIG_PP7_FILTER 0
%define CONFIG_PREMULTIPLY_FILTER 0
%define CONFIG_PREWITT_FILTER 0
+%define CONFIG_PREWITT_OPENCL_FILTER 0
%define CONFIG_PROCAMP_VAAPI_FILTER 0
%define CONFIG_PROGRAM_OPENCL_FILTER 0
%define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1790,6 +1796,7 @@
%define CONFIG_REPEATFIELDS_FILTER 0
%define CONFIG_REVERSE_FILTER 0
%define CONFIG_ROBERTS_FILTER 0
+%define CONFIG_ROBERTS_OPENCL_FILTER 0
%define CONFIG_ROTATE_FILTER 0
%define CONFIG_SAB_FILTER 0
%define CONFIG_SCALE_FILTER 0
@@ -1818,9 +1825,10 @@
%define CONFIG_SIGNATURE_FILTER 0
%define CONFIG_SMARTBLUR_FILTER 0
%define CONFIG_SOBEL_FILTER 0
+%define CONFIG_SOBEL_OPENCL_FILTER 0
%define CONFIG_SPLIT_FILTER 0
%define CONFIG_SPP_FILTER 0
-%define CONFIG_SRCNN_FILTER 0
+%define CONFIG_SR_FILTER 0
%define CONFIG_SSIM_FILTER 0
%define CONFIG_STEREO3D_FILTER 0
%define CONFIG_STREAMSELECT_FILTER 0
@@ -1838,6 +1846,7 @@
%define CONFIG_TLUT2_FILTER 0
%define CONFIG_TMIX_FILTER 0
%define CONFIG_TONEMAP_FILTER 0
+%define CONFIG_TONEMAP_OPENCL_FILTER 0
%define CONFIG_TRANSPOSE_FILTER 0
%define CONFIG_TRIM_FILTER 0
%define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/win/ia32/config.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/win/ia32/config.h
index 1a85384d281..a6e3f217a0b 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/win/ia32/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/win/ia32/config.h
@@ -1,7 +1,7 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --toolchain=msvc --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/ffmpeg/chromium/include/win --target-os=win32 --enable-cross-compile --cc=clang-cl --ld=lld-link --nm=llvm-nm --ar=llvm-ar --extra-cflags=-O2 --extra-cflags=-m32 --extra-cflags=-imsvc/usr/local/google2/chrome-client2/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/um --extra-cflags=-imsvc/usr/local/google2/chrome-client2/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/shared --extra-cflags=-imsvc/usr/local/google2/chrome-client2/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/winrt --extra-cflags=-imsvc/usr/local/google2/chrome-client2/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/ucrt --extra-cflags=-imsvc/usr/local/google2/chrome-client2/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/include --extra-cflags=-imsvc/usr/local/google2/chrome-client2/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/atlmfc/include --extra-ldflags='-libpath:/usr/local/google2/chrome-client2/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/atlmfc/lib/x86' --extra-ldflags='-libpath:/usr/local/google2/chrome-client2/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Lib/10.0.17134.0/ucrt/x86' --extra-ldflags='-libpath:/usr/local/google2/chrome-client2/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Lib/10.0.17134.0/um/x86' --extra-ldflags='-libpath:/usr/local/google2/chrome-client2/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/lib/x86'" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --toolchain=msvc --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/ffmpeg/chromium/include/win --target-os=win32 --enable-cross-compile --cc=clang-cl --ld=lld-link --nm=llvm-nm --ar=llvm-ar --extra-cflags=-O2 --extra-cflags=-m32 --extra-cflags=-imsvc/usr/local/google/home/tguilbert/Code/chromium/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/um --extra-cflags=-imsvc/usr/local/google/home/tguilbert/Code/chromium/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/shared --extra-cflags=-imsvc/usr/local/google/home/tguilbert/Code/chromium/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/winrt --extra-cflags=-imsvc/usr/local/google/home/tguilbert/Code/chromium/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/ucrt --extra-cflags=-imsvc/usr/local/google/home/tguilbert/Code/chromium/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/include --extra-cflags=-imsvc/usr/local/google/home/tguilbert/Code/chromium/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/atlmfc/include --extra-ldflags='-libpath:/usr/local/google/home/tguilbert/Code/chromium/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/atlmfc/lib/x86' --extra-ldflags='-libpath:-libpath:../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/lib/x86 -libpath:../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Lib/10.0.17134.0/um/x86 -libpath:../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Lib/10.0.17134.0/ucrt/x86 -libpath:../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/atlmfc/lib/x86' --extra-ldflags='-libpath:/usr/local/google/home/tguilbert/Code/chromium/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Lib/10.0.17134.0/ucrt/x86' --extra-ldflags='-libpath:/usr/local/google/home/tguilbert/Code/chromium/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Lib/10.0.17134.0/um/x86' --extra-ldflags='-libpath:/usr/local/google/home/tguilbert/Code/chromium/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/lib/x86'" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/win/ia32/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/win/ia32/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/win/ia32/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/win/ia32/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/win/x64/config.asm b/chromium/third_party/ffmpeg/chromium/config/Chromium/win/x64/config.asm
index 15d70c44837..5e267bca6d2 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/win/x64/config.asm
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/win/x64/config.asm
@@ -402,6 +402,7 @@
%define CONFIG_OPENSSL 0
%define CONFIG_LIBTLS 0
%define CONFIG_GMP 0
+%define CONFIG_LIBLENSFUN 0
%define CONFIG_LIBOPENCORE_AMRNB 0
%define CONFIG_LIBOPENCORE_AMRWB 0
%define CONFIG_LIBVMAF 0
@@ -956,6 +957,7 @@
%define CONFIG_ATRAC3AL_DECODER 0
%define CONFIG_ATRAC3P_DECODER 0
%define CONFIG_ATRAC3PAL_DECODER 0
+%define CONFIG_ATRAC9_DECODER 0
%define CONFIG_BINKAUDIO_DCT_DECODER 0
%define CONFIG_BINKAUDIO_RDFT_DECODER 0
%define CONFIG_BMV_AUDIO_DECODER 0
@@ -1641,6 +1643,7 @@
%define CONFIG_BLACKFRAME_FILTER 0
%define CONFIG_BLEND_FILTER 0
%define CONFIG_BOXBLUR_FILTER 0
+%define CONFIG_BOXBLUR_OPENCL_FILTER 0
%define CONFIG_BWDIF_FILTER 0
%define CONFIG_CHROMAKEY_FILTER 0
%define CONFIG_CIESCOPE_FILTER 0
@@ -1709,6 +1712,7 @@
%define CONFIG_GBLUR_FILTER 0
%define CONFIG_GEQ_FILTER 0
%define CONFIG_GRADFUN_FILTER 0
+%define CONFIG_GREYEDGE_FILTER 0
%define CONFIG_HALDCLUT_FILTER 0
%define CONFIG_HFLIP_FILTER 0
%define CONFIG_HISTEQ_FILTER 0
@@ -1729,6 +1733,7 @@
%define CONFIG_INTERLEAVE_FILTER 0
%define CONFIG_KERNDEINT_FILTER 0
%define CONFIG_LENSCORRECTION_FILTER 0
+%define CONFIG_LENSFUN_FILTER 0
%define CONFIG_LIBVMAF_FILTER 0
%define CONFIG_LIMITER_FILTER 0
%define CONFIG_LOOP_FILTER 0
@@ -1774,6 +1779,7 @@
%define CONFIG_PP7_FILTER 0
%define CONFIG_PREMULTIPLY_FILTER 0
%define CONFIG_PREWITT_FILTER 0
+%define CONFIG_PREWITT_OPENCL_FILTER 0
%define CONFIG_PROCAMP_VAAPI_FILTER 0
%define CONFIG_PROGRAM_OPENCL_FILTER 0
%define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1790,6 +1796,7 @@
%define CONFIG_REPEATFIELDS_FILTER 0
%define CONFIG_REVERSE_FILTER 0
%define CONFIG_ROBERTS_FILTER 0
+%define CONFIG_ROBERTS_OPENCL_FILTER 0
%define CONFIG_ROTATE_FILTER 0
%define CONFIG_SAB_FILTER 0
%define CONFIG_SCALE_FILTER 0
@@ -1818,9 +1825,10 @@
%define CONFIG_SIGNATURE_FILTER 0
%define CONFIG_SMARTBLUR_FILTER 0
%define CONFIG_SOBEL_FILTER 0
+%define CONFIG_SOBEL_OPENCL_FILTER 0
%define CONFIG_SPLIT_FILTER 0
%define CONFIG_SPP_FILTER 0
-%define CONFIG_SRCNN_FILTER 0
+%define CONFIG_SR_FILTER 0
%define CONFIG_SSIM_FILTER 0
%define CONFIG_STEREO3D_FILTER 0
%define CONFIG_STREAMSELECT_FILTER 0
@@ -1838,6 +1846,7 @@
%define CONFIG_TLUT2_FILTER 0
%define CONFIG_TMIX_FILTER 0
%define CONFIG_TONEMAP_FILTER 0
+%define CONFIG_TONEMAP_OPENCL_FILTER 0
%define CONFIG_TRANSPOSE_FILTER 0
%define CONFIG_TRIM_FILTER 0
%define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/win/x64/config.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/win/x64/config.h
index 5695ea03fda..bfa6471e433 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/win/x64/config.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/win/x64/config.h
@@ -1,7 +1,7 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --toolchain=msvc --extra-cflags=-I/usr/local/google2/chrome-client2/src/third_party/ffmpeg/chromium/include/win --target-os=win64 --enable-cross-compile --cc=clang-cl --ld=lld-link --nm=llvm-nm --ar=llvm-ar --extra-cflags=-O2 --extra-cflags=-imsvc/usr/local/google2/chrome-client2/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/um --extra-cflags=-imsvc/usr/local/google2/chrome-client2/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/shared --extra-cflags=-imsvc/usr/local/google2/chrome-client2/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/winrt --extra-cflags=-imsvc/usr/local/google2/chrome-client2/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/ucrt --extra-cflags=-imsvc/usr/local/google2/chrome-client2/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/include --extra-cflags=-imsvc/usr/local/google2/chrome-client2/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/atlmfc/include --extra-ldflags='-libpath:/usr/local/google2/chrome-client2/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/atlmfc/lib/x64' --extra-ldflags='-libpath:/usr/local/google2/chrome-client2/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Lib/10.0.17134.0/ucrt/x64' --extra-ldflags='-libpath:/usr/local/google2/chrome-client2/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Lib/10.0.17134.0/um/x64' --extra-ldflags='-libpath:/usr/local/google2/chrome-client2/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/lib/x64'" -- elide long configuration string from binary */
+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=yasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --toolchain=msvc --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/ffmpeg/chromium/include/win --target-os=win64 --enable-cross-compile --cc=clang-cl --ld=lld-link --nm=llvm-nm --ar=llvm-ar --extra-cflags=-O2 --extra-cflags=-imsvc/usr/local/google/home/tguilbert/Code/chromium/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/um --extra-cflags=-imsvc/usr/local/google/home/tguilbert/Code/chromium/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/shared --extra-cflags=-imsvc/usr/local/google/home/tguilbert/Code/chromium/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/winrt --extra-cflags=-imsvc/usr/local/google/home/tguilbert/Code/chromium/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Include/10.0.17134.0/ucrt --extra-cflags=-imsvc/usr/local/google/home/tguilbert/Code/chromium/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/include --extra-cflags=-imsvc/usr/local/google/home/tguilbert/Code/chromium/src/third_party/ffmpeg/../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/atlmfc/include --extra-ldflags='-libpath:/usr/local/google/home/tguilbert/Code/chromium/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/atlmfc/lib/x64' --extra-ldflags='-libpath:-libpath:../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/lib/x64 -libpath:../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Lib/10.0.17134.0/um/x64 -libpath:../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Lib/10.0.17134.0/ucrt/x64 -libpath:../depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/atlmfc/lib/x64' --extra-ldflags='-libpath:/usr/local/google/home/tguilbert/Code/chromium/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Lib/10.0.17134.0/ucrt/x64' --extra-ldflags='-libpath:/usr/local/google/home/tguilbert/Code/chromium/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/win_sdk/Lib/10.0.17134.0/um/x64' --extra-ldflags='-libpath:/usr/local/google/home/tguilbert/Code/chromium/src/third_party/depot_tools/win_toolchain/vs_files/3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c/VC/Tools/MSVC/14.14.26428/lib/x64'" -- elide long configuration string from binary */
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2018
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
@@ -417,6 +417,7 @@
#define CONFIG_OPENSSL 0
#define CONFIG_LIBTLS 0
#define CONFIG_GMP 0
+#define CONFIG_LIBLENSFUN 0
#define CONFIG_LIBOPENCORE_AMRNB 0
#define CONFIG_LIBOPENCORE_AMRWB 0
#define CONFIG_LIBVMAF 0
@@ -971,6 +972,7 @@
#define CONFIG_ATRAC3AL_DECODER 0
#define CONFIG_ATRAC3P_DECODER 0
#define CONFIG_ATRAC3PAL_DECODER 0
+#define CONFIG_ATRAC9_DECODER 0
#define CONFIG_BINKAUDIO_DCT_DECODER 0
#define CONFIG_BINKAUDIO_RDFT_DECODER 0
#define CONFIG_BMV_AUDIO_DECODER 0
@@ -1656,6 +1658,7 @@
#define CONFIG_BLACKFRAME_FILTER 0
#define CONFIG_BLEND_FILTER 0
#define CONFIG_BOXBLUR_FILTER 0
+#define CONFIG_BOXBLUR_OPENCL_FILTER 0
#define CONFIG_BWDIF_FILTER 0
#define CONFIG_CHROMAKEY_FILTER 0
#define CONFIG_CIESCOPE_FILTER 0
@@ -1724,6 +1727,7 @@
#define CONFIG_GBLUR_FILTER 0
#define CONFIG_GEQ_FILTER 0
#define CONFIG_GRADFUN_FILTER 0
+#define CONFIG_GREYEDGE_FILTER 0
#define CONFIG_HALDCLUT_FILTER 0
#define CONFIG_HFLIP_FILTER 0
#define CONFIG_HISTEQ_FILTER 0
@@ -1744,6 +1748,7 @@
#define CONFIG_INTERLEAVE_FILTER 0
#define CONFIG_KERNDEINT_FILTER 0
#define CONFIG_LENSCORRECTION_FILTER 0
+#define CONFIG_LENSFUN_FILTER 0
#define CONFIG_LIBVMAF_FILTER 0
#define CONFIG_LIMITER_FILTER 0
#define CONFIG_LOOP_FILTER 0
@@ -1789,6 +1794,7 @@
#define CONFIG_PP7_FILTER 0
#define CONFIG_PREMULTIPLY_FILTER 0
#define CONFIG_PREWITT_FILTER 0
+#define CONFIG_PREWITT_OPENCL_FILTER 0
#define CONFIG_PROCAMP_VAAPI_FILTER 0
#define CONFIG_PROGRAM_OPENCL_FILTER 0
#define CONFIG_PSEUDOCOLOR_FILTER 0
@@ -1805,6 +1811,7 @@
#define CONFIG_REPEATFIELDS_FILTER 0
#define CONFIG_REVERSE_FILTER 0
#define CONFIG_ROBERTS_FILTER 0
+#define CONFIG_ROBERTS_OPENCL_FILTER 0
#define CONFIG_ROTATE_FILTER 0
#define CONFIG_SAB_FILTER 0
#define CONFIG_SCALE_FILTER 0
@@ -1833,9 +1840,10 @@
#define CONFIG_SIGNATURE_FILTER 0
#define CONFIG_SMARTBLUR_FILTER 0
#define CONFIG_SOBEL_FILTER 0
+#define CONFIG_SOBEL_OPENCL_FILTER 0
#define CONFIG_SPLIT_FILTER 0
#define CONFIG_SPP_FILTER 0
-#define CONFIG_SRCNN_FILTER 0
+#define CONFIG_SR_FILTER 0
#define CONFIG_SSIM_FILTER 0
#define CONFIG_STEREO3D_FILTER 0
#define CONFIG_STREAMSELECT_FILTER 0
@@ -1853,6 +1861,7 @@
#define CONFIG_TLUT2_FILTER 0
#define CONFIG_TMIX_FILTER 0
#define CONFIG_TONEMAP_FILTER 0
+#define CONFIG_TONEMAP_OPENCL_FILTER 0
#define CONFIG_TRANSPOSE_FILTER 0
#define CONFIG_TRIM_FILTER 0
#define CONFIG_UNPREMULTIPLY_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/config/Chromium/win/x64/libavutil/ffversion.h b/chromium/third_party/ffmpeg/chromium/config/Chromium/win/x64/libavutil/ffversion.h
index 37148ffcdd3..c01335c81a3 100644
--- a/chromium/third_party/ffmpeg/chromium/config/Chromium/win/x64/libavutil/ffversion.h
+++ b/chromium/third_party/ffmpeg/chromium/config/Chromium/win/x64/libavutil/ffversion.h
@@ -1,5 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
-#define FFMPEG_VERSION "N-92142-g5baf51b94b"
+#define FFMPEG_VERSION "N-92393-g05759213af"
#endif /* AVUTIL_FFVERSION_H */
diff --git a/chromium/third_party/ffmpeg/chromium/patches/README b/chromium/third_party/ffmpeg/chromium/patches/README
index cd19e43ba49..484c06d636d 100644
--- a/chromium/third_party/ffmpeg/chromium/patches/README
+++ b/chromium/third_party/ffmpeg/chromium/patches/README
@@ -803,16 +803,51 @@ Date: Thu May 24 13:43:24 2018 -0700
libavutil/encryption_info.c
------------------------------------------------------------------
-commit 5ceb9b2b805173b4eea81ae15065e254014f867a
-Author: Jacob Trimble <modmaker-at-google.com@ffmpeg.org>
-Date: Tue Jun 12 14:26:20 2018 -0700
+commit a69bb2d3a1420cc4eed7b37e99cd3145a091a59d
+Author: Jacob Trimble <modmaker@google.com>
+Date: Mon Aug 13 15:29:32 2018 -0700
- avformat/mov: Add check for per-sample IV size.
+ avutil/encryption_info: Fix size calculation.
- Found by Chrome's ClusterFuzz: http://crbug.com/849062.
+ Bug: 873693
+ Change-Id: Ibc46ef48e86e38a17f0bb833c1ff972f9dde37d6
+ Reviewed-on: https://chromium-review.googlesource.com/1173449
+ Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
+
+ Affects:
+libavutil/encryption_info.c
+
+------------------------------------------------------------------
+commit ddbe19a87228d61d131fe3b1876cd68bb4cbc3be
+Author: Jacob Trimble <modmaker@google.com>
+Date: Tue Aug 14 10:53:06 2018 -0700
+
+ avformat/mov: Allow saio/saiz in clear content.
+
+ If there is a saio/saiz in clear content, we shouldn't create the
+ encryption index if we don't already have one. Otherwise it will
+ confuse the cenc_filter.
+
+ Bug: 873432
+ Change-Id: I1bfb20f590d667a2ff3c4fcb5efecbcc7ed99387
+ Reviewed-on: https://chromium-review.googlesource.com/1174892
+ Reviewed-by: Matthew Wolenetz <wolenetz@chromium.org>
+ Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
+
+ Affects:
+libavformat/mov.c
+
+------------------------------------------------------------------
+commit 89863ce983b1b93c5b149b1914ef650a7fc049f6
+Author: Dale Curtis <dalecurtis@chromium.org>
+Date: Tue Aug 21 15:42:31 2018 -0700
+
+ Correct opus-in-mp4 pre-skip to be uint16_t versus int16_t.
- Signed-off-by: Jacob Trimble <modmaker@google.com>
- Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+ This field is a uint16_t, see docs:
+ http://opus-codec.org/docs/opus_in_isobmff.html#4.3.2
+
+ Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Affects:
libavformat/mov.c
diff --git a/chromium/third_party/ffmpeg/chromium/patches/config_flag_changes.txt b/chromium/third_party/ffmpeg/chromium/patches/config_flag_changes.txt
new file mode 100644
index 00000000000..0ad0183e414
--- /dev/null
+++ b/chromium/third_party/ffmpeg/chromium/patches/config_flag_changes.txt
@@ -0,0 +1,11 @@
++ CONFIG_ATRAC9_DECODER 0
++ CONFIG_BOXBLUR_OPENCL_FILTER 0
++ CONFIG_GREYEDGE_FILTER 0
++ CONFIG_LENSFUN_FILTER 0
++ CONFIG_LIBLENSFUN 0
++ CONFIG_PREWITT_OPENCL_FILTER 0
++ CONFIG_ROBERTS_OPENCL_FILTER 0
++ CONFIG_SOBEL_OPENCL_FILTER 0
+- CONFIG_SRCNN_FILTER 0
++ CONFIG_SR_FILTER 0
++ CONFIG_TONEMAP_OPENCL_FILTER 0
diff --git a/chromium/third_party/ffmpeg/chromium/scripts/find_patches.py b/chromium/third_party/ffmpeg/chromium/scripts/find_patches.py
index 3900a82bcb9..65ac39c2462 100755
--- a/chromium/third_party/ffmpeg/chromium/scripts/find_patches.py
+++ b/chromium/third_party/ffmpeg/chromium/scripts/find_patches.py
@@ -97,7 +97,10 @@ def main(argv):
origin_branch = argv[1]
else:
origin_branch = "HEAD"
+ write_patches_file(origin_branch, sys.stdout)
+def write_patches_file(origin_branch, output_file):
+ """Write the patches file for |origin_branch| to |output_file|."""
# Get the latest upstream commit that's reachable from the origin branch.
# We'll use that to compare against.
upstream = run(["git", "merge-base", "upstream/master", origin_branch]
@@ -208,20 +211,24 @@ def main(argv):
sha1_to_date[sha1] = date
# Print the patches file.
- log("Writing patch file to stdout")
- print("--------------------------------------------------------------------")
- print("-- Chromium Patches --")
- print("--------------------------------------------------------------------")
- print("\n")
+ log("Writing patch file")
+ print("--------------------------------------------------------------------",
+ file=output_file)
+ print("-- Chromium Patches --",
+ file=output_file)
+ print("--------------------------------------------------------------------",
+ file=output_file)
+ print("\n", file=output_file)
wd = os.getcwd()
for sha1, date in sorted(sha1_to_date.iteritems(), key=lambda (k,v): v):
- print("------------------------------------------------------------------")
- print(run(["git", "log", "-1", "%s" % sha1]))
- print(" Affects: ")
+ print("------------------------------------------------------------------",
+ file=output_file)
+ print(run(["git", "log", "-1", "%s" % sha1]), file=output_file)
+ print(" Affects: ", file=output_file)
# TODO(liberato): maybe add the lines that were affected.
for file in sha1ToFiles[sha1]:
- print(os.path.relpath(file, wd))
- print()
+ print(os.path.relpath(file, wd), file=output_file)
+ print(file=output_file)
log("Done")
diff --git a/chromium/third_party/ffmpeg/chromium/scripts/robo_branch.py b/chromium/third_party/ffmpeg/chromium/scripts/robo_branch.py
new file mode 100644
index 00000000000..ac7d2c09c85
--- /dev/null
+++ b/chromium/third_party/ffmpeg/chromium/scripts/robo_branch.py
@@ -0,0 +1,155 @@
+#!/usr/bin/python
+#
+# Copyright 2018 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+#
+# Functions to facilitate a branching for merges.
+#
+# A "sushi branch" is a branch that we've created and manage. We do this to
+# prevent making changes to branches that we don't understand. It's mostly as
+# a sanity check that we're being used correctly.
+
+import check_merge
+from datetime import datetime
+import find_patches
+import os
+from robo_lib import log
+from subprocess import call
+from subprocess import check_output
+
+def IsWorkingDirectoryClean():
+ """Return true if and only if the working directory is clean."""
+ return not check_output(["git", "status", "--untracked-files=no",
+ "--porcelain"]).strip()
+
+def RequiresCleanWorkingDirectory(fn):
+ def wrapper(*args, **kwargs):
+ if not IsWorkingDirectoryClean():
+ raise Exception("Working directory is not clean.")
+ fn(*args, **kwargs)
+ return wrapper
+
+@RequiresCleanWorkingDirectory
+def CreateAndCheckoutDatedSushiBranch(cfg):
+ """Create a dated branch from origin/master and check it out."""
+ now = datetime.now()
+ branch_name=cfg.sushi_branch_prefix() + now.strftime("%Y-%m-%d-%H-%M-%S")
+ log("Creating dated branch %s" % branch_name)
+ # Fetch the latest from origin
+ if call(["git", "fetch", "origin"]):
+ raise Exception("Could not fetch from origin")
+
+ # Create the named branch
+ # Note that we definitely do not want this branch to track origin/master; that
+ # would eventually cause 'git cl upload' to push the merge commit, assuming
+ # that the merge commit is pushed to origin/sushi-branch. One might argue
+ # that we should push the merge to origin/master, which would make this okay.
+ # For now, we leave the branch untracked to make sure that the user doesn't
+ # accidentally do the wrong thing. I think that with an automatic deps roll,
+ # we'll want to stage things on origin/sushi-branch.
+ #
+ # We don't want to push anything to origin yet, though, just to keep from
+ # making a bunch of sushi branches. We can do it later just as easily.
+ if call(["git", "branch", "--no-track", branch_name, "origin/master"]):
+ raise Exception("Could not create branch")
+
+ # NOTE: we could push the remote branch back to origin and start tracking it
+ # now, and not worry about tracking later. However, until the scripts
+ # actually work, i don't want to push a bunch of branches to origin.
+
+ # Check out the branch. On failure, delete the new branch.
+ if call(["git", "checkout", branch_name]):
+ call(["git", "branch", "-D", branch_name])
+ raise Exception("Could not checkout branch")
+
+ cfg.SetBranchName(branch_name)
+
+def CreateAndCheckoutDatedSushiBranchIfNeeded(cfg):
+ """Create a dated branch from origin/master if we're not already on one."""
+ if cfg.sushi_branch_name():
+ log("Already on sushi branch %s" % cfg.sushi_branch_name())
+ return
+
+ CreateAndCheckoutDatedSushiBranch(cfg)
+
+@RequiresCleanWorkingDirectory
+def MergeUpstreamToSushiBranch(cfg):
+ log("Merging upstream/master to local branch")
+ if not cfg.sushi_branch_name():
+ raise Exception("Refusing to do a merge on a branch I didn't create")
+ if call(["git", "fetch", "upstream"]):
+ raise Exception("Could not fetch from upstream")
+ if call(["git", "merge", "upstream/master"]):
+ raise Exception("Merge failed -- resolve conflicts manually.")
+ log("Merge has completed successfully")
+
+def IsMergeCommitOnThisBranch(cfg):
+ """Return true if there's a merge commit on this branch before it joins up
+ with origin/master."""
+ # Get all sha1s between us and origin/master
+ sha1s = check_output(["git", "log", "--format=%H",
+ "origin/master..%s" % cfg.branch_name()]).split()
+ for sha1 in sha1s:
+ # Does |sha1| have more than one parent commit?
+ if len(check_output(["git", "show", "--no-patch", "--format=%P",
+ sha1]).split()) > 1:
+ return True
+ return False
+
+def MergeUpstreamToSushiBranchIfNeeded(cfg):
+ """Start a merge if we've not started one before, or do nothing successfully
+ if the merge is complete. If it's half done, then get mad and exit."""
+ if IsMergeCommitOnThisBranch(cfg):
+ log("Merge commit already marked as complete")
+ return
+ # See if a merge is in progress. "git merge HEAD" will do nothing if it
+ # succeeds, but will fail if a merge is in progress.
+ if call(["git", "merge", "HEAD"]):
+ raise Exception(
+ "Merge is in progress -- please resolve conflicts and complete it.")
+ # There is no merge on this branch, and none is in progress. Start a merge.
+ MergeUpstreamToSushiBranch(cfg)
+
+def CheckMerge(cfg):
+ """Verify that the merge config looks good."""
+ # If we haven't built all configs, then we might not be checking everything.
+ # The check might look at config for each platform, etc.
+ log("Checking merge for common failures")
+ cfg.chdir_to_ffmpeg_home();
+ check_merge.main([])
+
+def WritePatchesReadme(cfg):
+ """Write the chromium patches file."""
+ log("Generating CHROMIUM.patches file")
+ cfg.chdir_to_ffmpeg_home();
+ with open(os.path.join("chromium", "patches", "README"), "w+") as f:
+ find_patches.write_patches_file("HEAD", f)
+
+def AddAndCommit(cfg, commit_title):
+ """Add everything, and commit locally with |commit_title|"""
+ log("Creating local commit %s" % commit_title)
+ cfg.chdir_to_ffmpeg_home();
+ if IsWorkingDirectoryClean():
+ log("No files to commit to %s" % commit_title)
+ return
+ if call(["git", "add", "-u"]):
+ raise Exception("Could not add files")
+ if call(["git", "commit", "-m", commit_title]):
+ raise Exception("Could create commit")
+
+def PushToOriginWithoutReviewAndTrack(cfg):
+ """Push the local branch to origin/ """
+ # This would do a 'git push origin %s:%s" % local branch name.
+ log("TODO: push merge commit to origin/%s without review!" %
+ cfg.sushi_branch_name())
+ # This would also get branch --set-upstream-to=origin/%s %s
+ log("TODO: set upstream tracking branch to origin/%s!" %
+ cfg.sushi_branch_name())
+ raise Exception("Please do these things and comment this exception out.")
+
+def HandleAutorename(cfg):
+ # Note that you probably also want to comment out the "build and import all
+ # configs" call in robosushi. it'll work if you re-run it, but it takes a
+ # while and only needs to be done once.
+ raise Exception("Please commit autorename file changes and comment this out.")
diff --git a/chromium/third_party/ffmpeg/chromium/scripts/robo_build.py b/chromium/third_party/ffmpeg/chromium/scripts/robo_build.py
index 73c2d8c4e2f..96469969da4 100644
--- a/chromium/third_party/ffmpeg/chromium/scripts/robo_build.py
+++ b/chromium/third_party/ffmpeg/chromium/scripts/robo_build.py
@@ -77,9 +77,7 @@ def BuildAndImportFFmpegConfigForHost(robo_configuration):
Args:
robo_configuration: RoboConfiguration.
"""
- # TODO: optimize this out if we've done it already -- it's only needed if the
- # ffmpeg build config changes. If you just change ffmpeg source files, then
- # just re-build chrome and it'll rebuild the library.
+
ConfigureAndBuildFFmpeg(robo_configuration,
robo_configuration.host_operating_system(),
robo_configuration.host_architecture())
diff --git a/chromium/third_party/ffmpeg/chromium/scripts/robo_lib.py b/chromium/third_party/ffmpeg/chromium/scripts/robo_lib.py
index 46d3b9dad7a..64cef9558c5 100644
--- a/chromium/third_party/ffmpeg/chromium/scripts/robo_lib.py
+++ b/chromium/third_party/ffmpeg/chromium/scripts/robo_lib.py
@@ -21,6 +21,8 @@ class RoboConfiguration:
Important: We might be doing --setup, so these sanity checks should only be
for things that we don't plan for fix as part of that.
"""
+ # This is the prefix that our branches start with.
+ self._sushi_branch_prefix = "sushi-"
self.EnsureHostInfo()
self.EnsureChromeSrc()
self.EnsurePathContainsLLVM()
@@ -28,6 +30,10 @@ class RoboConfiguration:
self.EnsureFFmpegHome()
log("Using ffmpeg home: %s" % self.ffmpeg_home())
self.EnsureASANConfig()
+ self.ComputeBranchName()
+ log("On branch: %s" % self.branch_name())
+ if self.sushi_branch_name():
+ log("On sushi branch: %s" % self.sushi_branch_name())
def chrome_src(self):
"""Return /path/to/chromium/src"""
@@ -57,6 +63,20 @@ class RoboConfiguration:
def chdir_to_ffmpeg_home(self):
os.chdir(self.ffmpeg_home())
+ def branch_name(self):
+ """Return the current workspace's branch name, or None. This might be any
+ branch (e.g., "master"), not just one that we've created."""
+ return self._branch_name
+
+ def sushi_branch_name(self):
+ """If the workspace is currently on a branch that we created (a "sushi
+ branch"), return it. Else return None."""
+ return self._sushi_branch_name
+
+ def sushi_branch_prefix(self):
+ """Return the branch name that indicates that this is a "sushi branch"."""
+ return self._sushi_branch_prefix
+
def EnsureHostInfo(self):
"""Ensure that the host architecture and platform are set."""
# TODO(liberato): autodetect
@@ -97,3 +117,17 @@ class RoboConfiguration:
if llvm_path not in os.environ["PATH"]:
raise Exception("Please add %s to the beginning of $PATH" % llvm_path)
+ def ComputeBranchName(self):
+ """Get the current branch name and set it."""
+ self.chdir_to_ffmpeg_home()
+ branch_name = subprocess.Popen(["git", "rev-parse", "--abbrev-ref", "HEAD"],
+ stdout=subprocess.PIPE).communicate()[0].strip()
+ self.SetBranchName(branch_name)
+
+ def SetBranchName(self, name):
+ """Set our branch name, which may be a sushi branch or not."""
+ self._branch_name = name
+ # If this is one of our branches, then record that too.
+ if name and not name.startswith(self.sushi_branch_prefix()):
+ name = None
+ self._sushi_branch_name = name
diff --git a/chromium/third_party/ffmpeg/chromium/scripts/robosushi.py b/chromium/third_party/ffmpeg/chromium/scripts/robosushi.py
index 707b19adedb..930071a994e 100755
--- a/chromium/third_party/ffmpeg/chromium/scripts/robosushi.py
+++ b/chromium/third_party/ffmpeg/chromium/scripts/robosushi.py
@@ -17,6 +17,7 @@ import getopt
import os
import sys
+import robo_branch
from robo_lib import log
import robo_lib
import robo_build
@@ -27,7 +28,7 @@ def main(argv):
robo_configuration.chdir_to_ffmpeg_home();
parsed, remaining = getopt.getopt(argv, "",
- ["setup", "test", "build", "all"])
+ ["setup", "test", "build", "auto-merge", "auto-merge-test"])
for opt, arg in parsed:
if opt == "--setup":
@@ -38,14 +39,44 @@ def main(argv):
robo_build.BuildAndImportFFmpegConfigForHost(robo_configuration)
robo_build.RunTests(robo_configuration)
elif opt == "--build":
+ # Unconditionally build all the configs and import them.
robo_build.BuildAndImportAllFFmpegConfigs(robo_configuration)
- # TODO: run check_merge.py
- # TODO: run find_patches.py
- elif opt == "--all":
- robo_build.BuildAndImportFFmpegConfigForHost(robo_configuration)
+ elif opt == "--auto-merge" or opt == "--auto-merge-test":
+ # Start a branch (if needed), merge (if needed), and try to verify it.
+ # TODO: Verify that the working directory is clean.
+ robo_branch.CreateAndCheckoutDatedSushiBranchIfNeeded(robo_configuration)
+ robo_branch.MergeUpstreamToSushiBranchIfNeeded(robo_configuration)
+ # We want to push the merge and make the local branch track it, so that
+ # future 'git cl upload's don't try to review the merge commit, and spam
+ # the ffmpeg committers.
+ robo_branch.PushToOriginWithoutReviewAndTrack(robo_configuration)
+
+ # Try to get everything to build.
+ # auto-merge-test is just to make this quicker while i'm developing it
+ # TODO: Make it skip these if they're already done.
+ if opt == "--auto-merge-test":
+ robo_build.BuildAndImportFFmpegConfigForHost(robo_configuration)
+ else:
+ robo_build.BuildAndImportAllFFmpegConfigs(robo_configuration)
+ robo_branch.HandleAutorename(robo_configuration)
+ robo_branch.AddAndCommit(robo_configuration, "GN Configuration")
+ robo_branch.CheckMerge(robo_configuration)
+ robo_branch.WritePatchesReadme(robo_configuration)
+ robo_branch.AddAndCommit(robo_configuration, "Chromium patches file")
robo_build.RunTests(robo_configuration)
- robo_build.BuildAndImportAllFFmpegConfigs(robo_configuration)
- # TODO: run some sanity checks to see if this might be okay to auto-roll.
+
+ # TODO: Start a fake deps roll. To do this, we would:
+ # Create new remote branch from the current remote sushi branch.
+ # Create and check out a new local branch at the current local branch.
+ # Make the new local branch track the new remote branch.
+ # Push to origin/new remote branch.
+ # Start a fake deps roll CL that runs the *san bots.
+ # Switch back to original local branch.
+ # For extra points, include a pointer to the fake deps roll CL in the
+ # local branch, so that when it's pushed for review, it'll point the
+ # reviewer at it.
+
+ # TODO: git cl upload for review.
else:
raise Exception("Unknown option '%s'" % opt);
diff --git a/chromium/third_party/ffmpeg/configure b/chromium/third_party/ffmpeg/configure
index 9deab1c8414..281fa094993 100755
--- a/chromium/third_party/ffmpeg/configure
+++ b/chromium/third_party/ffmpeg/configure
@@ -239,6 +239,7 @@ External library support:
--enable-libilbc enable iLBC de/encoding via libilbc [no]
--enable-libjack enable JACK audio sound server [no]
--enable-libkvazaar enable HEVC encoding via libkvazaar [no]
+ --enable-liblensfun enable lensfun lens correction [no]
--enable-libmodplug enable ModPlug via libmodplug [no]
--enable-libmp3lame enable MP3 encoding via libmp3lame [no]
--enable-libopencore-amrnb enable AMR-NB de/encoding via libopencore-amrnb [no]
@@ -260,7 +261,7 @@ External library support:
--enable-libsrt enable Haivision SRT protocol via libsrt [no]
--enable-libssh enable SFTP protocol via libssh [no]
--enable-libtensorflow enable TensorFlow as a DNN module backend
- for DNN based filters like srcnn [no]
+ for DNN based filters like sr [no]
--enable-libtesseract enable Tesseract, needed for ocr filter [no]
--enable-libtheora enable Theora encoding via libtheora [no]
--enable-libtls enable LibreSSL (via libtls), needed for https support
@@ -1656,6 +1657,7 @@ EXTERNAL_LIBRARY_NONFREE_LIST="
EXTERNAL_LIBRARY_VERSION3_LIST="
gmp
+ liblensfun
libopencore_amrnb
libopencore_amrwb
libvmaf
@@ -2565,6 +2567,7 @@ asv2_encoder_select="bswapdsp fdctdsp pixblockdsp"
atrac1_decoder_select="mdct sinewin"
atrac3_decoder_select="mdct"
atrac3p_decoder_select="mdct sinewin"
+atrac9_decoder_select="mdct"
avrn_decoder_select="exif jpegtables"
bink_decoder_select="blockdsp hpeldsp"
binkaudio_dct_decoder_select="mdct rdft dct sinewin wma_freqs"
@@ -2992,6 +2995,7 @@ vc1_parser_select="vc1dsp"
# bitstream_filters
aac_adtstoasc_bsf_select="adts_header"
+eac3_core_bsf_select="ac3_parser"
filter_units_bsf_select="cbs"
h264_metadata_bsf_deps="const_nan"
h264_metadata_bsf_select="cbs_h264"
@@ -3044,6 +3048,7 @@ hevc_videotoolbox_encoder_deps="pthreads"
hevc_videotoolbox_encoder_select="videotoolbox_encoder"
libaom_av1_decoder_deps="libaom"
libaom_av1_encoder_deps="libaom"
+libaom_av1_encoder_select="extract_extradata_bsf"
libcelt_decoder_deps="libcelt"
libcodec2_decoder_deps="libcodec2"
libcodec2_encoder_deps="libcodec2"
@@ -3310,6 +3315,7 @@ avgblur_opencl_filter_deps="opencl"
azmq_filter_deps="libzmq"
blackframe_filter_deps="gpl"
boxblur_filter_deps="gpl"
+boxblur_opencl_filter_deps="opencl gpl"
bs2b_filter_deps="libbs2b"
colormatrix_filter_deps="gpl"
convolution_opencl_filter_deps="opencl"
@@ -3350,6 +3356,7 @@ hqdn3d_filter_deps="gpl"
interlace_filter_deps="gpl"
kerndeint_filter_deps="gpl"
ladspa_filter_deps="ladspa libdl"
+lensfun_filter_deps="liblensfun version3"
lv2_filter_deps="lv2"
mcdeint_filter_deps="avcodec gpl"
movie_filter_deps="avcodec avformat"
@@ -3370,12 +3377,14 @@ perspective_filter_deps="gpl"
phase_filter_deps="gpl"
pp7_filter_deps="gpl"
pp_filter_deps="gpl postproc"
+prewitt_opencl_filter_deps="opencl"
procamp_vaapi_filter_deps="vaapi VAProcPipelineParameterBuffer"
program_opencl_filter_deps="opencl"
pullup_filter_deps="gpl"
removelogo_filter_deps="avcodec avformat swscale"
repeatfields_filter_deps="gpl"
resample_filter_deps="avresample"
+roberts_opencl_filter_deps="opencl"
rubberband_filter_deps="librubberband"
sab_filter_deps="gpl swscale"
scale2ref_filter_deps="swscale"
@@ -3394,14 +3403,15 @@ showspectrumpic_filter_deps="avcodec"
showspectrumpic_filter_select="fft"
signature_filter_deps="gpl avcodec avformat"
smartblur_filter_deps="gpl swscale"
+sobel_opencl_filter_deps="opencl"
sofalizer_filter_deps="libmysofa avcodec"
sofalizer_filter_select="fft"
spectrumsynth_filter_deps="avcodec"
spectrumsynth_filter_select="fft"
spp_filter_deps="gpl avcodec"
spp_filter_select="fft idctdsp fdctdsp me_cmp pixblockdsp"
-srcnn_filter_deps="avformat"
-srcnn_filter_select="dnn"
+sr_filter_deps="avformat swscale"
+sr_filter_select="dnn"
stereo3d_filter_deps="gpl"
subtitles_filter_deps="avformat avcodec libass"
super2xsai_filter_deps="gpl"
@@ -3410,6 +3420,7 @@ tinterlace_filter_deps="gpl"
tinterlace_merge_test_deps="tinterlace_filter"
tinterlace_pad_test_deps="tinterlace_filter"
tonemap_filter_deps="const_nan"
+tonemap_opencl_filter_deps="opencl const_nan"
unsharp_opencl_filter_deps="opencl"
uspp_filter_deps="gpl avcodec"
vaguedenoiser_filter_deps="gpl"
@@ -3668,7 +3679,7 @@ CODEC_LIST="
$ENCODER_LIST
$DECODER_LIST
"
-PARSER_LIST=$(find_things_extern parser AVCodecParser libavcodec/parser.c)
+PARSER_LIST=$(find_things_extern parser AVCodecParser libavcodec/parsers.c)
BSF_LIST=$(find_things_extern bsf AVBitStreamFilter libavcodec/bitstream_filters.c)
HWACCEL_LIST=$(find_things_extern hwaccel AVHWAccel libavcodec/hwaccels.h)
PROTOCOL_LIST=$(find_things_extern protocol URLProtocol libavformat/protocols.c)
@@ -3966,8 +3977,8 @@ case "$toolchain" in
;;
*-tsan)
cc_default="${toolchain%-tsan}"
- add_cflags -fsanitize=thread -fPIE
- add_ldflags -fsanitize=thread -pie
+ add_cflags -fsanitize=thread
+ add_ldflags -fsanitize=thread
case "$toolchain" in
gcc-tsan)
add_cflags -fPIC
@@ -5911,8 +5922,8 @@ check_type "vdpau/vdpau.h" "VdpPictureInfoHEVC"
if ! disabled ffnvcodec; then
check_pkg_config ffnvcodec "ffnvcodec >= 8.1.24.2" \
"ffnvcodec/nvEncodeAPI.h ffnvcodec/dynlink_cuda.h ffnvcodec/dynlink_cuviddec.h ffnvcodec/dynlink_nvcuvid.h" "" || \
- { test_pkg_config ffnvcodec_tmp "ffnvcodec < 8.1" "" "" && check_pkg_config ffnvcodec "ffnvcodec >= 8.0.14.2" \
- "ffnvcodec/nvEncodeAPI.h ffnvcodec/dynlink_cuda.h ffnvcodec/dynlink_cuviddec.h ffnvcodec/dynlink_nvcuvid.h" ""; }
+ check_pkg_config ffnvcodec "ffnvcodec >= 8.0.14.2 ffnvcodec < 8.1" \
+ "ffnvcodec/nvEncodeAPI.h ffnvcodec/dynlink_cuda.h ffnvcodec/dynlink_cuviddec.h ffnvcodec/dynlink_nvcuvid.h" ""
fi
check_cpp_condition winrt windows.h "!WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)"
@@ -5992,7 +6003,7 @@ enabled gmp && require gmp gmp.h mpz_export -lgmp
enabled gnutls && require_pkg_config gnutls gnutls gnutls/gnutls.h gnutls_global_init
enabled jni && { [ $target_os = "android" ] && check_header jni.h && enabled pthreads || die "ERROR: jni not found"; }
enabled ladspa && require_header ladspa.h
-enabled libaom && require_pkg_config libaom "aom >= 0.1.0" aom/aom_codec.h aom_codec_version
+enabled libaom && require_pkg_config libaom "aom >= 1.0.0" aom/aom_codec.h aom_codec_version
enabled lv2 && require_pkg_config lv2 lilv-0 "lilv/lilv.h" lilv_world_new
enabled libiec61883 && require libiec61883 libiec61883/iec61883.h iec61883_cmp_connect -lraw1394 -lavc1394 -lrom1394 -liec61883
enabled libass && require_pkg_config libass libass ass/ass.h ass_library_init
@@ -6021,6 +6032,7 @@ enabled libgsm && { for gsm_hdr in "gsm.h" "gsm/gsm.h"; do
done || die "ERROR: libgsm not found"; }
enabled libilbc && require libilbc ilbc.h WebRtcIlbcfix_InitDecode -lilbc $pthreads_extralibs
enabled libkvazaar && require_pkg_config libkvazaar "kvazaar >= 0.8.1" kvazaar.h kvz_api_get
+enabled liblensfun && require_pkg_config liblensfun lensfun lensfun.h lf_db_new
# While it may appear that require is being used as a pkg-config
# fallback for libmfx, it is actually being used to detect a different
# installation route altogether. If libmfx is installed via the Intel
@@ -6343,10 +6355,8 @@ fi
if enabled_all opencl vaapi ; then
enabled opencl_drm_beignet && enable opencl_vaapi_beignet
- if enabled libmfx ; then
- check_type "CL/cl.h CL/va_ext.h" "clCreateFromVA_APIMediaSurfaceINTEL_fn" &&
- enable opencl_vaapi_intel_media
- fi
+ check_type "CL/cl.h CL/va_ext.h" "clCreateFromVA_APIMediaSurfaceINTEL_fn" &&
+ enable opencl_vaapi_intel_media
fi
if enabled_all opencl dxva2 ; then
@@ -6832,7 +6842,7 @@ enabled signature_filter && prepend avfilter_deps "avcodec avformat"
enabled smartblur_filter && prepend avfilter_deps "swscale"
enabled spectrumsynth_filter && prepend avfilter_deps "avcodec"
enabled spp_filter && prepend avfilter_deps "avcodec"
-enabled srcnn_filter && prepend avfilter_deps "avformat"
+enabled sr_filter && prepend avfilter_deps "avformat swscale"
enabled subtitles_filter && prepend avfilter_deps "avformat avcodec"
enabled uspp_filter && prepend avfilter_deps "avcodec"
enabled zoompan_filter && prepend avfilter_deps "swscale"
diff --git a/chromium/third_party/ffmpeg/doc/fate.texi b/chromium/third_party/ffmpeg/doc/fate.texi
index c9c0d3aea98..a3529942306 100644
--- a/chromium/third_party/ffmpeg/doc/fate.texi
+++ b/chromium/third_party/ffmpeg/doc/fate.texi
@@ -222,6 +222,11 @@ Set to @samp{1} to generate the missing or mismatched references.
Specify which hardware acceleration to use while running regression tests,
by default @samp{none} is used.
+@item KEEP
+Set to @samp{1} to keep temp files generated by fate test(s) when test is successful.
+Default is @samp{0}, which removes these files. Files are always kept when a test
+fails.
+
@end table
@section Examples
diff --git a/chromium/third_party/ffmpeg/doc/filters.texi b/chromium/third_party/ffmpeg/doc/filters.texi
index de4b61cb40c..0b0903e5a71 100644
--- a/chromium/third_party/ffmpeg/doc/filters.texi
+++ b/chromium/third_party/ffmpeg/doc/filters.texi
@@ -1986,7 +1986,12 @@ Adjust audio tempo.
The filter accepts exactly one parameter, the audio tempo. If not
specified then the filter will assume nominal 1.0 tempo. Tempo must
-be in the [0.5, 2.0] range.
+be in the [0.5, 100.0] range.
+
+Note that tempo greater than 2 will skip some samples rather than
+blend them in. If for any reason this is a concern it is always
+possible to daisy-chain several instances of atempo to achieve the
+desired product tempo.
@subsection Examples
@@ -1998,9 +2003,15 @@ atempo=0.8
@end example
@item
-To speed up audio to 125% tempo:
+To speed up audio to 300% tempo:
+@example
+atempo=3
+@end example
+
+@item
+To speed up audio to 300% tempo by daisy-chaining two atempo instances:
@example
-atempo=1.25
+atempo=sqrt(3),atempo=sqrt(3)
@end example
@end itemize
@@ -5420,13 +5431,13 @@ The filter accepts the following options:
@table @option
@item sizeX
-Set horizontal kernel size.
+Set horizontal radius size.
@item planes
Set which planes to filter. By default all planes are filtered.
@item sizeY
-Set vertical kernel size, if zero it will be same as @code{sizeX}.
+Set vertical radius size, if zero it will be same as @code{sizeX}.
Default is @code{0}.
@end table
@@ -5634,10 +5645,10 @@ the width and height of currently filtered plane
@item SW
@item SH
-Width and height scale depending on the currently filtered plane. It is the
-ratio between the corresponding luma plane number of pixels and the current
-plane ones. E.g. for YUV4:2:0 the values are @code{1,1} for the luma plane, and
-@code{0.5,0.5} for chroma planes.
+Width and height scale for the plane being filtered. It is the
+ratio between the dimensions of the current plane to the luma plane,
+e.g. for a @code{yuv420p} frame, the values are @code{1,1} for
+the luma plane and @code{0.5,0.5} for the chroma planes.
@item T
Time of the current frame, expressed in seconds.
@@ -9929,6 +9940,47 @@ gradfun=radius=8
@end itemize
+@section greyedge
+A color constancy variation filter which estimates scene illumination via grey edge algorithm
+and corrects the scene colors accordingly.
+
+See: @url{https://staff.science.uva.nl/th.gevers/pub/GeversTIP07.pdf}
+
+The filter accepts the following options:
+
+@table @option
+@item difford
+The order of differentiation to be applied on the scene. Must be chosen in the range
+[0,2] and default value is 1.
+
+@item minknorm
+The Minkowski parameter to be used for calculating the Minkowski distance. Must
+be chosen in the range [0,65535] and default value is 1. Set to 0 for getting
+max value instead of calculating Minkowski distance.
+
+@item sigma
+The standard deviation of Gaussian blur to be applied on the scene. Must be
+chosen in the range [0,1024.0] and default value = 1. Sigma can't be set to 0
+if @var{difford} is greater than 0.
+@end table
+
+@subsection Examples
+@itemize
+
+@item
+Grey Edge:
+@example
+greyedge=difford=1:minknorm=5:sigma=2
+@end example
+
+@item
+Max Edge:
+@example
+greyedge=difford=1:minknorm=0:sigma=2
+@end example
+
+@end itemize
+
@anchor{haldclut}
@section haldclut
@@ -10689,6 +10741,124 @@ The formula that generates the correction is:
where @var{r_0} is halve of the image diagonal and @var{r_src} and @var{r_tgt} are the
distances from the focal point in the source and target images, respectively.
+@section lensfun
+
+Apply lens correction via the lensfun library (@url{http://lensfun.sourceforge.net/}).
+
+The @code{lensfun} filter requires the camera make, camera model, and lens model
+to apply the lens correction. The filter will load the lensfun database and
+query it to find the corresponding camera and lens entries in the database. As
+long as these entries can be found with the given options, the filter can
+perform corrections on frames. Note that incomplete strings will result in the
+filter choosing the best match with the given options, and the filter will
+output the chosen camera and lens models (logged with level "info"). You must
+provide the make, camera model, and lens model as they are required.
+
+The filter accepts the following options:
+
+@table @option
+@item make
+The make of the camera (for example, "Canon"). This option is required.
+
+@item model
+The model of the camera (for example, "Canon EOS 100D"). This option is
+required.
+
+@item lens_model
+The model of the lens (for example, "Canon EF-S 18-55mm f/3.5-5.6 IS STM"). This
+option is required.
+
+@item mode
+The type of correction to apply. The following values are valid options:
+
+@table @samp
+@item vignetting
+Enables fixing lens vignetting.
+
+@item geometry
+Enables fixing lens geometry. This is the default.
+
+@item subpixel
+Enables fixing chromatic aberrations.
+
+@item vig_geo
+Enables fixing lens vignetting and lens geometry.
+
+@item vig_subpixel
+Enables fixing lens vignetting and chromatic aberrations.
+
+@item distortion
+Enables fixing both lens geometry and chromatic aberrations.
+
+@item all
+Enables all possible corrections.
+
+@end table
+@item focal_length
+The focal length of the image/video (zoom; expected constant for video). For
+example, a 18--55mm lens has focal length range of [18--55], so a value in that
+range should be chosen when using that lens. Default 18.
+
+@item aperture
+The aperture of the image/video (expected constant for video). Note that
+aperture is only used for vignetting correction. Default 3.5.
+
+@item focus_distance
+The focus distance of the image/video (expected constant for video). Note that
+focus distance is only used for vignetting and only slightly affects the
+vignetting correction process. If unknown, leave it at the default value (which
+is 1000).
+
+@item target_geometry
+The target geometry of the output image/video. The following values are valid
+options:
+
+@table @samp
+@item rectilinear (default)
+@item fisheye
+@item panoramic
+@item equirectangular
+@item fisheye_orthographic
+@item fisheye_stereographic
+@item fisheye_equisolid
+@item fisheye_thoby
+@end table
+@item reverse
+Apply the reverse of image correction (instead of correcting distortion, apply
+it).
+
+@item interpolation
+The type of interpolation used when correcting distortion. The following values
+are valid options:
+
+@table @samp
+@item nearest
+@item linear (default)
+@item lanczos
+@end table
+@end table
+
+@subsection Examples
+
+@itemize
+@item
+Apply lens correction with make "Canon", camera model "Canon EOS 100D", and lens
+model "Canon EF-S 18-55mm f/3.5-5.6 IS STM" with focal length of "18" and
+aperture of "8.0".
+
+@example
+ffmpeg -i input.mov -vf lensfun=make=Canon:model="Canon EOS 100D":lens_model="Canon EF-S 18-55mm f/3.5-5.6 IS STM":focal_length=18:aperture=8 -c:v h264 -b:v 8000k output.mov
+@end example
+
+@item
+Apply the same as before, but only for the first 5 seconds of video.
+
+@example
+ffmpeg -i input.mov -vf lensfun=make=Canon:model="Canon EOS 100D":lens_model="Canon EF-S 18-55mm f/3.5-5.6 IS STM":focal_length=18:aperture=8:enable='lte(t\,5)' -c:v h264 -b:v 8000k output.mov
+@end example
+
+@end itemize
+
@section libvmaf
Obtain the VMAF (Video Multi-Method Assessment Fusion)
@@ -11426,10 +11596,15 @@ Default value for @option{hi} is 64*12, default value for @option{lo} is
@section negate
-Negate input video.
+Negate (invert) the input video.
-It accepts an integer in input; if non-zero it negates the
-alpha component (if available). The default value in input is 0.
+It accepts the following option:
+
+@table @option
+
+@item negate_alpha
+With value 1, it negates the alpha component, if present. Default value is 0.
+@end table
@section nlmeans
@@ -18301,9 +18476,15 @@ Default is @code{replace}.
@section aphasemeter
-Convert input audio to a video output, displaying the audio phase.
+Measures phase of input audio, which is exported as metadata @code{lavfi.aphasemeter.phase},
+representing mean phase of current audio frame. A video output can also be produced and is
+enabled by default. The audio is passed through as first output.
-The filter accepts the following options:
+Audio will be rematrixed to stereo if it has a different channel layout. Phase value is in
+range @code{[-1, 1]} where @code{-1} means left and right channels are completely out of phase
+and @code{1} means channels are in phase.
+
+The filter accepts the following options, all related to its video output:
@table @option
@item rate, r
@@ -18329,11 +18510,6 @@ Set color which will be used for drawing median phase. If color is
Enable video output. Default is enabled.
@end table
-The filter also exports the frame metadata @code{lavfi.aphasemeter.phase} which
-represents mean phase of current audio frame. Value is in range @code{[-1, 1]}.
-The @code{-1} means left and right channels are completely out of phase and
-@code{1} means channels are in phase.
-
@section avectorscope
Convert input audio to a video output, representing the audio vector
@@ -19376,7 +19552,7 @@ The expression is evaluated through the eval API and can contain the following
constants:
@table @option
-@item FRAME_RATE
+@item FRAME_RATE, FR
frame rate, only defined for constant frame-rate video
@item PTS
diff --git a/chromium/third_party/ffmpeg/doc/formats.texi b/chromium/third_party/ffmpeg/doc/formats.texi
index ddd77435486..a97d61063ab 100644
--- a/chromium/third_party/ffmpeg/doc/formats.texi
+++ b/chromium/third_party/ffmpeg/doc/formats.texi
@@ -30,37 +30,43 @@ latency. Must be an integer not lesser than 32. It is 5000000 by default.
@item packetsize @var{integer} (@emph{output})
Set packet size.
-@item fflags @var{flags} (@emph{input/output})
-Set format flags.
+@item fflags @var{flags}
+Set format flags. Some are implemented for a limited number of formats.
-Possible values:
+Possible values for input files:
@table @samp
-@item ignidx
-Ignore index.
+@item discardcorrupt
+Discard corrupted packets.
@item fastseek
Enable fast, but inaccurate seeks for some formats.
@item genpts
-Generate PTS.
+Generate missing PTS if DTS is present.
+@item igndts
+Ignore DTS if PTS is set. Inert when nofillin is set.
+@item ignidx
+Ignore index.
+@item keepside (@emph{deprecated},@emph{inert})
+@item nobuffer
+Reduce the latency introduced by buffering during initial input streams analysis.
@item nofillin
-Do not fill in missing values that can be exactly calculated.
+Do not fill in missing values in packet fields that can be exactly calculated.
@item noparse
Disable AVParsers, this needs @code{+nofillin} too.
-@item igndts
-Ignore DTS.
-@item discardcorrupt
-Discard corrupted frames.
@item sortdts
-Try to interleave output packets by DTS.
-@item keepside
-Do not merge side data.
-@item latm
-Enable RTP MP4A-LATM payload.
-@item nobuffer
-Reduce the latency introduced by optional buffering
+Try to interleave output packets by DTS. At present, available only for AVIs with an index.
+@end table
+
+Possible values for output files:
+@table @samp
+@item autobsf
+Automatically apply bitstream filters as required by the output format. Enabled by default.
@item bitexact
Only write platform-, build- and time-independent data.
This ensures that file and data checksums are reproducible and match between
platforms. Its primary use is for regression testing.
+@item flush_packets
+Write out packets immediately.
+@item latm (@emph{deprecated},@emph{inert})
@item shortest
Stop muxing at the end of the shortest stream.
It may be needed to increase max_interleave_delta to avoid flushing the longer
diff --git a/chromium/third_party/ffmpeg/doc/indevs.texi b/chromium/third_party/ffmpeg/doc/indevs.texi
index 6951940a93a..5d4c02c5974 100644
--- a/chromium/third_party/ffmpeg/doc/indevs.texi
+++ b/chromium/third_party/ffmpeg/doc/indevs.texi
@@ -326,6 +326,12 @@ Defaults to @samp{2}.
Sets the decklink device duplex mode. Must be @samp{unset}, @samp{half} or @samp{full}.
Defaults to @samp{unset}.
+@item timecode_format
+Timecode type to include in the frame and video stream metadata. Must be
+@samp{none}, @samp{rp188vitc}, @samp{rp188vitc2}, @samp{rp188ltc},
+@samp{rp188any}, @samp{vitc}, @samp{vitc2}, or @samp{serial}. Defaults to
+@samp{none} (not included).
+
@item video_input
Sets the video input source. Must be @samp{unset}, @samp{sdi}, @samp{hdmi},
@samp{optical_sdi}, @samp{component}, @samp{composite} or @samp{s_video}.
@@ -402,116 +408,6 @@ ffmpeg -channels 16 -format_code Hi50 -f decklink -i 'UltraStudio Mini Recorder'
@end itemize
-@section kmsgrab
-
-KMS video input device.
-
-Captures the KMS scanout framebuffer associated with a specified CRTC or plane as a
-DRM object that can be passed to other hardware functions.
-
-Requires either DRM master or CAP_SYS_ADMIN to run.
-
-If you don't understand what all of that means, you probably don't want this. Look at
-@option{x11grab} instead.
-
-@subsection Options
-
-@table @option
-
-@item device
-DRM device to capture on. Defaults to @option{/dev/dri/card0}.
-
-@item format
-Pixel format of the framebuffer. Defaults to @option{bgr0}.
-
-@item format_modifier
-Format modifier to signal on output frames. This is necessary to import correctly into
-some APIs, but can't be autodetected. See the libdrm documentation for possible values.
-
-@item crtc_id
-KMS CRTC ID to define the capture source. The first active plane on the given CRTC
-will be used.
-
-@item plane_id
-KMS plane ID to define the capture source. Defaults to the first active plane found if
-neither @option{crtc_id} nor @option{plane_id} are specified.
-
-@item framerate
-Framerate to capture at. This is not synchronised to any page flipping or framebuffer
-changes - it just defines the interval at which the framebuffer is sampled. Sampling
-faster than the framebuffer update rate will generate independent frames with the same
-content. Defaults to @code{30}.
-
-@end table
-
-@subsection Examples
-
-@itemize
-
-@item
-Capture from the first active plane, download the result to normal frames and encode.
-This will only work if the framebuffer is both linear and mappable - if not, the result
-may be scrambled or fail to download.
-@example
-ffmpeg -f kmsgrab -i - -vf 'hwdownload,format=bgr0' output.mp4
-@end example
-
-@item
-Capture from CRTC ID 42 at 60fps, map the result to VAAPI, convert to NV12 and encode as H.264.
-@example
-ffmpeg -crtc_id 42 -framerate 60 -f kmsgrab -i - -vf 'hwmap=derive_device=vaapi,scale_vaapi=w=1920:h=1080:format=nv12' -c:v h264_vaapi output.mp4
-@end example
-
-@end itemize
-
-@section libndi_newtek
-
-The libndi_newtek input device provides capture capabilities for using NDI (Network
-Device Interface, standard created by NewTek).
-
-Input filename is a NDI source name that could be found by sending -find_sources 1
-to command line - it has no specific syntax but human-readable formatted.
-
-To enable this input device, you need the NDI SDK and you
-need to configure with the appropriate @code{--extra-cflags}
-and @code{--extra-ldflags}.
-
-@subsection Options
-
-@table @option
-
-@item find_sources
-If set to @option{true}, print a list of found/available NDI sources and exit.
-Defaults to @option{false}.
-
-@item wait_sources
-Override time to wait until the number of online sources have changed.
-Defaults to @option{0.5}.
-
-@item allow_video_fields
-When this flag is @option{false}, all video that you receive will be progressive.
-Defaults to @option{true}.
-
-@end table
-
-@subsection Examples
-
-@itemize
-
-@item
-List input devices:
-@example
-ffmpeg -f libndi_newtek -find_sources 1 -i dummy
-@end example
-
-@item
-Restream to NDI:
-@example
-ffmpeg -f libndi_newtek -i "DEV-5.INTERNAL.M1STEREO.TV (NDI_SOURCE_NAME_1)" -f libndi_newtek -y NDI_SOURCE_NAME_2
-@end example
-
-@end itemize
-
@section dshow
Windows DirectShow input device.
@@ -939,6 +835,68 @@ Set the number of channels. Default is 2.
@end table
+@section kmsgrab
+
+KMS video input device.
+
+Captures the KMS scanout framebuffer associated with a specified CRTC or plane as a
+DRM object that can be passed to other hardware functions.
+
+Requires either DRM master or CAP_SYS_ADMIN to run.
+
+If you don't understand what all of that means, you probably don't want this. Look at
+@option{x11grab} instead.
+
+@subsection Options
+
+@table @option
+
+@item device
+DRM device to capture on. Defaults to @option{/dev/dri/card0}.
+
+@item format
+Pixel format of the framebuffer. Defaults to @option{bgr0}.
+
+@item format_modifier
+Format modifier to signal on output frames. This is necessary to import correctly into
+some APIs, but can't be autodetected. See the libdrm documentation for possible values.
+
+@item crtc_id
+KMS CRTC ID to define the capture source. The first active plane on the given CRTC
+will be used.
+
+@item plane_id
+KMS plane ID to define the capture source. Defaults to the first active plane found if
+neither @option{crtc_id} nor @option{plane_id} are specified.
+
+@item framerate
+Framerate to capture at. This is not synchronised to any page flipping or framebuffer
+changes - it just defines the interval at which the framebuffer is sampled. Sampling
+faster than the framebuffer update rate will generate independent frames with the same
+content. Defaults to @code{30}.
+
+@end table
+
+@subsection Examples
+
+@itemize
+
+@item
+Capture from the first active plane, download the result to normal frames and encode.
+This will only work if the framebuffer is both linear and mappable - if not, the result
+may be scrambled or fail to download.
+@example
+ffmpeg -f kmsgrab -i - -vf 'hwdownload,format=bgr0' output.mp4
+@end example
+
+@item
+Capture from CRTC ID 42 at 60fps, map the result to VAAPI, convert to NV12 and encode as H.264.
+@example
+ffmpeg -crtc_id 42 -framerate 60 -f kmsgrab -i - -vf 'hwmap=derive_device=vaapi,scale_vaapi=w=1920:h=1080:format=nv12' -c:v h264_vaapi output.mp4
+@end example
+
+@end itemize
+
@section lavfi
Libavfilter input virtual device.
@@ -1077,6 +1035,54 @@ IIDC1394 input device, based on libdc1394 and libraw1394.
Requires the configure option @code{--enable-libdc1394}.
+@section libndi_newtek
+
+The libndi_newtek input device provides capture capabilities for using NDI (Network
+Device Interface, standard created by NewTek).
+
+Input filename is a NDI source name that could be found by sending -find_sources 1
+to command line - it has no specific syntax but human-readable formatted.
+
+To enable this input device, you need the NDI SDK and you
+need to configure with the appropriate @code{--extra-cflags}
+and @code{--extra-ldflags}.
+
+@subsection Options
+
+@table @option
+
+@item find_sources
+If set to @option{true}, print a list of found/available NDI sources and exit.
+Defaults to @option{false}.
+
+@item wait_sources
+Override time to wait until the number of online sources have changed.
+Defaults to @option{0.5}.
+
+@item allow_video_fields
+When this flag is @option{false}, all video that you receive will be progressive.
+Defaults to @option{true}.
+
+@end table
+
+@subsection Examples
+
+@itemize
+
+@item
+List input devices:
+@example
+ffmpeg -f libndi_newtek -find_sources 1 -i dummy
+@end example
+
+@item
+Restream to NDI:
+@example
+ffmpeg -f libndi_newtek -i "DEV-5.INTERNAL.M1STEREO.TV (NDI_SOURCE_NAME_1)" -f libndi_newtek -y NDI_SOURCE_NAME_2
+@end example
+
+@end itemize
+
@section openal
The OpenAL input device provides audio capture on all systems with a
@@ -1195,7 +1201,6 @@ Set the number of channels. Default is 2.
@end table
-
@section pulse
PulseAudio input device.
diff --git a/chromium/third_party/ffmpeg/doc/outdevs.texi b/chromium/third_party/ffmpeg/doc/outdevs.texi
index c2906b9371c..30d376d793a 100644
--- a/chromium/third_party/ffmpeg/doc/outdevs.texi
+++ b/chromium/third_party/ffmpeg/doc/outdevs.texi
@@ -182,6 +182,35 @@ ffmpeg -i test.avi -f decklink -pix_fmt uyvy422 -s 720x486 -r 24000/1001 'DeckLi
@end itemize
+@section fbdev
+
+Linux framebuffer output device.
+
+The Linux framebuffer is a graphic hardware-independent abstraction
+layer to show graphics on a computer monitor, typically on the
+console. It is accessed through a file device node, usually
+@file{/dev/fb0}.
+
+For more detailed information read the file
+@file{Documentation/fb/framebuffer.txt} included in the Linux source tree.
+
+@subsection Options
+@table @option
+
+@item xoffset
+@item yoffset
+Set x/y coordinate of top left corner. Default is 0.
+@end table
+
+@subsection Examples
+Play a file on framebuffer device @file{/dev/fb0}.
+Required pixel format depends on current framebuffer settings.
+@example
+ffmpeg -re -i INPUT -c:v rawvideo -pix_fmt bgra -f fbdev /dev/fb0
+@end example
+
+See also @url{http://linux-fbdev.sourceforge.net/}, and fbset(1).
+
@section libndi_newtek
The libndi_newtek output device provides playback capabilities for using NDI (Network
@@ -227,35 +256,6 @@ ffmpeg -i "udp://@@239.1.1.1:10480?fifo_size=1000000&overrun_nonfatal=1" -vf "sc
@end itemize
-@section fbdev
-
-Linux framebuffer output device.
-
-The Linux framebuffer is a graphic hardware-independent abstraction
-layer to show graphics on a computer monitor, typically on the
-console. It is accessed through a file device node, usually
-@file{/dev/fb0}.
-
-For more detailed information read the file
-@file{Documentation/fb/framebuffer.txt} included in the Linux source tree.
-
-@subsection Options
-@table @option
-
-@item xoffset
-@item yoffset
-Set x/y coordinate of top left corner. Default is 0.
-@end table
-
-@subsection Examples
-Play a file on framebuffer device @file{/dev/fb0}.
-Required pixel format depends on current framebuffer settings.
-@example
-ffmpeg -re -i INPUT -c:v rawvideo -pix_fmt bgra -f fbdev /dev/fb0
-@end example
-
-See also @url{http://linux-fbdev.sourceforge.net/}, and fbset(1).
-
@section opengl
OpenGL output device.
@@ -425,6 +425,10 @@ ffmpeg -i INPUT -c:v rawvideo -pix_fmt yuv420p -window_size qcif -f sdl "SDL out
sndio audio output device.
+@section v4l2
+
+Video4Linux2 output device.
+
@section xv
XV (XVideo) output device.
diff --git a/chromium/third_party/ffmpeg/ffmpeg_generated.gni b/chromium/third_party/ffmpeg/ffmpeg_generated.gni
index 3e6e8ee2c02..8ac532b6c34 100644
--- a/chromium/third_party/ffmpeg/ffmpeg_generated.gni
+++ b/chromium/third_party/ffmpeg/ffmpeg_generated.gni
@@ -77,6 +77,7 @@ if ((is_android && current_cpu == "arm" && arm_use_neon) || (is_android && curre
"libavcodec/opus_rc.c",
"libavcodec/opustab.c",
"libavcodec/parser.c",
+ "libavcodec/parsers.c",
"libavcodec/pcm.c",
"libavcodec/profiles.c",
"libavcodec/pthread.c",
diff --git a/chromium/third_party/ffmpeg/fftools/cmdutils.c b/chromium/third_party/ffmpeg/fftools/cmdutils.c
index 844f43359c2..b8de319fe4a 100644
--- a/chromium/third_party/ffmpeg/fftools/cmdutils.c
+++ b/chromium/third_party/ffmpeg/fftools/cmdutils.c
@@ -1018,7 +1018,7 @@ static int init_report(const char *env)
av_free(key);
}
- av_bprint_init(&filename, 0, 1);
+ av_bprint_init(&filename, 0, AV_BPRINT_SIZE_AUTOMATIC);
expand_filename_template(&filename,
av_x_if_null(filename_template, "%p-%t.log"), tm);
av_free(filename_template);
diff --git a/chromium/third_party/ffmpeg/fftools/ffmpeg.c b/chromium/third_party/ffmpeg/fftools/ffmpeg.c
index d4ac6903cca..55faec8ede2 100644
--- a/chromium/third_party/ffmpeg/fftools/ffmpeg.c
+++ b/chromium/third_party/ffmpeg/fftools/ffmpeg.c
@@ -772,7 +772,7 @@ static void write_packet(OutputFile *of, AVPacket *pkt, OutputStream *ost, int u
- FFMIN3(pkt->pts, pkt->dts, ost->last_mux_dts + 1)
- FFMAX3(pkt->pts, pkt->dts, ost->last_mux_dts + 1);
}
- if ((st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO || st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) &&
+ if ((st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO || st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO || st->codecpar->codec_type == AVMEDIA_TYPE_SUBTITLE) &&
pkt->dts != AV_NOPTS_VALUE &&
!(st->codecpar->codec_id == AV_CODEC_ID_VP9 && ost->stream_copy) &&
ost->last_mux_dts != AV_NOPTS_VALUE) {
@@ -1121,7 +1121,7 @@ static void do_video_out(OutputFile *of,
format_video_sync != VSYNC_PASSTHROUGH &&
format_video_sync != VSYNC_DROP) {
if (delta0 < -0.6) {
- av_log(NULL, AV_LOG_WARNING, "Past duration %f too large\n", -delta0);
+ av_log(NULL, AV_LOG_VERBOSE, "Past duration %f too large\n", -delta0);
} else
av_log(NULL, AV_LOG_DEBUG, "Clipping frame in rate conversion by %f\n", -delta0);
sync_ipts = ost->sync_opts;
@@ -1689,7 +1689,7 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti
vid = 0;
av_bprint_init(&buf, 0, AV_BPRINT_SIZE_AUTOMATIC);
- av_bprint_init(&buf_script, 0, 1);
+ av_bprint_init(&buf_script, 0, AV_BPRINT_SIZE_AUTOMATIC);
for (i = 0; i < nb_output_streams; i++) {
float q = -1;
ost = output_streams[i];
@@ -2710,8 +2710,13 @@ static int process_input_packet(InputStream *ist, const AVPacket *pkt, int no_eo
ist->dts = ist->next_dts;
switch (ist->dec_ctx->codec_type) {
case AVMEDIA_TYPE_AUDIO:
- ist->next_dts += ((int64_t)AV_TIME_BASE * ist->dec_ctx->frame_size) /
- ist->dec_ctx->sample_rate;
+ av_assert1(pkt->duration >= 0);
+ if (ist->dec_ctx->sample_rate) {
+ ist->next_dts += ((int64_t)AV_TIME_BASE * ist->dec_ctx->frame_size) /
+ ist->dec_ctx->sample_rate;
+ } else {
+ ist->next_dts += av_rescale_q(pkt->duration, ist->st->time_base, AV_TIME_BASE_Q);
+ }
break;
case AVMEDIA_TYPE_VIDEO:
if (ist->framerate.num) {
@@ -4048,49 +4053,63 @@ static void *input_thread(void *arg)
return NULL;
}
+static void free_input_thread(int i)
+{
+ InputFile *f = input_files[i];
+ AVPacket pkt;
+
+ if (!f || !f->in_thread_queue)
+ return;
+ av_thread_message_queue_set_err_send(f->in_thread_queue, AVERROR_EOF);
+ while (av_thread_message_queue_recv(f->in_thread_queue, &pkt, 0) >= 0)
+ av_packet_unref(&pkt);
+
+ pthread_join(f->thread, NULL);
+ f->joined = 1;
+ av_thread_message_queue_free(&f->in_thread_queue);
+}
+
static void free_input_threads(void)
{
int i;
- for (i = 0; i < nb_input_files; i++) {
- InputFile *f = input_files[i];
- AVPacket pkt;
+ for (i = 0; i < nb_input_files; i++)
+ free_input_thread(i);
+}
- if (!f || !f->in_thread_queue)
- continue;
- av_thread_message_queue_set_err_send(f->in_thread_queue, AVERROR_EOF);
- while (av_thread_message_queue_recv(f->in_thread_queue, &pkt, 0) >= 0)
- av_packet_unref(&pkt);
+static int init_input_thread(int i)
+{
+ int ret;
+ InputFile *f = input_files[i];
- pthread_join(f->thread, NULL);
- f->joined = 1;
+ if (nb_input_files == 1)
+ return 0;
+
+ if (f->ctx->pb ? !f->ctx->pb->seekable :
+ strcmp(f->ctx->iformat->name, "lavfi"))
+ f->non_blocking = 1;
+ ret = av_thread_message_queue_alloc(&f->in_thread_queue,
+ f->thread_queue_size, sizeof(AVPacket));
+ if (ret < 0)
+ return ret;
+
+ if ((ret = pthread_create(&f->thread, NULL, input_thread, f))) {
+ av_log(NULL, AV_LOG_ERROR, "pthread_create failed: %s. Try to increase `ulimit -v` or decrease `ulimit -s`.\n", strerror(ret));
av_thread_message_queue_free(&f->in_thread_queue);
+ return AVERROR(ret);
}
+
+ return 0;
}
static int init_input_threads(void)
{
int i, ret;
- if (nb_input_files == 1)
- return 0;
-
for (i = 0; i < nb_input_files; i++) {
- InputFile *f = input_files[i];
-
- if (f->ctx->pb ? !f->ctx->pb->seekable :
- strcmp(f->ctx->iformat->name, "lavfi"))
- f->non_blocking = 1;
- ret = av_thread_message_queue_alloc(&f->in_thread_queue,
- f->thread_queue_size, sizeof(AVPacket));
+ ret = init_input_thread(i);
if (ret < 0)
return ret;
-
- if ((ret = pthread_create(&f->thread, NULL, input_thread, f))) {
- av_log(NULL, AV_LOG_ERROR, "pthread_create failed: %s. Try to increase `ulimit -v` or decrease `ulimit -s`.\n", strerror(ret));
- av_thread_message_queue_free(&f->in_thread_queue);
- return AVERROR(ret);
- }
}
return 0;
}
@@ -4232,7 +4251,7 @@ static int process_input(int file_index)
AVFormatContext *is;
InputStream *ist;
AVPacket pkt;
- int ret, i, j;
+ int ret, thread_ret, i, j;
int64_t duration;
int64_t pkt_dts;
@@ -4255,7 +4274,15 @@ static int process_input(int file_index)
avcodec_flush_buffers(avctx);
}
}
+#if HAVE_THREADS
+ free_input_thread(file_index);
+#endif
ret = seek_to_start(ifile, is);
+#if HAVE_THREADS
+ thread_ret = init_input_thread(file_index);
+ if (thread_ret < 0)
+ return thread_ret;
+#endif
if (ret < 0)
av_log(NULL, AV_LOG_WARNING, "Seek to start failed.\n");
else
diff --git a/chromium/third_party/ffmpeg/fftools/ffmpeg_filter.c b/chromium/third_party/ffmpeg/fftools/ffmpeg_filter.c
index 068f499e0b6..6518d50870c 100644
--- a/chromium/third_party/ffmpeg/fftools/ffmpeg_filter.c
+++ b/chromium/third_party/ffmpeg/fftools/ffmpeg_filter.c
@@ -775,7 +775,7 @@ static int configure_input_video_filter(FilterGraph *fg, InputFilter *ifilter,
sar = ifilter->sample_aspect_ratio;
if(!sar.den)
sar = (AVRational){0,1};
- av_bprint_init(&args, 0, 1);
+ av_bprint_init(&args, 0, AV_BPRINT_SIZE_AUTOMATIC);
av_bprintf(&args,
"video_size=%dx%d:pix_fmt=%d:time_base=%d/%d:"
"pixel_aspect=%d/%d:sws_param=flags=%d",
diff --git a/chromium/third_party/ffmpeg/fftools/ffmpeg_opt.c b/chromium/third_party/ffmpeg/fftools/ffmpeg_opt.c
index a2ecddae719..58ec13e5a8f 100644
--- a/chromium/third_party/ffmpeg/fftools/ffmpeg_opt.c
+++ b/chromium/third_party/ffmpeg/fftools/ffmpeg_opt.c
@@ -1103,9 +1103,22 @@ static int open_input_file(OptionsContext *o, const char *filename)
}
}
+ if (o->start_time != AV_NOPTS_VALUE && o->start_time_eof != AV_NOPTS_VALUE) {
+ av_log(NULL, AV_LOG_WARNING, "Cannot use -ss and -sseof both, using -ss for %s\n", filename);
+ o->start_time_eof = AV_NOPTS_VALUE;
+ }
+
if (o->start_time_eof != AV_NOPTS_VALUE) {
- if (ic->duration>0) {
+ if (o->start_time_eof >= 0) {
+ av_log(NULL, AV_LOG_ERROR, "-sseof value must be negative; aborting\n");
+ exit_program(1);
+ }
+ if (ic->duration > 0) {
o->start_time = o->start_time_eof + ic->duration;
+ if (o->start_time < 0) {
+ av_log(NULL, AV_LOG_WARNING, "-sseof value seeks to before start of file %s; ignored\n", filename);
+ o->start_time = AV_NOPTS_VALUE;
+ }
} else
av_log(NULL, AV_LOG_WARNING, "Cannot use -sseof, duration of %s not known\n", filename);
}
diff --git a/chromium/third_party/ffmpeg/fftools/ffplay.c b/chromium/third_party/ffmpeg/fftools/ffplay.c
index 84ba6673dc7..368e2621232 100644
--- a/chromium/third_party/ffmpeg/fftools/ffplay.c
+++ b/chromium/third_party/ffmpeg/fftools/ffplay.c
@@ -954,6 +954,22 @@ static int upload_texture(SDL_Texture **tex, AVFrame *frame, struct SwsContext *
return ret;
}
+static void set_sdl_yuv_conversion_mode(AVFrame *frame)
+{
+#if SDL_VERSION_ATLEAST(2,0,8)
+ SDL_YUV_CONVERSION_MODE mode = SDL_YUV_CONVERSION_AUTOMATIC;
+ if (frame && (frame->format == AV_PIX_FMT_YUV420P || frame->format == AV_PIX_FMT_YUYV422 || frame->format == AV_PIX_FMT_UYVY422)) {
+ if (frame->color_range == AVCOL_RANGE_JPEG)
+ mode = SDL_YUV_CONVERSION_JPEG;
+ else if (frame->colorspace == AVCOL_SPC_BT709)
+ mode = SDL_YUV_CONVERSION_BT709;
+ else if (frame->colorspace == AVCOL_SPC_BT470BG || frame->colorspace == AVCOL_SPC_SMPTE170M || frame->colorspace == AVCOL_SPC_SMPTE240M)
+ mode = SDL_YUV_CONVERSION_BT601;
+ }
+ SDL_SetYUVConversionMode(mode);
+#endif
+}
+
static void video_image_display(VideoState *is)
{
Frame *vp;
@@ -1015,7 +1031,9 @@ static void video_image_display(VideoState *is)
vp->flip_v = vp->frame->linesize[0] < 0;
}
+ set_sdl_yuv_conversion_mode(vp->frame);
SDL_RenderCopyEx(renderer, is->vid_texture, NULL, &rect, 0, NULL, vp->flip_v ? SDL_FLIP_VERTICAL : 0);
+ set_sdl_yuv_conversion_mode(NULL);
if (sp) {
#if USE_ONEPASS_SUBTITLE_RENDER
SDL_RenderCopy(renderer, is->sub_texture, NULL, &rect);
@@ -3251,15 +3269,14 @@ static void event_loop(VideoState *cur_stream)
refresh_loop_wait_event(cur_stream, &event);
switch (event.type) {
case SDL_KEYDOWN:
- if (exit_on_keydown) {
+ if (exit_on_keydown || event.key.keysym.sym == SDLK_ESCAPE || event.key.keysym.sym == SDLK_q) {
do_exit(cur_stream);
break;
}
+ // If we don't yet have a window, skip all key events, because read_thread might still be initializing...
+ if (!cur_stream->width)
+ continue;
switch (event.key.keysym.sym) {
- case SDLK_ESCAPE:
- case SDLK_q:
- do_exit(cur_stream);
- break;
case SDLK_f:
toggle_full_screen(cur_stream);
cur_stream->force_refresh = 1;
diff --git a/chromium/third_party/ffmpeg/libavcodec/Makefile b/chromium/third_party/ffmpeg/libavcodec/Makefile
index 3ab071a0397..e62603f0ddc 100644
--- a/chromium/third_party/ffmpeg/libavcodec/Makefile
+++ b/chromium/third_party/ffmpeg/libavcodec/Makefile
@@ -44,6 +44,7 @@ OBJS = ac3_parser.o \
options.o \
mjpegenc_huffman.o \
parser.o \
+ parsers.o \
profiles.o \
qsv_api.o \
raw.o \
@@ -210,6 +211,7 @@ OBJS-$(CONFIG_ATRAC3P_DECODER) += atrac3plusdec.o atrac3plus.o \
atrac3plusdsp.o atrac.o
OBJS-$(CONFIG_ATRAC3PAL_DECODER) += atrac3plusdec.o atrac3plus.o \
atrac3plusdsp.o atrac.o
+OBJS-$(CONFIG_ATRAC9_DECODER) += atrac9dec.o
OBJS-$(CONFIG_AURA_DECODER) += cyuv.o
OBJS-$(CONFIG_AURA2_DECODER) += aura.o
OBJS-$(CONFIG_AVRN_DECODER) += avrndec.o mjpegdec.o
@@ -1045,7 +1047,7 @@ OBJS-$(CONFIG_DUMP_EXTRADATA_BSF) += dump_extradata_bsf.o
OBJS-$(CONFIG_DCA_CORE_BSF) += dca_core_bsf.o
OBJS-$(CONFIG_EAC3_CORE_BSF) += eac3_core_bsf.o
OBJS-$(CONFIG_EXTRACT_EXTRADATA_BSF) += extract_extradata_bsf.o \
- h2645_parse.o
+ av1_parse.o h2645_parse.o
OBJS-$(CONFIG_FILTER_UNITS_BSF) += filter_units_bsf.o
OBJS-$(CONFIG_H264_METADATA_BSF) += h264_metadata_bsf.o
OBJS-$(CONFIG_H264_MP4TOANNEXB_BSF) += h264_mp4toannexb_bsf.o
diff --git a/chromium/third_party/ffmpeg/libavcodec/aacdec_fixed.c b/chromium/third_party/ffmpeg/libavcodec/aacdec_fixed.c
index 167f5b68a19..1bdb93f5bc8 100644
--- a/chromium/third_party/ffmpeg/libavcodec/aacdec_fixed.c
+++ b/chromium/third_party/ffmpeg/libavcodec/aacdec_fixed.c
@@ -436,7 +436,7 @@ static void apply_independent_coupling_fixed(AACContext *ac,
else {
for (i = 0; i < len; i++) {
tmp = (int)(((int64_t)src[i] * c + (int64_t)0x1000000000) >> 37);
- dest[i] += tmp * (1 << shift);
+ dest[i] += tmp * (1U << shift);
}
}
}
diff --git a/chromium/third_party/ffmpeg/libavcodec/aarch64/h264dsp_init_aarch64.c b/chromium/third_party/ffmpeg/libavcodec/aarch64/h264dsp_init_aarch64.c
index e0f378f5ab4..eb2014e24d6 100644
--- a/chromium/third_party/ffmpeg/libavcodec/aarch64/h264dsp_init_aarch64.c
+++ b/chromium/third_party/ffmpeg/libavcodec/aarch64/h264dsp_init_aarch64.c
@@ -34,20 +34,20 @@ void ff_h264_v_loop_filter_chroma_neon(uint8_t *pix, int stride, int alpha,
void ff_h264_h_loop_filter_chroma_neon(uint8_t *pix, int stride, int alpha,
int beta, int8_t *tc0);
-void ff_weight_h264_pixels_16_neon(uint8_t *dst, int stride, int height,
+void ff_weight_h264_pixels_16_neon(uint8_t *dst, ptrdiff_t stride, int height,
int log2_den, int weight, int offset);
-void ff_weight_h264_pixels_8_neon(uint8_t *dst, int stride, int height,
+void ff_weight_h264_pixels_8_neon(uint8_t *dst, ptrdiff_t stride, int height,
int log2_den, int weight, int offset);
-void ff_weight_h264_pixels_4_neon(uint8_t *dst, int stride, int height,
+void ff_weight_h264_pixels_4_neon(uint8_t *dst, ptrdiff_t stride, int height,
int log2_den, int weight, int offset);
-void ff_biweight_h264_pixels_16_neon(uint8_t *dst, uint8_t *src, int stride,
+void ff_biweight_h264_pixels_16_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride,
int height, int log2_den, int weightd,
int weights, int offset);
-void ff_biweight_h264_pixels_8_neon(uint8_t *dst, uint8_t *src, int stride,
+void ff_biweight_h264_pixels_8_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride,
int height, int log2_den, int weightd,
int weights, int offset);
-void ff_biweight_h264_pixels_4_neon(uint8_t *dst, uint8_t *src, int stride,
+void ff_biweight_h264_pixels_4_neon(uint8_t *dst, uint8_t *src, ptrdiff_t stride,
int height, int log2_den, int weightd,
int weights, int offset);
diff --git a/chromium/third_party/ffmpeg/libavcodec/ac3_parser.c b/chromium/third_party/ffmpeg/libavcodec/ac3_parser.c
index f4618bf215e..1e203ae6ac2 100644
--- a/chromium/third_party/ffmpeg/libavcodec/ac3_parser.c
+++ b/chromium/third_party/ffmpeg/libavcodec/ac3_parser.c
@@ -162,7 +162,9 @@ int avpriv_ac3_parse_header(AC3HeaderInfo **phdr, const uint8_t *buf,
return AVERROR(ENOMEM);
hdr = *phdr;
- init_get_bits8(&gb, buf, size);
+ err = init_get_bits8(&gb, buf, size);
+ if (err < 0)
+ return AVERROR_INVALIDDATA;
err = ff_ac3_parse_header(&gb, hdr);
if (err < 0)
return AVERROR_INVALIDDATA;
diff --git a/chromium/third_party/ffmpeg/libavcodec/ac3dec.c b/chromium/third_party/ffmpeg/libavcodec/ac3dec.c
index dfa025cbccb..ea7e052f8b5 100644
--- a/chromium/third_party/ffmpeg/libavcodec/ac3dec.c
+++ b/chromium/third_party/ffmpeg/libavcodec/ac3dec.c
@@ -1690,6 +1690,7 @@ dependent_frame:
if (s->frame_type == EAC3_FRAME_TYPE_DEPENDENT) {
uint64_t ich_layout = avpriv_ac3_channel_layout_tab[s->prev_output_mode & ~AC3_OUTPUT_LFEON];
+ int channel_map_size = ff_ac3_channels_tab[s->output_mode & ~AC3_OUTPUT_LFEON] + s->lfe_on;
uint64_t channel_layout;
int extend = 0;
@@ -1718,6 +1719,9 @@ dependent_frame:
custom_channel_map_locations[ch][1]);
if (index < 0)
return AVERROR_INVALIDDATA;
+ if (extend >= channel_map_size)
+ return AVERROR_INVALIDDATA;
+
extended_channel_map[index] = offset + channel_map[extend++];
} else {
int i;
@@ -1728,6 +1732,9 @@ dependent_frame:
1LL << i);
if (index < 0)
return AVERROR_INVALIDDATA;
+ if (extend >= channel_map_size)
+ return AVERROR_INVALIDDATA;
+
extended_channel_map[index] = offset + channel_map[extend++];
}
}
diff --git a/chromium/third_party/ffmpeg/libavcodec/allcodecs.c b/chromium/third_party/ffmpeg/libavcodec/allcodecs.c
index 90d170b06bc..505a361fb96 100644
--- a/chromium/third_party/ffmpeg/libavcodec/allcodecs.c
+++ b/chromium/third_party/ffmpeg/libavcodec/allcodecs.c
@@ -392,6 +392,7 @@ extern AVCodec ff_atrac3_decoder;
extern AVCodec ff_atrac3al_decoder;
extern AVCodec ff_atrac3p_decoder;
extern AVCodec ff_atrac3pal_decoder;
+extern AVCodec ff_atrac9_decoder;
extern AVCodec ff_binkaudio_dct_decoder;
extern AVCodec ff_binkaudio_rdft_decoder;
extern AVCodec ff_bmv_audio_decoder;
diff --git a/chromium/third_party/ffmpeg/libavcodec/atrac9dec.c b/chromium/third_party/ffmpeg/libavcodec/atrac9dec.c
new file mode 100644
index 00000000000..629757f63d7
--- /dev/null
+++ b/chromium/third_party/ffmpeg/libavcodec/atrac9dec.c
@@ -0,0 +1,929 @@
+/*
+ * ATRAC9 decoder
+ * Copyright (c) 2018 Rostislav Pehlivanov <atomnuker@gmail.com>
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include "internal.h"
+#include "get_bits.h"
+#include "fft.h"
+#include "atrac9tab.h"
+#include "libavutil/lfg.h"
+#include "libavutil/float_dsp.h"
+
+typedef struct ATRAC9ChannelData {
+ int band_ext;
+ int q_unit_cnt;
+ int band_ext_data[4];
+ int32_t scalefactors[31];
+ int32_t scalefactors_prev[31];
+
+ int precision_coarse[30];
+ int precision_fine[30];
+ int precision_mask[30];
+
+ int codebookset[30];
+
+ int32_t q_coeffs_coarse[256];
+ int32_t q_coeffs_fine[256];
+
+ DECLARE_ALIGNED(32, float, coeffs )[256];
+ DECLARE_ALIGNED(32, float, prev_win)[128];
+} ATRAC9ChannelData;
+
+typedef struct ATRAC9BlockData {
+ ATRAC9ChannelData channel[2];
+
+ /* Base */
+ int band_count;
+ int q_unit_cnt;
+ int q_unit_cnt_prev;
+
+ /* Stereo block only */
+ int stereo_q_unit;
+
+ /* Band extension only */
+ int has_band_ext;
+ int has_band_ext_data;
+ int band_ext_q_unit;
+ int band_ext_mode;
+
+ /* Gradient */
+ int grad_mode;
+ int grad_boundary;
+ int gradient[31];
+
+ /* Stereo */
+ int cpe_base_channel;
+ int is_signs[30];
+
+} ATRAC9BlockData;
+
+typedef struct ATRAC9Context {
+ AVCodecContext *avctx;
+ AVFloatDSPContext *fdsp;
+ FFTContext imdct;
+ ATRAC9BlockData block[5];
+ AVLFG lfg;
+
+ /* Set on init */
+ int frame_log2;
+ int avg_frame_size;
+ int frame_count;
+ int samplerate_idx;
+ const ATRAC9BlockConfig *block_config;
+
+ /* Generated on init */
+ VLC sf_vlc[2][8]; /* Signed/unsigned, length */
+ VLC coeff_vlc[2][8][4]; /* Cookbook, precision, cookbook index */
+ uint8_t alloc_curve[48][48];
+ DECLARE_ALIGNED(32, float, imdct_win)[256];
+
+ DECLARE_ALIGNED(32, float, temp)[256];
+} ATRAC9Context;
+
+static inline int parse_gradient(ATRAC9Context *s, ATRAC9BlockData *b,
+ GetBitContext *gb)
+{
+ int grad_range[2];
+ int grad_value[2];
+ int values, sign, base;
+ uint8_t *curve;
+ float scale;
+
+ b->grad_mode = get_bits(gb, 2);
+ if (b->grad_mode) {
+ grad_range[0] = get_bits(gb, 5);
+ grad_range[1] = 31;
+ grad_value[0] = get_bits(gb, 5);
+ grad_value[1] = 31;
+ } else {
+ grad_range[0] = get_bits(gb, 6);
+ grad_range[1] = get_bits(gb, 6) + 1;
+ grad_value[0] = get_bits(gb, 5);
+ grad_value[1] = get_bits(gb, 5);
+ }
+ b->grad_boundary = get_bits(gb, 4);
+
+ if (grad_range[0] >= grad_range[1] || grad_range[1] > 47)
+ return AVERROR_INVALIDDATA;
+
+ if (grad_value[0] >= grad_value[1] || grad_value[1] >= 32)
+ return AVERROR_INVALIDDATA;
+
+ if (b->grad_boundary > b->q_unit_cnt)
+ return AVERROR_INVALIDDATA;
+
+ values = grad_value[1] - grad_value[0];
+ sign = 1 - 2*(values < 0);
+ base = grad_value[0] + sign;
+ scale = (FFABS(values) - 1) / 31.0f;
+ curve = s->alloc_curve[grad_range[1] - grad_range[0] - 1];
+
+ for (int i = 0; i <= b->q_unit_cnt; i++)
+ b->gradient[i] = grad_value[i >= grad_range[0]];
+
+ for (int i = grad_range[0]; i < grad_range[1]; i++)
+ b->gradient[i] = base + sign*((int)(scale*curve[i - grad_range[0]]));
+
+ return 0;
+}
+
+static inline void calc_precision(ATRAC9Context *s, ATRAC9BlockData *b,
+ ATRAC9ChannelData *c)
+{
+ memset(c->precision_mask, 0, sizeof(c->precision_mask));
+ for (int i = 1; i < b->q_unit_cnt; i++) {
+ const int delta = FFABS(c->scalefactors[i] - c->scalefactors[i - 1]) - 1;
+ if (delta > 0) {
+ const int neg = c->scalefactors[i - 1] > c->scalefactors[i];
+ c->precision_mask[i - neg] += FFMIN(delta, 5);
+ }
+ }
+
+ if (b->grad_mode) {
+ for (int i = 0; i < b->q_unit_cnt; i++) {
+ c->precision_coarse[i] = c->scalefactors[i];
+ c->precision_coarse[i] += c->precision_mask[i] - b->gradient[i];
+ if (c->precision_coarse[i] < 0)
+ continue;
+ switch (b->grad_mode) {
+ case 1:
+ c->precision_coarse[i] >>= 1;
+ break;
+ case 2:
+ c->precision_coarse[i] = (3 * c->precision_coarse[i]) >> 3;
+ break;
+ case 3:
+ c->precision_coarse[i] >>= 2;
+ break;
+ }
+ }
+ } else {
+ for (int i = 0; i < b->q_unit_cnt; i++)
+ c->precision_coarse[i] = c->scalefactors[i] - b->gradient[i];
+ }
+
+
+ for (int i = 0; i < b->q_unit_cnt; i++)
+ c->precision_coarse[i] = FFMAX(c->precision_coarse[i], 1);
+
+ for (int i = 0; i < b->grad_boundary; i++)
+ c->precision_coarse[i]++;
+
+ for (int i = 0; i < b->q_unit_cnt; i++) {
+ c->precision_fine[i] = 0;
+ if (c->precision_coarse[i] > 15) {
+ c->precision_fine[i] = c->precision_coarse[i] - 15;
+ c->precision_coarse[i] = 15;
+ }
+ }
+}
+
+static inline int parse_band_ext(ATRAC9Context *s, ATRAC9BlockData *b,
+ GetBitContext *gb, int stereo)
+{
+ int ext_band = 0;
+
+ if (b->has_band_ext) {
+ ext_band = at9_tab_band_ext_group[b->q_unit_cnt - 13][2];
+ if (stereo) {
+ b->channel[1].band_ext = get_bits(gb, 2);
+ b->channel[1].band_ext = ext_band > 2 ? b->channel[1].band_ext : 4;
+ } else {
+ skip_bits1(gb);
+ }
+ }
+
+ b->has_band_ext_data = get_bits1(gb);
+ if (!b->has_band_ext_data)
+ return 0;
+
+ if (!b->has_band_ext) {
+ b->band_ext_mode = get_bits(gb, 2);
+ skip_bits_long(gb, get_bits(gb, 5));
+ return 0;
+ }
+
+ b->channel[0].band_ext = get_bits(gb, 2);
+ b->channel[0].band_ext = ext_band > 2 ? b->channel[0].band_ext : 4;
+
+ if (!get_bits(gb, 5))
+ return 0;
+
+ for (int i = 0; i <= stereo; i++) {
+ ATRAC9ChannelData *c = &b->channel[i];
+ const int count = at9_tab_band_ext_cnt[c->band_ext][ext_band];
+ for (int j = 0; j < count; j++) {
+ int len = at9_tab_band_ext_lengths[c->band_ext][ext_band][j];
+ c->band_ext_data[j] = get_bits(gb, len);
+ }
+ }
+
+ return 0;
+}
+
+static inline int read_scalefactors(ATRAC9Context *s, ATRAC9BlockData *b,
+ ATRAC9ChannelData *c, GetBitContext *gb,
+ int channel_idx, int first_in_pkt)
+{
+ static const int mode_map[2][4] = { { 0, 1, 2, 3 }, { 0, 2, 3, 4 } };
+ const int mode = mode_map[channel_idx][get_bits(gb, 2)];
+
+ memset(c->scalefactors, 0, sizeof(c->scalefactors));
+
+ if (first_in_pkt && (mode == 4 || ((mode == 3) && !channel_idx))) {
+ av_log(s->avctx, AV_LOG_ERROR, "Invalid scalefactor coding mode!\n");
+ return AVERROR_INVALIDDATA;
+ }
+
+ switch (mode) {
+ case 0: { /* VLC delta offset */
+ const uint8_t *sf_weights = at9_tab_sf_weights[get_bits(gb, 3)];
+ const int base = get_bits(gb, 5);
+ const int len = get_bits(gb, 2) + 3;
+ const VLC *tab = &s->sf_vlc[0][len];
+
+ c->scalefactors[0] = get_bits(gb, len);
+
+ for (int i = 1; i < b->band_ext_q_unit; i++) {
+ int val = c->scalefactors[i - 1] + get_vlc2(gb, tab->table, 9, 2);
+ c->scalefactors[i] = val & ((1 << len) - 1);
+ }
+
+ for (int i = 0; i < b->band_ext_q_unit; i++)
+ c->scalefactors[i] += base - sf_weights[i];
+
+ break;
+ }
+ case 1: { /* CLC offset */
+ const int len = get_bits(gb, 2) + 2;
+ const int base = len < 5 ? get_bits(gb, 5) : 0;
+ for (int i = 0; i < b->band_ext_q_unit; i++)
+ c->scalefactors[i] = base + get_bits(gb, len);
+ break;
+ }
+ case 2:
+ case 4: { /* VLC dist to baseline */
+ const int *baseline = mode == 4 ? c->scalefactors_prev :
+ channel_idx ? b->channel[0].scalefactors :
+ c->scalefactors_prev;
+ const int baseline_len = mode == 4 ? b->q_unit_cnt_prev :
+ channel_idx ? b->band_ext_q_unit :
+ b->q_unit_cnt_prev;
+
+ const int len = get_bits(gb, 2) + 2;
+ const int unit_cnt = FFMIN(b->band_ext_q_unit, baseline_len);
+ const VLC *tab = &s->sf_vlc[1][len];
+
+ for (int i = 0; i < unit_cnt; i++) {
+ int dist = get_vlc2(gb, tab->table, 9, 2);
+ c->scalefactors[i] = baseline[i] + dist;
+ }
+
+ for (int i = unit_cnt; i < b->band_ext_q_unit; i++)
+ c->scalefactors[i] = get_bits(gb, 5);
+
+ break;
+ }
+ case 3: { /* VLC offset with baseline */
+ const int *baseline = channel_idx ? b->channel[0].scalefactors :
+ c->scalefactors_prev;
+ const int baseline_len = channel_idx ? b->band_ext_q_unit :
+ b->q_unit_cnt_prev;
+
+ const int base = get_bits(gb, 5) - (1 << (5 - 1));
+ const int len = get_bits(gb, 2) + 1;
+ const int unit_cnt = FFMIN(b->band_ext_q_unit, baseline_len);
+ const VLC *tab = &s->sf_vlc[0][len];
+
+ c->scalefactors[0] = get_bits(gb, len);
+
+ for (int i = 1; i < unit_cnt; i++) {
+ int val = c->scalefactors[i - 1] + get_vlc2(gb, tab->table, 9, 2);
+ c->scalefactors[i] = val & ((1 << len) - 1);
+ }
+
+ for (int i = 0; i < unit_cnt; i++)
+ c->scalefactors[i] += base + baseline[i];
+
+ for (int i = unit_cnt; i < b->band_ext_q_unit; i++)
+ c->scalefactors[i] = get_bits(gb, 5);
+ break;
+ }
+ }
+
+ for (int i = 0; i < b->band_ext_q_unit; i++)
+ if (c->scalefactors[i] < 0 || c->scalefactors[i] > 31)
+ return AVERROR_INVALIDDATA;
+
+ memcpy(c->scalefactors_prev, c->scalefactors, sizeof(c->scalefactors));
+
+ return 0;
+}
+
+static inline void calc_codebook_idx(ATRAC9Context *s, ATRAC9BlockData *b,
+ ATRAC9ChannelData *c)
+{
+ int avg = 0;
+ const int last_sf = c->scalefactors[c->q_unit_cnt];
+
+ memset(c->codebookset, 0, sizeof(c->codebookset));
+
+ if (c->q_unit_cnt <= 1)
+ return;
+ if (s->samplerate_idx > 7)
+ return;
+
+ c->scalefactors[c->q_unit_cnt] = c->scalefactors[c->q_unit_cnt - 1];
+
+ if (c->q_unit_cnt > 12) {
+ for (int i = 0; i < 12; i++)
+ avg += c->scalefactors[i];
+ avg = (avg + 6) / 12;
+ }
+
+ for (int i = 8; i < c->q_unit_cnt; i++) {
+ const int prev = c->scalefactors[i - 1];
+ const int cur = c->scalefactors[i ];
+ const int next = c->scalefactors[i + 1];
+ const int min = FFMIN(prev, next);
+ if ((cur - min >= 3 || 2*cur - prev - next >= 3))
+ c->codebookset[i] = 1;
+ }
+
+
+ for (int i = 12; i < c->q_unit_cnt; i++) {
+ const int cur = c->scalefactors[i];
+ const int cnd = at9_q_unit_to_coeff_cnt[i] == 16;
+ const int min = FFMIN(c->scalefactors[i + 1], c->scalefactors[i - 1]);
+ if (c->codebookset[i])
+ continue;
+
+ c->codebookset[i] = (((cur - min) >= 2) && (cur >= (avg - cnd)));
+ }
+
+ c->scalefactors[c->q_unit_cnt] = last_sf;
+}
+
+static inline void read_coeffs_coarse(ATRAC9Context *s, ATRAC9BlockData *b,
+ ATRAC9ChannelData *c, GetBitContext *gb)
+{
+ const int max_prec = s->samplerate_idx > 7 ? 1 : 7;
+
+ memset(c->q_coeffs_coarse, 0, sizeof(c->q_coeffs_coarse));
+
+ for (int i = 0; i < c->q_unit_cnt; i++) {
+ int *coeffs = &c->q_coeffs_coarse[at9_q_unit_to_coeff_idx[i]];
+ const int bands = at9_q_unit_to_coeff_cnt[i];
+ const int prec = c->precision_coarse[i] + 1;
+
+ if (prec <= max_prec) {
+ const int cb = c->codebookset[i];
+ const int cbi = at9_q_unit_to_codebookidx[i];
+ const VLC *tab = &s->coeff_vlc[cb][prec][cbi];
+ const HuffmanCodebook *huff = &at9_huffman_coeffs[cb][prec][cbi];
+ const int groups = bands >> huff->value_cnt_pow;
+
+ for (int j = 0; j < groups; j++) {
+ uint16_t val = get_vlc2(gb, tab->table, 9, huff->max_bit_size);
+
+ for (int k = 0; k < huff->value_cnt; k++) {
+ coeffs[k] = sign_extend(val, huff->value_bits);
+ val >>= huff->value_bits;
+ }
+
+ coeffs += huff->value_cnt;
+ }
+ } else {
+ for (int j = 0; j < bands; j++)
+ coeffs[j] = sign_extend(get_bits(gb, prec), prec);
+ }
+ }
+}
+
+static inline void read_coeffs_fine(ATRAC9Context *s, ATRAC9BlockData *b,
+ ATRAC9ChannelData *c, GetBitContext *gb)
+{
+ memset(c->q_coeffs_fine, 0, sizeof(c->q_coeffs_fine));
+
+ for (int i = 0; i < c->q_unit_cnt; i++) {
+ const int start = at9_q_unit_to_coeff_idx[i + 0];
+ const int end = at9_q_unit_to_coeff_idx[i + 1];
+ const int len = c->precision_fine[i] + 1;
+
+ if (c->precision_fine[i] <= 0)
+ continue;
+
+ for (int j = start; j < end; j++)
+ c->q_coeffs_fine[j] = sign_extend(get_bits(gb, len), len);
+ }
+}
+
+static inline void dequantize(ATRAC9Context *s, ATRAC9BlockData *b,
+ ATRAC9ChannelData *c)
+{
+ memset(c->coeffs, 0, sizeof(c->coeffs));
+
+ for (int i = 0; i < c->q_unit_cnt; i++) {
+ const int start = at9_q_unit_to_coeff_idx[i + 0];
+ const int end = at9_q_unit_to_coeff_idx[i + 1];
+
+ const float coarse_c = at9_quant_step_coarse[c->precision_coarse[i]];
+ const float fine_c = at9_quant_step_fine[c->precision_fine[i]];
+
+ for (int j = start; j < end; j++) {
+ const float vc = c->q_coeffs_coarse[j] * coarse_c;
+ const float vf = c->q_coeffs_fine[j] * fine_c;
+ c->coeffs[j] = vc + vf;
+ }
+ }
+}
+
+static inline void apply_intensity_stereo(ATRAC9Context *s, ATRAC9BlockData *b,
+ const int stereo)
+{
+ float *src = b->channel[ b->cpe_base_channel].coeffs;
+ float *dst = b->channel[!b->cpe_base_channel].coeffs;
+
+ if (!stereo)
+ return;
+
+ if (b->q_unit_cnt <= b->stereo_q_unit)
+ return;
+
+ for (int i = b->stereo_q_unit; i < b->q_unit_cnt; i++) {
+ const int sign = b->is_signs[i];
+ const int start = at9_q_unit_to_coeff_idx[i + 0];
+ const int end = at9_q_unit_to_coeff_idx[i + 1];
+ for (int j = start; j < end; j++)
+ dst[j] = sign*src[j];
+ }
+}
+
+static inline void apply_scalefactors(ATRAC9Context *s, ATRAC9BlockData *b,
+ const int stereo)
+{
+ for (int i = 0; i <= stereo; i++) {
+ float *coeffs = b->channel[i].coeffs;
+ for (int j = 0; j < b->q_unit_cnt; j++) {
+ const int start = at9_q_unit_to_coeff_idx[j + 0];
+ const int end = at9_q_unit_to_coeff_idx[j + 1];
+ const int scalefactor = b->channel[i].scalefactors[j];
+ const float scale = at9_scalefactor_c[scalefactor];
+ for (int k = start; k < end; k++)
+ coeffs[k] *= scale;
+ }
+ }
+}
+
+static inline void fill_with_noise(ATRAC9Context *s, ATRAC9ChannelData *c,
+ int start, int count)
+{
+ float maxval = 0.0f;
+ for (int i = 0; i < count; i += 2) {
+ double tmp[2];
+ av_bmg_get(&s->lfg, tmp);
+ c->coeffs[start + i + 0] = tmp[0];
+ c->coeffs[start + i + 1] = tmp[1];
+ maxval = FFMAX(FFABS(tmp[0]), FFMAX(FFABS(tmp[1]), maxval));
+ }
+ /* Normalize */
+ for (int i = 0; i < count; i++)
+ c->coeffs[start + i] /= maxval;
+}
+
+static inline void scale_band_ext_coeffs(ATRAC9ChannelData *c, float sf[6],
+ const int s_unit, const int e_unit)
+{
+ for (int i = s_unit; i < e_unit; i++) {
+ const int start = at9_q_unit_to_coeff_idx[i + 0];
+ const int end = at9_q_unit_to_coeff_idx[i + 1];
+ for (int j = start; j < end; j++)
+ c->coeffs[j] *= sf[i - s_unit];
+ }
+}
+
+static inline void apply_band_extension(ATRAC9Context *s, ATRAC9BlockData *b,
+ const int stereo)
+{
+ const int bc = at9_tab_band_ext_group[b->q_unit_cnt - 13][2];
+ const int g_units[4] = { /* A, B, C, total units */
+ b->q_unit_cnt,
+ at9_tab_band_ext_group[b->q_unit_cnt - 13][0],
+ at9_tab_band_ext_group[b->q_unit_cnt - 13][1],
+ FFMAX(g_units[2], 22),
+ };
+
+ const int g_bins[4] = { /* A, B, C, total bins */
+ at9_q_unit_to_coeff_idx[g_units[0]],
+ at9_q_unit_to_coeff_idx[g_units[1]],
+ at9_q_unit_to_coeff_idx[g_units[2]],
+ at9_q_unit_to_coeff_idx[g_units[3]],
+ };
+
+ if (!b->has_band_ext || !b->has_band_ext_data)
+ return;
+
+ for (int ch = 0; ch <= stereo; ch++) {
+ ATRAC9ChannelData *c = &b->channel[ch];
+
+ /* Mirror the spectrum */
+ for (int i = 0; i < 3; i++)
+ for (int j = 0; j < (g_bins[i + 1] - g_bins[i + 0]); j++)
+ c->coeffs[g_bins[i] + j] = c->coeffs[g_bins[i] - j - 1];
+
+ switch (c->band_ext) {
+ case 0: {
+ int l;
+ float sf[6] = { 0.0f };
+ const int n_start = at9_q_unit_to_coeff_idx[g_units[3] - 1];
+ const int n_cnt = at9_q_unit_to_coeff_cnt[g_units[3] - 1];
+ switch (bc) {
+ case 3:
+ sf[0] = at9_band_ext_scales_m0[0][0][c->band_ext_data[0]];
+ sf[1] = at9_band_ext_scales_m0[0][1][c->band_ext_data[0]];
+ sf[2] = at9_band_ext_scales_m0[0][2][c->band_ext_data[1]];
+ sf[3] = at9_band_ext_scales_m0[0][3][c->band_ext_data[2]];
+ sf[4] = at9_band_ext_scales_m0[0][4][c->band_ext_data[3]];
+ break;
+ case 4:
+ sf[0] = at9_band_ext_scales_m0[1][0][c->band_ext_data[0]];
+ sf[1] = at9_band_ext_scales_m0[1][1][c->band_ext_data[0]];
+ sf[2] = at9_band_ext_scales_m0[1][2][c->band_ext_data[1]];
+ sf[3] = at9_band_ext_scales_m0[1][3][c->band_ext_data[2]];
+ sf[4] = at9_band_ext_scales_m0[1][4][c->band_ext_data[3]];
+ break;
+ case 5:
+ sf[0] = at9_band_ext_scales_m0[2][0][c->band_ext_data[0]];
+ sf[1] = at9_band_ext_scales_m0[2][1][c->band_ext_data[1]];
+ sf[2] = at9_band_ext_scales_m0[2][2][c->band_ext_data[1]];
+ break;
+ }
+
+ l = g_units[3] - g_units[0] - 1;
+ sf[l] = at9_scalefactor_c[c->scalefactors[g_units[0]]];
+
+ fill_with_noise(s, c, n_start, n_cnt);
+ scale_band_ext_coeffs(c, sf, g_units[0], g_units[3]);
+ break;
+ }
+ case 1: {
+ float sf[6];
+ for (int i = g_units[0]; i < g_units[3]; i++)
+ sf[i - g_units[0]] = at9_scalefactor_c[c->scalefactors[i]];
+
+ fill_with_noise(s, c, g_bins[0], g_bins[3] - g_bins[0]);
+ scale_band_ext_coeffs(c, sf, g_units[0], g_units[3]);
+ break;
+ }
+ case 2: {
+ const float g_sf[2] = {
+ at9_band_ext_scales_m2[c->band_ext_data[0]],
+ at9_band_ext_scales_m2[c->band_ext_data[1]],
+ };
+
+ for (int i = 0; i < 2; i++)
+ for (int j = g_bins[i + 0]; j < g_bins[i + 1]; j++)
+ c->coeffs[j] *= g_sf[i];
+ break;
+ }
+ case 3: {
+ float scale = at9_band_ext_scales_m3[c->band_ext_data[0]][0];
+ float rate = at9_band_ext_scales_m3[c->band_ext_data[1]][1];
+ rate = pow(2, rate);
+ for (int i = g_bins[0]; i < g_bins[3]; i++) {
+ scale *= rate;
+ c->coeffs[i] *= scale;
+ }
+ break;
+ }
+ case 4: {
+ const float m = at9_band_ext_scales_m4[c->band_ext_data[0]];
+ const float g_sf[3] = { 0.7079468f*m, 0.5011902f*m, 0.3548279f*m };
+
+ for (int i = 0; i < 3; i++)
+ for (int j = g_bins[i + 0]; j < g_bins[i + 1]; j++)
+ c->coeffs[j] *= g_sf[i];
+ break;
+ }
+ }
+ }
+}
+
+static int atrac9_decode_block(ATRAC9Context *s, GetBitContext *gb,
+ ATRAC9BlockData *b, AVFrame *frame,
+ int frame_idx, int block_idx)
+{
+ const int first_in_pkt = !get_bits1(gb);
+ const int reuse_params = get_bits1(gb);
+ const int stereo = s->block_config->type[block_idx] == ATRAC9_BLOCK_TYPE_CPE;
+
+ if (first_in_pkt && reuse_params) {
+ av_log(s->avctx, AV_LOG_ERROR, "Invalid block flags!\n");
+ return AVERROR_INVALIDDATA;
+ }
+
+ /* Band parameters */
+ if (!reuse_params) {
+ int stereo_band, ext_band;
+ const int min_band_count = s->samplerate_idx > 7 ? 1 : 3;
+ b->band_count = get_bits(gb, 4) + min_band_count;
+ b->q_unit_cnt = at9_tab_band_q_unit_map[b->band_count];
+
+ b->band_ext_q_unit = b->stereo_q_unit = b->q_unit_cnt;
+
+ if (b->band_count > at9_tab_sri_max_bands[s->samplerate_idx]) {
+ av_log(s->avctx, AV_LOG_ERROR, "Invalid band count %i!\n",
+ b->band_count);
+ return AVERROR_INVALIDDATA;
+ }
+
+ if (stereo) {
+ stereo_band = get_bits(gb, 4) + min_band_count;
+ if (stereo_band > b->band_count) {
+ av_log(s->avctx, AV_LOG_ERROR, "Invalid stereo band %i!\n",
+ stereo_band);
+ return AVERROR_INVALIDDATA;
+ }
+ b->stereo_q_unit = at9_tab_band_q_unit_map[stereo_band];
+ }
+
+ b->has_band_ext = get_bits1(gb);
+ if (b->has_band_ext) {
+ ext_band = get_bits(gb, 4) + min_band_count;
+ if (ext_band < b->band_count) {
+ av_log(s->avctx, AV_LOG_ERROR, "Invalid extension band %i!\n",
+ ext_band);
+ return AVERROR_INVALIDDATA;
+ }
+ b->band_ext_q_unit = at9_tab_band_q_unit_map[ext_band];
+ }
+ }
+
+ /* Calculate bit alloc gradient */
+ if (parse_gradient(s, b, gb))
+ return AVERROR_INVALIDDATA;
+
+ /* IS data */
+ b->cpe_base_channel = 0;
+ if (stereo) {
+ b->cpe_base_channel = get_bits1(gb);
+ if (get_bits1(gb)) {
+ for (int i = b->stereo_q_unit; i < b->q_unit_cnt; i++)
+ b->is_signs[i] = 1 - 2*get_bits1(gb);
+ } else {
+ for (int i = 0; i < FF_ARRAY_ELEMS(b->is_signs); i++)
+ b->is_signs[i] = 1;
+ }
+ }
+
+ /* Band extension */
+ if (parse_band_ext(s, b, gb, stereo))
+ return AVERROR_INVALIDDATA;
+
+ /* Scalefactors */
+ for (int i = 0; i <= stereo; i++) {
+ ATRAC9ChannelData *c = &b->channel[i];
+ c->q_unit_cnt = i == b->cpe_base_channel ? b->q_unit_cnt :
+ b->stereo_q_unit;
+ if (read_scalefactors(s, b, c, gb, i, first_in_pkt))
+ return AVERROR_INVALIDDATA;
+
+ calc_precision (s, b, c);
+ calc_codebook_idx (s, b, c);
+ read_coeffs_coarse(s, b, c, gb);
+ read_coeffs_fine (s, b, c, gb);
+ dequantize (s, b, c);
+ }
+
+ b->q_unit_cnt_prev = b->has_band_ext ? b->band_ext_q_unit : b->q_unit_cnt;
+
+ apply_intensity_stereo(s, b, stereo);
+ apply_scalefactors (s, b, stereo);
+ apply_band_extension (s, b, stereo);
+
+ /* iMDCT */
+ for (int i = 0; i <= stereo; i++) {
+ ATRAC9ChannelData *c = &b->channel[i];
+ const int dst_idx = s->block_config->plane_map[block_idx][i];
+ const int wsize = 1 << s->frame_log2;
+ const ptrdiff_t offset = wsize*frame_idx*sizeof(float);
+ float *dst = (float *)(frame->extended_data[dst_idx] + offset);
+
+ s->imdct.imdct_half(&s->imdct, s->temp, c->coeffs);
+ s->fdsp->vector_fmul_window(dst, c->prev_win, s->temp,
+ s->imdct_win, wsize >> 1);
+ memcpy(c->prev_win, s->temp + (wsize >> 1), sizeof(float)*wsize >> 1);
+ }
+
+ return 0;
+}
+
+static int atrac9_decode_frame(AVCodecContext *avctx, void *data,
+ int *got_frame_ptr, AVPacket *avpkt)
+{
+ int ret;
+ GetBitContext gb;
+ AVFrame *frame = data;
+ ATRAC9Context *s = avctx->priv_data;
+ const int frames = FFMIN(avpkt->size / s->avg_frame_size, s->frame_count);
+
+ frame->nb_samples = (1 << s->frame_log2) * frames;
+ ret = ff_get_buffer(avctx, frame, 0);
+ if (ret < 0)
+ return ret;
+
+ init_get_bits8(&gb, avpkt->data, avpkt->size);
+
+ for (int i = 0; i < frames; i++) {
+ for (int j = 0; j < s->block_config->count; j++) {
+ ret = atrac9_decode_block(s, &gb, &s->block[j], frame, i, j);
+ if (ret)
+ return ret;
+ align_get_bits(&gb);
+ }
+ }
+
+ *got_frame_ptr = 1;
+
+ return avctx->block_align;
+}
+
+static void atrac9_decode_flush(AVCodecContext *avctx)
+{
+ ATRAC9Context *s = avctx->priv_data;
+
+ for (int j = 0; j < s->block_config->count; j++) {
+ ATRAC9BlockData *b = &s->block[j];
+ const int stereo = s->block_config->type[j] == ATRAC9_BLOCK_TYPE_CPE;
+ for (int i = 0; i <= stereo; i++) {
+ ATRAC9ChannelData *c = &b->channel[i];
+ memset(c->prev_win, 0, sizeof(c->prev_win));
+ }
+ }
+}
+
+static av_cold int atrac9_decode_close(AVCodecContext *avctx)
+{
+ ATRAC9Context *s = avctx->priv_data;
+
+ for (int i = 1; i < 7; i++)
+ ff_free_vlc(&s->sf_vlc[0][i]);
+ for (int i = 2; i < 6; i++)
+ ff_free_vlc(&s->sf_vlc[1][i]);
+ for (int i = 0; i < 2; i++)
+ for (int j = 0; j < 8; j++)
+ for (int k = 0; k < 4; k++)
+ ff_free_vlc(&s->coeff_vlc[i][j][k]);
+
+ ff_mdct_end(&s->imdct);
+ av_free(s->fdsp);
+
+ return 0;
+}
+
+static av_cold int atrac9_decode_init(AVCodecContext *avctx)
+{
+ GetBitContext gb;
+ ATRAC9Context *s = avctx->priv_data;
+ int version, block_config_idx, superframe_idx, alloc_c_len;
+
+ s->avctx = avctx;
+
+ av_lfg_init(&s->lfg, 0xFBADF00D);
+
+ if (avctx->extradata_size != 12) {
+ av_log(avctx, AV_LOG_ERROR, "Invalid extradata length!\n");
+ return AVERROR_INVALIDDATA;
+ }
+
+ version = AV_RL32(avctx->extradata);
+ if (version > 2) {
+ av_log(avctx, AV_LOG_ERROR, "Unsupported version (%i)!\n", version);
+ return AVERROR_INVALIDDATA;
+ }
+
+ init_get_bits8(&gb, avctx->extradata + 4, avctx->extradata_size);
+
+ if (get_bits(&gb, 8) != 0xFE) {
+ av_log(avctx, AV_LOG_ERROR, "Incorrect magic byte!\n");
+ return AVERROR_INVALIDDATA;
+ }
+
+ s->samplerate_idx = get_bits(&gb, 4);
+ avctx->sample_rate = at9_tab_samplerates[s->samplerate_idx];
+
+ block_config_idx = get_bits(&gb, 3);
+ if (block_config_idx > 5) {
+ av_log(avctx, AV_LOG_ERROR, "Incorrect block config!\n");
+ return AVERROR_INVALIDDATA;
+ }
+ s->block_config = &at9_block_layout[block_config_idx];
+
+ avctx->channel_layout = s->block_config->channel_layout;
+ avctx->sample_fmt = AV_SAMPLE_FMT_FLTP;
+
+ if (get_bits1(&gb)) {
+ av_log(avctx, AV_LOG_ERROR, "Incorrect verification bit!\n");
+ return AVERROR_INVALIDDATA;
+ }
+
+ /* Average frame size in bytes */
+ s->avg_frame_size = get_bits(&gb, 11) + 1;
+
+ superframe_idx = get_bits(&gb, 2);
+ if (superframe_idx & 1) {
+ av_log(avctx, AV_LOG_ERROR, "Invalid superframe index!\n");
+ return AVERROR_INVALIDDATA;
+ }
+
+ s->frame_count = 1 << superframe_idx;
+ s->frame_log2 = at9_tab_sri_frame_log2[s->samplerate_idx];
+
+ if (ff_mdct_init(&s->imdct, s->frame_log2 + 1, 1, 1.0f / 32768.0f))
+ return AVERROR(ENOMEM);
+
+ s->fdsp = avpriv_float_dsp_alloc(avctx->flags & AV_CODEC_FLAG_BITEXACT);
+ if (!s->fdsp)
+ return AVERROR(ENOMEM);
+
+ /* iMDCT window */
+ for (int i = 0; i < (1 << s->frame_log2); i++) {
+ const int len = 1 << s->frame_log2;
+ const float sidx = ( i + 0.5f) / len;
+ const float eidx = (len - i - 0.5f) / len;
+ const float s_c = sinf(sidx*M_PI - M_PI_2)*0.5f + 0.5f;
+ const float e_c = sinf(eidx*M_PI - M_PI_2)*0.5f + 0.5f;
+ s->imdct_win[i] = s_c / ((s_c * s_c) + (e_c * e_c));
+ }
+
+ /* Allocation curve */
+ alloc_c_len = FF_ARRAY_ELEMS(at9_tab_b_dist);
+ for (int i = 1; i <= alloc_c_len; i++)
+ for (int j = 0; j < i; j++)
+ s->alloc_curve[i - 1][j] = at9_tab_b_dist[(j * alloc_c_len) / i];
+
+ /* Unsigned scalefactor VLCs */
+ for (int i = 1; i < 7; i++) {
+ const HuffmanCodebook *hf = &at9_huffman_sf_unsigned[i];
+
+ init_vlc(&s->sf_vlc[0][i], 9, hf->size, hf->bits, 1, 1, hf->codes,
+ 2, 2, 0);
+ }
+
+ /* Signed scalefactor VLCs */
+ for (int i = 2; i < 6; i++) {
+ const HuffmanCodebook *hf = &at9_huffman_sf_signed[i];
+
+ int nums = hf->size;
+ int16_t sym[32];
+ for (int j = 0; j < nums; j++)
+ sym[j] = sign_extend(j, hf->value_bits);
+
+ ff_init_vlc_sparse(&s->sf_vlc[1][i], 9, hf->size, hf->bits, 1, 1,
+ hf->codes, 2, 2, sym, sizeof(*sym), sizeof(*sym), 0);
+ }
+
+ /* Coefficient VLCs */
+ for (int i = 0; i < 2; i++) {
+ for (int j = 0; j < 8; j++) {
+ for (int k = 0; k < 4; k++) {
+ const HuffmanCodebook *hf = &at9_huffman_coeffs[i][j][k];
+ init_vlc(&s->coeff_vlc[i][j][k], 9, hf->size, hf->bits, 1, 1,
+ hf->codes, 2, 2, 0);
+ }
+ }
+ }
+
+ return 0;
+}
+
+AVCodec ff_atrac9_decoder = {
+ .name = "atrac9",
+ .long_name = NULL_IF_CONFIG_SMALL("ATRAC9 (Adaptive TRansform Acoustic Coding 9)"),
+ .type = AVMEDIA_TYPE_AUDIO,
+ .id = AV_CODEC_ID_ATRAC9,
+ .priv_data_size = sizeof(ATRAC9Context),
+ .init = atrac9_decode_init,
+ .close = atrac9_decode_close,
+ .decode = atrac9_decode_frame,
+ .flush = atrac9_decode_flush,
+ .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP,
+ .capabilities = AV_CODEC_CAP_SUBFRAMES | AV_CODEC_CAP_DR1,
+};
diff --git a/chromium/third_party/ffmpeg/libavcodec/atrac9tab.h b/chromium/third_party/ffmpeg/libavcodec/atrac9tab.h
new file mode 100644
index 00000000000..d25c6f1b7fa
--- /dev/null
+++ b/chromium/third_party/ffmpeg/libavcodec/atrac9tab.h
@@ -0,0 +1,1633 @@
+/*
+ * ATRAC9 decoder
+ * Copyright (c) 2018 Rostislav Pehlivanov <atomnuker@gmail.com>
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef AVCODEC_ATRAC9TAB_H
+#define AVCODEC_ATRAC9TAB_H
+
+#include <stdint.h>
+
+#include "libavutil/channel_layout.h"
+
+enum ATRAC9BlockType {
+ ATRAC9_BLOCK_TYPE_SCE, /* Single channel */
+ ATRAC9_BLOCK_TYPE_CPE, /* 2 coupled channels */
+ ATRAC9_BLOCK_TYPE_LFE, /* Single LFE channel */
+};
+
+typedef struct ATRAC9BlockConfig {
+ uint64_t channel_layout;
+ enum ATRAC9BlockType type[5];
+ int plane_map[5][2];
+ int count;
+} ATRAC9BlockConfig;
+
+static const ATRAC9BlockConfig at9_block_layout[] = {
+ { /* Mono */
+ AV_CH_LAYOUT_MONO,
+ {
+ ATRAC9_BLOCK_TYPE_SCE,
+ },
+ { { 0 }, },
+ 1,
+ },
+ { /* Dual Mono */
+ AV_CH_LAYOUT_STEREO,
+ {
+ ATRAC9_BLOCK_TYPE_SCE,
+ ATRAC9_BLOCK_TYPE_SCE,
+ },
+ { { 0 }, { 1 }, },
+ 2,
+ },
+ { /* Stereo */
+ AV_CH_LAYOUT_STEREO,
+ {
+ ATRAC9_BLOCK_TYPE_CPE,
+ },
+ { { 0, 1 }, },
+ 1,
+ },
+ { /* 5.1 */
+ AV_CH_LAYOUT_5POINT1,
+ {
+ ATRAC9_BLOCK_TYPE_CPE,
+ ATRAC9_BLOCK_TYPE_SCE,
+ ATRAC9_BLOCK_TYPE_LFE,
+ ATRAC9_BLOCK_TYPE_CPE,
+ },
+ { { 0, 1 }, { 2 }, { 3 }, { 4, 5 }, },
+ 4,
+ },
+ { /* 5.1 */
+ AV_CH_LAYOUT_7POINT1,
+ {
+ ATRAC9_BLOCK_TYPE_CPE,
+ ATRAC9_BLOCK_TYPE_SCE,
+ ATRAC9_BLOCK_TYPE_LFE,
+ ATRAC9_BLOCK_TYPE_CPE,
+ ATRAC9_BLOCK_TYPE_CPE,
+ },
+ { { 0, 1 }, { 2 }, { 3 }, { 4, 5 }, { 6, 7 }, },
+ 5,
+ },
+ { /* Quad */
+ AV_CH_LAYOUT_QUAD,
+ {
+ ATRAC9_BLOCK_TYPE_CPE,
+ ATRAC9_BLOCK_TYPE_CPE,
+ },
+ { { 0, 1 }, { 2, 3 }, },
+ 2,
+ },
+};
+
+static const uint8_t at9_tab_sri_frame_log2[] = {
+ 6, 6, 7, 7, 7, 8, 8, 8, 6, 6, 7, 7, 7, 8, 8, 8,
+};
+
+static const uint8_t at9_tab_band_q_unit_map[] = {
+ 0, 4, 8, 10, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26, 28, 30,
+};
+
+static const uint8_t at9_q_unit_to_coeff_cnt[] = {
+ 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 8, 8, 8,
+ 8, 8, 8, 8, 8, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
+};
+
+static const int at9_q_unit_to_coeff_idx[] = {
+ 0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56, 64,
+ 72, 80, 88, 96, 112, 128, 144, 160, 176, 192, 208, 224, 240, 256
+};
+
+const uint8_t at9_q_unit_to_codebookidx[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2,
+ 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+};
+
+static const uint8_t at9_tab_sri_max_bands[] = {
+ 8, 8, 12, 12, 12, 18, 18, 18, 8, 8, 12, 12, 12, 16, 16, 16,
+};
+
+static const int at9_tab_samplerates[] = {
+ 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 44100, 48000,
+ 64000, 88200, 96000, 128000, 176400, 192000,
+};
+
+static const uint8_t at9_tab_band_ext_cnt[][6] = {
+ { 0, 0, 0, 4, 4, 2 },
+ { 0, 0, 0, 0, 0, 0 },
+ { 0, 0, 0, 2, 2, 1 },
+ { 0, 0, 0, 2, 2, 2 },
+ { 1, 1, 1, 0, 0, 0 },
+};
+
+/* B unit, C unit, Band count */
+static const uint8_t at9_tab_band_ext_group[][3] = {
+ { 16, 21, 0 },
+ { 18, 22, 1 },
+ { 20, 22, 2 },
+ { 21, 22, 3 },
+ { 21, 22, 3 },
+ { 23, 24, 4 },
+ { 23, 24, 4 },
+ { 24, 24, 5 },
+};
+
+static const uint8_t at9_tab_band_ext_lengths[][6][4] = {
+ {
+ { 0, 0, 0, 0 },
+ { 0, 0, 0, 0 },
+ { 0, 0, 0, 0 },
+ { 5, 4, 3, 3 },
+ { 4, 4, 3, 4 },
+ { 4, 5, 0, 0 },
+ },
+ {
+ { 0, 0, 0, 0 },
+ { 0, 0, 0, 0 },
+ { 0, 0, 0, 0 },
+ { 0, 0, 0, 0 },
+ { 0, 0, 0, 0 },
+ { 0, 0, 0, 0 },
+ },
+ {
+ { 0, 0, 0, 0 },
+ { 0, 0, 0, 0 },
+ { 0, 0, 0, 0 },
+ { 6, 6, 0, 0 },
+ { 6, 6, 0, 0 },
+ { 6, 0, 0, 0 },
+ },
+ {
+ { 0, 0, 0, 0 },
+ { 0, 0, 0, 0 },
+ { 0, 0, 0, 0 },
+ { 4, 4, 0, 0 },
+ { 4, 4, 0, 0 },
+ { 4, 4, 0, 0 },
+ },
+ {
+ { 3, 0, 0, 0 },
+ { 3, 0, 0, 0 },
+ { 3, 0, 0, 0 },
+ { 0, 0, 0, 0 },
+ { 0, 0, 0, 0 },
+ { 0, 0, 0, 0 },
+ },
+};
+
+static const float at9_band_ext_scales_m0[][5][32] = {
+ {
+ {
+ 0.000000e+0f, 1.988220e-1f, 2.514343e-1f, 2.960510e-1f,
+ 3.263550e-1f, 3.771362e-1f, 3.786926e-1f, 4.540405e-1f,
+ 4.877625e-1f, 5.262451e-1f, 5.447083e-1f, 5.737000e-1f,
+ 6.212158e-1f, 6.222839e-1f, 6.560974e-1f, 6.896667e-1f,
+ 7.555542e-1f, 7.677917e-1f, 7.918091e-1f, 7.971497e-1f,
+ 8.188171e-1f, 8.446045e-1f, 9.790649e-1f, 9.822083e-1f,
+ 9.846191e-1f, 9.859314e-1f, 9.863586e-1f, 9.863892e-1f,
+ 9.873352e-1f, 9.881287e-1f, 9.898682e-1f, 9.913330e-1f,
+ }, {
+ 0.000000e+0f, 9.982910e-1f, 7.592773e-2f, 7.179565e-1f,
+ 9.851379e-1f, 5.340271e-1f, 9.013672e-1f, 6.349182e-1f,
+ 7.226257e-1f, 1.948547e-1f, 7.628174e-1f, 9.873657e-1f,
+ 8.112183e-1f, 2.715454e-1f, 9.734192e-1f, 1.443787e-1f,
+ 4.640198e-1f, 3.249207e-1f, 3.790894e-1f, 8.276367e-2f,
+ 5.954590e-1f, 2.864380e-1f, 9.806824e-1f, 7.929077e-1f,
+ 6.292114e-1f, 4.887085e-1f, 2.905273e-1f, 1.301880e-1f,
+ 3.140869e-1f, 5.482483e-1f, 4.210815e-1f, 1.182861e-1f,
+ }, {
+ 0.000000e+0f, 3.155518e-2f, 8.581543e-2f, 1.364746e-1f,
+ 1.858826e-1f, 2.368469e-1f, 2.888184e-1f, 3.432617e-1f,
+ 4.012451e-1f, 4.623108e-1f, 5.271301e-1f, 5.954895e-1f,
+ 6.681213e-1f, 7.448425e-1f, 8.245239e-1f, 9.097290e-1f,
+ }, {
+ 0.000000e+0f, 4.418945e-2f, 1.303711e-1f, 2.273560e-1f,
+ 3.395996e-1f, 4.735718e-1f, 6.267090e-1f, 8.003845e-1f,
+ }, {
+ 0.000000e+0f, 2.804565e-2f, 9.683228e-2f, 1.849976e-1f,
+ 3.005981e-1f, 4.470520e-1f, 6.168518e-1f, 8.007813e-1f,
+ },
+ },
+ {
+ {
+ 0.000000e+0f, 2.708740e-1f, 3.479614e-1f, 3.578186e-1f,
+ 5.083618e-1f, 5.299072e-1f, 5.819092e-1f, 6.381836e-1f,
+ 7.276917e-1f, 7.595520e-1f, 7.878723e-1f, 9.707336e-1f,
+ 9.713135e-1f, 9.736023e-1f, 9.759827e-1f, 9.832458e-1f,
+ }, {
+ 0.000000e+0f, 2.330627e-1f, 5.891418e-1f, 7.170410e-1f,
+ 2.036438e-1f, 1.613464e-1f, 6.668701e-1f, 9.481201e-1f,
+ 9.769897e-1f, 5.111694e-1f, 3.522644e-1f, 8.209534e-1f,
+ 2.933960e-1f, 9.757690e-1f, 5.289917e-1f, 4.372253e-1f,
+ }, {
+ 0.000000e+0f, 4.360962e-2f, 1.056519e-1f, 1.590576e-1f,
+ 2.078857e-1f, 2.572937e-1f, 3.082581e-1f, 3.616028e-1f,
+ 4.191589e-1f, 4.792175e-1f, 5.438538e-1f, 6.125183e-1f,
+ 6.841125e-1f, 7.589417e-1f, 8.365173e-1f, 9.148254e-1f,
+ }, {
+ 0.000000e+0f, 4.074097e-2f, 1.164551e-1f, 2.077026e-1f,
+ 3.184509e-1f, 4.532166e-1f, 6.124268e-1f, 7.932129e-1f,
+ }, {
+ 0.000000e+0f, 8.880615e-3f, 2.932739e-2f, 5.593872e-2f,
+ 8.825684e-2f, 1.259155e-1f, 1.721497e-1f, 2.270813e-1f,
+ 2.901611e-1f, 3.579712e-1f, 4.334106e-1f, 5.147095e-1f,
+ 6.023254e-1f, 6.956177e-1f, 7.952881e-1f, 8.977356e-1f,
+ },
+ },
+ {
+ {
+ 0.000000e+0f, 7.379150e-2f, 1.806335e-1f, 2.687073e-1f,
+ 3.407898e-1f, 4.047546e-1f, 4.621887e-1f, 5.168762e-1f,
+ 5.703125e-1f, 6.237488e-1f, 6.763611e-1f, 7.288208e-1f,
+ 7.808533e-1f, 8.337708e-1f, 8.874512e-1f, 9.418030e-1f,
+ }, {
+ 0.000000e+0f, 7.980347e-2f, 1.615295e-1f, 1.665649e-1f,
+ 1.822205e-1f, 2.185669e-1f, 2.292175e-1f, 2.456665e-1f,
+ 2.666321e-1f, 3.306580e-1f, 3.330688e-1f, 3.765259e-1f,
+ 4.085083e-1f, 4.400024e-1f, 4.407654e-1f, 4.817505e-1f,
+ 4.924011e-1f, 5.320740e-1f, 5.893860e-1f, 6.131287e-1f,
+ 6.212463e-1f, 6.278076e-1f, 6.308899e-1f, 7.660828e-1f,
+ 7.850647e-1f, 7.910461e-1f, 7.929382e-1f, 8.038330e-1f,
+ 9.834900e-1f, 9.846191e-1f, 9.852295e-1f, 9.862671e-1f,
+ }, {
+ 0.000000e+0f, 6.084290e-1f, 3.672791e-1f, 3.151855e-1f,
+ 1.488953e-1f, 2.571716e-1f, 5.103455e-1f, 3.311157e-1f,
+ 5.426025e-2f, 4.254456e-1f, 7.998352e-1f, 7.873230e-1f,
+ 5.418701e-1f, 2.925110e-1f, 8.468628e-2f, 1.410522e-1f,
+ 9.819641e-1f, 9.609070e-1f, 3.530884e-2f, 9.729004e-2f,
+ 5.758362e-1f, 9.941711e-1f, 7.215576e-1f, 7.183228e-1f,
+ 2.028809e-1f, 9.588623e-2f, 2.032166e-1f, 1.338806e-1f,
+ 5.003357e-1f, 1.874390e-1f, 9.804993e-1f, 1.107788e-1f,
+ },
+ },
+};
+
+static const float at9_band_ext_scales_m2[] = {
+ 4.272461e-4f, 1.312256e-3f, 2.441406e-3f, 3.692627e-3f,
+ 4.913330e-3f, 6.134033e-3f, 7.507324e-3f, 8.972168e-3f,
+ 1.049805e-2f, 1.223755e-2f, 1.406860e-2f, 1.599121e-2f,
+ 1.800537e-2f, 2.026367e-2f, 2.264404e-2f, 2.517700e-2f,
+ 2.792358e-2f, 3.073120e-2f, 3.344727e-2f, 3.631592e-2f,
+ 3.952026e-2f, 4.275513e-2f, 4.608154e-2f, 4.968262e-2f,
+ 5.355835e-2f, 5.783081e-2f, 6.195068e-2f, 6.677246e-2f,
+ 7.196045e-2f, 7.745361e-2f, 8.319092e-2f, 8.993530e-2f,
+ 9.759521e-2f, 1.056213e-1f, 1.138916e-1f, 1.236267e-1f,
+ 1.348267e-1f, 1.470337e-1f, 1.603394e-1f, 1.755676e-1f,
+ 1.905823e-1f, 2.071228e-1f, 2.245178e-1f, 2.444153e-1f,
+ 2.658997e-1f, 2.897644e-1f, 3.146057e-1f, 3.450012e-1f,
+ 3.766174e-1f, 4.122620e-1f, 4.505615e-1f, 4.893799e-1f,
+ 5.305481e-1f, 5.731201e-1f, 6.157837e-1f, 6.580811e-1f,
+ 6.985168e-1f, 7.435303e-1f, 7.865906e-1f, 8.302612e-1f,
+ 8.718567e-1f, 9.125671e-1f, 9.575806e-1f, 9.996643e-1f,
+};
+
+static const float at9_band_ext_scales_m3[][2] = {
+ { 3.491211e-1f, -2.913818e-1f, }, { 5.371094e-1f, -2.541504e-1f, },
+ { 6.782227e-1f, -1.664429e-1f, }, { 7.910156e-1f, -1.476440e-1f, },
+ { 9.057617e-1f, -1.342163e-1f, }, { 1.024902e+0f, -1.220703e-1f, },
+ { 1.156250e+0f, -1.117554e-1f, }, { 1.290527e+0f, -1.026611e-1f, },
+ { 1.458984e+0f, -9.436035e-2f, }, { 1.664551e+0f, -8.483887e-2f, },
+ { 1.929688e+0f, -7.476807e-2f, }, { 2.278320e+0f, -6.304932e-2f, },
+ { 2.831543e+0f, -4.492188e-2f, }, { 3.659180e+0f, -2.447510e-2f, },
+ { 5.257813e+0f, +1.831055e-4f, }, { 8.373047e+0f, +4.174805e-2f, },
+};
+
+static const float at9_band_ext_scales_m4[] = {
+ 3.610229e-2f, 1.260681e-1f, 2.227478e-1f, 3.338318e-1f,
+ 4.662170e-1f, 6.221313e-1f, 7.989197e-1f, 9.939575e-1f,
+};
+
+static const float at9_quant_step_coarse[] = {
+ 2.0000000000000000e+0f, 6.6666666666666663e-1f, 2.8571428571428570e-1f,
+ 1.3333333333333333e-1f, 6.4516129032258063e-2f, 3.1746031746031744e-2f,
+ 1.5748031496062992e-2f, 7.8431372549019607e-3f, 3.9138943248532287e-3f,
+ 1.9550342130987292e-3f, 9.7703957010258913e-4f, 4.8840048840048840e-4f,
+ 2.4417043096081065e-4f, 1.2207776353537203e-4f, 6.1037018951994385e-5f,
+ 3.0518043793392844e-5f,
+};
+
+static const float at9_quant_step_fine[] = {
+ 3.0518043793392844e-05f, 1.0172681264464281e-05f, 4.3597205419132631e-06f,
+ 2.0345362528928561e-06f, 9.8445302559331759e-07f, 4.8441339354591809e-07f,
+ 2.4029955742829012e-07f, 1.1967860311134448e-07f, 5.9722199204291275e-08f,
+ 2.9831909866464167e-08f, 1.4908668194134265e-08f, 7.4525137468602791e-09f,
+ 3.7258019525568114e-09f, 1.8627872668859698e-09f, 9.3136520869755679e-10f,
+ 4.6567549848772173e-10f,
+};
+
+static const float at9_scalefactor_c[] = {
+ 3.0517578125e-5f, 6.1035156250e-5f, 1.2207031250e-4f, 2.4414062500e-4f,
+ 4.8828125000e-4f, 9.7656250000e-4f, 1.9531250000e-3f, 3.9062500000e-3f,
+ 7.8125000000e-3f, 1.5625000000e-2f, 3.1250000000e-2f, 6.2500000000e-2f,
+ 1.2500000000e-1f, 2.5000000000e-1f, 5.0000000000e-1f, 1.0000000000e+0f,
+ 2.0000000000e+0f, 4.0000000000e+0f, 8.0000000000e+0f, 1.6000000000e+1f,
+ 3.2000000000e+1f, 6.4000000000e+1f, 1.2800000000e+2f, 2.5600000000e+2f,
+ 5.1200000000e+2f, 1.0240000000e+3f, 2.0480000000e+3f, 4.0960000000e+3f,
+ 8.1920000000e+3f, 1.6384000000e+4f, 3.2768000000e+4f, 6.5536000000e+4f,
+};
+
+static const uint8_t at9_tab_sf_weights[][32] = {
+ {
+ 0, 0, 0, 1, 1, 2, 2, 2, 2, 2, 2, 3, 2, 3, 3, 4, 4, 4,
+ 4, 4, 4, 5, 5, 6, 6, 7, 7, 8, 10, 12, 12, 12,
+ },
+ {
+ 3, 2, 2, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1,
+ 1, 1, 1, 1, 1, 2, 3, 3, 4, 5, 7, 10, 10, 10,
+ },
+ {
+ 0, 2, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 7, 7, 7, 7, 8, 9, 12, 12, 12,
+ },
+ {
+ 0, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6,
+ 6, 6, 6, 7, 8, 8, 10, 11, 11, 12, 13, 13, 13, 13,
+ },
+ {
+ 0, 2, 2, 3, 3, 4, 4, 5, 4, 5, 5, 5, 5, 6, 7, 8, 8, 8,
+ 8, 9, 9, 9, 10, 10, 11, 12, 12, 13, 13, 14, 14, 14,
+ },
+ {
+ 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2,
+ 2, 3, 3, 3, 4, 4, 5, 6, 7, 7, 9, 11, 11, 11,
+ },
+ {
+ 0, 5, 8, 10, 11, 11, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 13, 15, 15, 15,
+ },
+ {
+ 0, 2, 3, 4, 5, 6, 6, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11,
+ 11, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 15, 15, 15,
+ },
+};
+
+static const uint8_t at9_tab_b_dist[] = {
+ 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 6, 7, 8,
+ 9, 10, 11, 12, 13, 15, 6, 18, 19, 20, 21, 22, 23, 24, 25, 26, 26, 27,
+ 27, 28, 28, 28, 29, 29, 29, 29, 30, 30, 30, 30,
+};
+
+static const uint8_t huff_sfb_a1_bits[] = {
+ 1, 1,
+};
+
+static const uint16_t huff_sfb_a1_codes[] = {
+ 0x00, 0x01,
+};
+
+static const uint8_t huff_sfb_a2_bits[] = {
+ 1, 3, 3, 2,
+};
+
+static const uint16_t huff_sfb_a2_codes[] = {
+ 0x00, 0x06, 0x07, 0x02,
+};
+
+static const uint8_t huff_sfb_a3_bits[] = {
+ 2, 2, 4, 6, 6, 5, 3, 2,
+};
+
+static const uint16_t huff_sfb_a3_codes[] = {
+ 0x00, 0x01, 0x0E, 0x3E, 0x3F, 0x1E, 0x06, 0x02,
+};
+
+static const uint8_t huff_sfb_a4_bits[] = {
+ 2, 2, 4, 5, 6, 7, 8, 8, 8, 8, 8, 8, 6, 5, 4, 2,
+};
+
+static const uint16_t huff_sfb_a4_codes[] = {
+ 0x01, 0x02, 0x00, 0x06, 0x0F, 0x13, 0x23, 0x24,
+ 0x25, 0x22, 0x21, 0x20, 0x0E, 0x05, 0x01, 0x03,
+};
+
+static const uint8_t huff_sfb_a5_bits[] = {
+ 2, 3, 3, 4, 5, 5, 6, 7, 7, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 6, 5, 5, 4, 3,
+};
+
+static const uint16_t huff_sfb_a5_codes[] = {
+ 0x02, 0x01, 0x07, 0x0D, 0x0C, 0x18, 0x1B, 0x21, 0x3F, 0x6A, 0x6B, 0x68,
+ 0x73, 0x79, 0x7C, 0x7D, 0x7A, 0x7B, 0x78, 0x72, 0x44, 0x45, 0x47, 0x46,
+ 0x69, 0x38, 0x20, 0x1D, 0x19, 0x09, 0x05, 0x00,
+};
+
+static const uint8_t huff_sfb_a6_bits[] = {
+ 3, 3, 4, 4, 5, 5, 6, 6, 6, 7, 7, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 7, 7, 7, 6, 6, 5, 5, 5, 4, 4, 4,
+};
+
+static const uint16_t huff_sfb_a6_codes[] = {
+ 0x00, 0x01, 0x04, 0x05, 0x12, 0x13, 0x2E, 0x2F, 0x30, 0x66, 0x67, 0xD6,
+ 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2,
+ 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE,
+ 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA,
+ 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, 0x68, 0x69, 0x6A, 0x31, 0x32, 0x14, 0x15,
+ 0x16, 0x06, 0x07, 0x08,
+};
+
+static const uint8_t huff_sfb_b2_bits[] = {
+ 1, 2, 0, 2,
+};
+
+static const uint16_t huff_sfb_b2_codes[] = {
+ 0x00, 0x03, 0x00, 0x02,
+};
+
+static const uint8_t huff_sfb_b3_bits[] = {
+ 1, 3, 5, 6, 0, 6, 4, 2,
+};
+
+static const uint16_t huff_sfb_b3_codes[] = {
+ 0x01, 0x00, 0x04, 0x0B, 0x00, 0x0A, 0x03, 0x01,
+};
+
+static const uint8_t huff_sfb_b4_bits[] = {
+ 1, 3, 4, 5, 5, 7, 8, 8, 0, 8, 8, 7, 6, 6, 4, 3,
+};
+
+static const uint16_t huff_sfb_b4_codes[] = {
+ 0x01, 0x01, 0x04, 0x0E, 0x0F, 0x2C, 0x5A, 0x5D, 0x00, 0x5C, 0x5B, 0x2F,
+ 0x15, 0x14, 0x06, 0x00,
+};
+
+static const uint8_t huff_sfb_b5_bits[] = {
+ 3, 3, 4, 4, 4, 4, 4, 4, 4, 5, 6, 7, 7, 7, 8, 8,
+ 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 3,
+};
+
+static const uint16_t huff_sfb_b5_codes[] = {
+ 0x00, 0x05, 0x07, 0x0C, 0x04, 0x02, 0x03, 0x05, 0x09, 0x10, 0x23, 0x33,
+ 0x36, 0x6E, 0x60, 0x65, 0x62, 0x61, 0x63, 0x64, 0x6F, 0x6D, 0x6C, 0x6B,
+ 0x6A, 0x68, 0x69, 0x45, 0x44, 0x37, 0x1A, 0x07,
+};
+
+typedef struct HuffmanCodebook {
+ const uint8_t *bits;
+ const uint16_t *codes;
+ const int size;
+ const int value_cnt;
+ const int value_cnt_pow;
+ const int value_bits;
+ const int max_bit_size;
+} HuffmanCodebook;
+
+static const HuffmanCodebook at9_huffman_sf_unsigned[] = {
+ { 0 },
+ { huff_sfb_a1_bits, huff_sfb_a1_codes, 2, 1, 0, 1, 1, },
+ { huff_sfb_a2_bits, huff_sfb_a2_codes, 4, 1, 0, 2, 3, },
+ { huff_sfb_a3_bits, huff_sfb_a3_codes, 8, 1, 0, 3, 6, },
+ { huff_sfb_a4_bits, huff_sfb_a4_codes, 16, 1, 0, 4, 8, },
+ { huff_sfb_a5_bits, huff_sfb_a5_codes, 32, 1, 0, 5, 8, },
+ { huff_sfb_a6_bits, huff_sfb_a6_codes, 64, 1, 0, 6, 8, },
+};
+
+static const HuffmanCodebook at9_huffman_sf_signed[] = {
+ { 0 },
+ { 0 },
+ { huff_sfb_b2_bits, huff_sfb_b2_codes, 4, 1, 0, 2, 2, },
+ { huff_sfb_b3_bits, huff_sfb_b3_codes, 8, 1, 0, 3, 6, },
+ { huff_sfb_b4_bits, huff_sfb_b4_codes, 16, 1, 0, 4, 8, },
+ { huff_sfb_b5_bits, huff_sfb_b5_codes, 32, 1, 0, 5, 8, },
+};
+
+static const uint8_t huff_spec_a21_bits[] = {
+ 0, 3, 0, 3, 3, 3, 0, 3, 0, 0, 0, 0, 3, 3, 0, 3,
+};
+
+static const uint16_t huff_spec_a21_codes[] = {
+ 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x00, 0x04,
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x05, 0x00, 0x06,
+};
+
+static const uint8_t huff_spec_a22_bits[] = {
+ 0, 4, 0, 4, 5, 6, 0, 6, 0, 0, 0, 0, 5, 6, 0, 6,
+ 5, 6, 0, 6, 6, 7, 0, 7, 0, 0, 0, 0, 6, 7, 0, 7,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5, 6, 0, 6, 6, 7, 0, 7, 0, 0, 0, 0, 6, 7, 0, 7,
+ 5, 6, 0, 6, 7, 7, 0, 7, 0, 0, 0, 0, 6, 7, 0, 7,
+ 6, 7, 0, 7, 7, 8, 0, 8, 0, 0, 0, 0, 7, 8, 0, 7,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 6, 7, 0, 7, 7, 8, 0, 8, 0, 0, 0, 0, 7, 7, 0, 8,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5, 6, 0, 6, 6, 7, 0, 7, 0, 0, 0, 0, 7, 7, 0, 7,
+ 6, 7, 0, 7, 7, 8, 0, 7, 0, 0, 0, 0, 7, 8, 0, 8,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 6, 7, 0, 7, 7, 7, 0, 8, 0, 0, 0, 0, 7, 8, 0, 8,
+};
+
+static const uint16_t huff_spec_a22_codes[] = {
+ 0x00, 0x02, 0x00, 0x03, 0x10, 0x3C, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x11, 0x3E, 0x00, 0x3D,
+ 0x0E, 0x00, 0x00, 0x39, 0x18, 0x26, 0x00, 0x75, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x24, 0x00, 0x6D,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x0F, 0x38, 0x00, 0x01, 0x1A, 0x6C, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, 0x19, 0x74, 0x00, 0x27,
+ 0x16, 0x14, 0x00, 0x17, 0x76, 0x06, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x35, 0x64, 0x00, 0x6F,
+ 0x26, 0x04, 0x00, 0x63, 0x22, 0xA2, 0x00, 0x97, 0x00, 0x00, 0x00, 0x00, 0x67, 0xA0, 0x00, 0x0D,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x2B, 0x52, 0x00, 0x0B, 0x20, 0x92, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x61, 0x0E, 0x00, 0x95,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x17, 0x16, 0x00, 0x15, 0x34, 0x6E, 0x00, 0x65, 0x00, 0x00, 0x00, 0x00, 0x77, 0x08, 0x00, 0x07,
+ 0x2A, 0x0A, 0x00, 0x53, 0x60, 0x94, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x21, 0x90, 0x00, 0x93,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x27, 0x62, 0x00, 0x05, 0x66, 0x0C, 0x00, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x23, 0x96, 0x00, 0xA3,
+};
+
+static const uint8_t huff_spec_a23_bits[] = {
+ 3, 4, 0, 4, 5, 6, 0, 6, 0, 0, 0, 0, 5, 6, 0, 6,
+ 5, 7, 0, 6, 6, 8, 0, 7, 0, 0, 0, 0, 6, 8, 0, 7,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5, 6, 0, 7, 6, 7, 0, 8, 0, 0, 0, 0, 6, 7, 0, 8,
+ 5, 6, 0, 6, 7, 8, 0, 8, 0, 0, 0, 0, 6, 7, 0, 7,
+ 6, 8, 0, 7, 8, 9, 0, 9, 0, 0, 0, 0, 7, 9, 0, 8,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 6, 8, 0, 8, 8, 9, 0, 9, 0, 0, 0, 0, 7, 8, 0, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5, 6, 0, 6, 6, 7, 0, 7, 0, 0, 0, 0, 7, 8, 0, 8,
+ 6, 8, 0, 8, 7, 9, 0, 8, 0, 0, 0, 0, 8, 9, 0, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 6, 7, 0, 8, 7, 8, 0, 9, 0, 0, 0, 0, 8, 9, 0, 9,
+};
+
+static const uint16_t huff_spec_a23_codes[] = {
+ 0x006, 0x002, 0x000, 0x003, 0x016, 0x01E, 0x000, 0x021, 0x000, 0x000, 0x000, 0x000,
+ 0x017, 0x020, 0x000, 0x01F, 0x01C, 0x054, 0x000, 0x027, 0x010, 0x0A6, 0x000, 0x027,
+ 0x000, 0x000, 0x000, 0x000, 0x015, 0x0A4, 0x000, 0x02D, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x01D, 0x026, 0x000, 0x055, 0x014, 0x02C, 0x000, 0x0A5, 0x000, 0x000, 0x000, 0x000,
+ 0x011, 0x026, 0x000, 0x0A7, 0x01E, 0x000, 0x000, 0x003, 0x04A, 0x074, 0x000, 0x071,
+ 0x000, 0x000, 0x000, 0x000, 0x023, 0x00A, 0x000, 0x009, 0x018, 0x072, 0x000, 0x00D,
+ 0x0A2, 0x15A, 0x000, 0x123, 0x000, 0x000, 0x000, 0x000, 0x00F, 0x158, 0x000, 0x05D,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x01B, 0x0AE, 0x000, 0x077, 0x092, 0x140, 0x000, 0x121,
+ 0x000, 0x000, 0x000, 0x000, 0x025, 0x05E, 0x000, 0x143, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x01F, 0x002, 0x000, 0x001, 0x022, 0x008, 0x000, 0x00B, 0x000, 0x000, 0x000, 0x000,
+ 0x04B, 0x070, 0x000, 0x075, 0x01A, 0x076, 0x000, 0x0AF, 0x024, 0x142, 0x000, 0x05F,
+ 0x000, 0x000, 0x000, 0x000, 0x093, 0x120, 0x000, 0x141, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x019, 0x00C, 0x000, 0x073, 0x00E, 0x05C, 0x000, 0x159, 0x000, 0x000, 0x000, 0x000,
+ 0x0A3, 0x122, 0x000, 0x15B,
+};
+
+static const uint8_t huff_spec_a24_bits[] = {
+ 2, 4, 0, 4, 5, 6, 0, 6, 0, 0, 0, 0, 5, 6, 0, 6,
+ 5, 7, 0, 6, 6, 8, 0, 8, 0, 0, 0, 0, 6, 8, 0, 8,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5, 6, 0, 7, 6, 8, 0, 8, 0, 0, 0, 0, 6, 8, 0, 8,
+ 5, 7, 0, 7, 7, 9, 0, 9, 0, 0, 0, 0, 6, 8, 0, 8,
+ 6, 9, 0, 8, 8, 10, 0, 10, 0, 0, 0, 0, 8, 10, 0, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 6, 8, 0, 9, 9, 10, 0, 10, 0, 0, 0, 0, 8, 9, 0, 10,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5, 7, 0, 7, 6, 8, 0, 8, 0, 0, 0, 0, 7, 9, 0, 9,
+ 6, 9, 0, 8, 8, 10, 0, 9, 0, 0, 0, 0, 9, 10, 0, 10,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 6, 8, 0, 9, 8, 9, 0, 10, 0, 0, 0, 0, 8, 10, 0, 10,
+};
+
+static const uint16_t huff_spec_a24_codes[] = {
+ 0x002, 0x002, 0x000, 0x003, 0x01E, 0x010, 0x000, 0x013, 0x000, 0x000, 0x000, 0x000,
+ 0x01F, 0x012, 0x000, 0x011, 0x01A, 0x030, 0x000, 0x01B, 0x000, 0x064, 0x000, 0x0C1,
+ 0x000, 0x000, 0x000, 0x000, 0x003, 0x052, 0x000, 0x07D, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x01B, 0x01A, 0x000, 0x031, 0x002, 0x07C, 0x000, 0x053, 0x000, 0x000, 0x000, 0x000,
+ 0x001, 0x0C0, 0x000, 0x065, 0x01C, 0x062, 0x000, 0x065, 0x02A, 0x198, 0x000, 0x19B,
+ 0x000, 0x000, 0x000, 0x000, 0x017, 0x078, 0x000, 0x07B, 0x004, 0x0FE, 0x000, 0x077,
+ 0x050, 0x33A, 0x000, 0x1F9, 0x000, 0x000, 0x000, 0x000, 0x073, 0x338, 0x000, 0x0E1,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x007, 0x066, 0x000, 0x187, 0x19E, 0x308, 0x000, 0x30B,
+ 0x000, 0x000, 0x000, 0x000, 0x075, 0x0E2, 0x000, 0x1FB, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x01D, 0x064, 0x000, 0x063, 0x016, 0x07A, 0x000, 0x079, 0x000, 0x000, 0x000, 0x000,
+ 0x02B, 0x19A, 0x000, 0x199, 0x006, 0x186, 0x000, 0x067, 0x074, 0x1FA, 0x000, 0x0E3,
+ 0x000, 0x000, 0x000, 0x000, 0x19F, 0x30A, 0x000, 0x309, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x005, 0x076, 0x000, 0x0FF, 0x072, 0x0E0, 0x000, 0x339, 0x000, 0x000, 0x000, 0x000,
+ 0x051, 0x1F8, 0x000, 0x33B,
+};
+
+static const uint8_t huff_spec_a31_bits[] = {
+ 0, 0, 4, 5, 0, 5, 4, 0, 0, 0, 5, 5, 0, 5, 5, 0,
+ 5, 5, 6, 6, 0, 6, 5, 5, 5, 6, 6, 7, 0, 7, 6, 6,
+ 0, 0, 0, 0, 0, 0, 0, 0, 5, 6, 6, 7, 0, 7, 6, 6,
+ 5, 5, 5, 6, 0, 6, 6, 5, 0, 0, 5, 5, 0, 5, 5, 0,
+};
+
+static const uint16_t huff_spec_a31_codes[] = {
+ 0x00, 0x00, 0x02, 0x18, 0x00, 0x19, 0x03, 0x00, 0x00, 0x00, 0x12, 0x02, 0x00, 0x09, 0x15, 0x00,
+ 0x1A, 0x0A, 0x3E, 0x2C, 0x00, 0x2F, 0x01, 0x0D, 0x0E, 0x38, 0x20, 0x78, 0x00, 0x7B, 0x23, 0x3B,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x3A, 0x22, 0x7A, 0x00, 0x79, 0x21, 0x39,
+ 0x1B, 0x0C, 0x00, 0x2E, 0x00, 0x2D, 0x3F, 0x0B, 0x00, 0x00, 0x14, 0x08, 0x00, 0x03, 0x13, 0x00,
+};
+
+static const uint8_t huff_spec_a32_bits[] = {
+ 4, 5, 5, 6, 0, 6, 5, 5, 5, 6, 5, 6, 0, 6, 5, 5,
+ 5, 5, 6, 7, 0, 7, 6, 5, 6, 6, 7, 7, 0, 7, 7, 6,
+ 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 7, 7, 0, 7, 7, 6,
+ 5, 5, 6, 7, 0, 7, 6, 5, 5, 5, 5, 6, 0, 6, 5, 6,
+};
+
+static const uint16_t huff_spec_a32_codes[] = {
+ 0x0D, 0x18, 0x16, 0x3A, 0x00, 0x3B, 0x17, 0x19, 0x12, 0x3E, 0x08, 0x1C, 0x00, 0x1B, 0x07, 0x01,
+ 0x10, 0x02, 0x28, 0x78, 0x00, 0x7B, 0x1F, 0x05, 0x2A, 0x16, 0x72, 0x2A, 0x00, 0x29, 0x71, 0x19,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x18, 0x70, 0x28, 0x00, 0x2B, 0x73, 0x17,
+ 0x11, 0x04, 0x1E, 0x7A, 0x00, 0x79, 0x29, 0x03, 0x13, 0x00, 0x06, 0x1A, 0x00, 0x1D, 0x09, 0x3F,
+};
+
+static const uint8_t huff_spec_a33_bits[] = {
+ 3, 4, 5, 6, 0, 6, 5, 4, 4, 5, 6, 7, 0, 7, 6, 5,
+ 5, 6, 6, 7, 0, 7, 6, 6, 6, 7, 8, 8, 0, 8, 8, 7,
+ 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 8, 8, 0, 8, 8, 7,
+ 5, 6, 6, 7, 0, 7, 6, 6, 4, 5, 6, 7, 0, 7, 6, 5,
+};
+
+static const uint16_t huff_spec_a33_codes[] = {
+ 0x05, 0x06, 0x10, 0x08, 0x00, 0x09, 0x11, 0x07, 0x04, 0x12, 0x3E, 0x6A, 0x00, 0x6D, 0x3D, 0x19,
+ 0x06, 0x3A, 0x06, 0x02, 0x00, 0x01, 0x05, 0x39, 0x02, 0x16, 0xDC, 0x2A, 0x00, 0x29, 0xDF, 0x69,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x68, 0xDE, 0x28, 0x00, 0x2B, 0xDD, 0x17,
+ 0x07, 0x38, 0x04, 0x00, 0x00, 0x03, 0x07, 0x3B, 0x05, 0x18, 0x3C, 0x6C, 0x00, 0x6B, 0x3F, 0x13,
+};
+
+static const uint8_t huff_spec_a34_bits[] = {
+ 2, 4, 5, 7, 0, 7, 5, 4, 4, 5, 6, 8, 0, 8, 6, 5,
+ 5, 6, 7, 8, 0, 8, 7, 6, 7, 8, 8, 10, 0, 10, 9, 8,
+ 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 0, 10, 8, 8,
+ 5, 6, 7, 8, 0, 8, 7, 6, 4, 5, 6, 8, 0, 8, 6, 5,
+};
+
+static const uint16_t huff_spec_a34_codes[] = {
+ 0x000, 0x00A, 0x00A, 0x034, 0x000, 0x035, 0x00B, 0x00B, 0x008, 0x01C, 0x032, 0x0DA,
+ 0x000, 0x0DD, 0x035, 0x01F, 0x008, 0x01E, 0x03A, 0x06C, 0x000, 0x063, 0x039, 0x031,
+ 0x032, 0x06E, 0x060, 0x37A, 0x000, 0x379, 0x1BF, 0x0D9, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x033, 0x0D8, 0x1BE, 0x378, 0x000, 0x37B, 0x061, 0x06F,
+ 0x009, 0x030, 0x038, 0x062, 0x000, 0x06D, 0x03B, 0x01F, 0x009, 0x01E, 0x034, 0x0DC,
+ 0x000, 0x0DB, 0x033, 0x01D,
+};
+
+static const uint8_t huff_spec_a41_bits[] = {
+ 0, 0, 0, 0, 6, 6, 7, 7, 0, 7, 7, 6, 6, 0, 0, 0,
+ 0, 0, 0, 0, 7, 7, 7, 7, 0, 7, 7, 7, 6, 0, 0, 0,
+ 0, 0, 0, 0, 7, 7, 7, 8, 0, 8, 7, 7, 7, 0, 0, 0,
+ 0, 0, 0, 0, 7, 7, 8, 8, 0, 8, 8, 7, 7, 0, 0, 0,
+ 7, 7, 7, 8, 7, 8, 8, 8, 0, 8, 8, 8, 7, 8, 7, 7,
+ 7, 7, 7, 7, 8, 8, 8, 9, 0, 8, 8, 8, 8, 7, 7, 7,
+ 7, 7, 8, 8, 8, 8, 9, 9, 0, 9, 8, 8, 8, 8, 8, 7,
+ 8, 8, 8, 8, 8, 9, 9, 9, 0, 9, 9, 9, 8, 8, 8, 8,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 8, 8, 8, 8, 8, 9, 9, 9, 0, 9, 9, 9, 8, 8, 8, 8,
+ 7, 7, 8, 8, 8, 8, 8, 9, 0, 9, 9, 8, 8, 8, 8, 7,
+ 7, 7, 7, 7, 8, 8, 8, 8, 0, 9, 8, 8, 8, 7, 7, 7,
+ 7, 7, 7, 8, 7, 8, 8, 8, 0, 8, 8, 8, 7, 8, 7, 7,
+ 0, 0, 0, 0, 7, 7, 8, 8, 0, 8, 8, 7, 7, 0, 0, 0,
+ 0, 0, 0, 0, 7, 7, 7, 8, 0, 8, 7, 7, 7, 0, 0, 0,
+ 0, 0, 0, 0, 6, 7, 7, 7, 0, 7, 7, 7, 7, 0, 0, 0,
+};
+
+static const uint16_t huff_spec_a41_codes[] = {
+ 0x000, 0x000, 0x000, 0x000, 0x018, 0x00E, 0x05E, 0x028, 0x000, 0x029, 0x05F, 0x00F,
+ 0x019, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x076, 0x06E, 0x03E, 0x004,
+ 0x000, 0x017, 0x045, 0x07B, 0x013, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x04A, 0x048, 0x010, 0x0CE, 0x000, 0x0E1, 0x023, 0x055, 0x053, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x008, 0x018, 0x0D6, 0x09E, 0x000, 0x09D, 0x0E5, 0x02B,
+ 0x01B, 0x000, 0x000, 0x000, 0x07C, 0x05C, 0x038, 0x0FC, 0x002, 0x0D2, 0x09A, 0x05C,
+ 0x000, 0x06B, 0x0A3, 0x0D9, 0x00F, 0x0FF, 0x03D, 0x061, 0x074, 0x056, 0x036, 0x000,
+ 0x0CC, 0x08C, 0x058, 0x1E2, 0x000, 0x00F, 0x05F, 0x0A1, 0x0D5, 0x00D, 0x03B, 0x059,
+ 0x040, 0x014, 0x0DA, 0x0B6, 0x084, 0x040, 0x1E0, 0x196, 0x000, 0x1A1, 0x00D, 0x043,
+ 0x087, 0x0C7, 0x0E3, 0x00B, 0x0F2, 0x0C4, 0x08E, 0x05A, 0x024, 0x1CC, 0x194, 0x168,
+ 0x000, 0x16B, 0x1A3, 0x1CF, 0x027, 0x069, 0x099, 0x0C9, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x0F3, 0x0C8, 0x098, 0x068, 0x026, 0x1CE, 0x1A2, 0x16A, 0x000, 0x169, 0x195, 0x1CD,
+ 0x025, 0x05B, 0x08F, 0x0C5, 0x041, 0x00A, 0x0E2, 0x0C6, 0x086, 0x042, 0x00C, 0x1A0,
+ 0x000, 0x197, 0x1E1, 0x041, 0x085, 0x0B7, 0x0DB, 0x015, 0x075, 0x058, 0x03A, 0x00C,
+ 0x0D4, 0x0A0, 0x05E, 0x00E, 0x000, 0x1E3, 0x059, 0x08D, 0x0CD, 0x001, 0x037, 0x057,
+ 0x07D, 0x060, 0x03C, 0x0FE, 0x00E, 0x0D8, 0x0A2, 0x06A, 0x000, 0x05D, 0x09B, 0x0D3,
+ 0x003, 0x0FD, 0x039, 0x05D, 0x000, 0x000, 0x000, 0x000, 0x01A, 0x02A, 0x0E4, 0x09C,
+ 0x000, 0x09F, 0x0D7, 0x019, 0x009, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x052, 0x054, 0x022, 0x0E0, 0x000, 0x0CF, 0x011, 0x049, 0x04B, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x012, 0x07A, 0x044, 0x016, 0x000, 0x005, 0x03F, 0x06F,
+ 0x077, 0x000, 0x000, 0x000,
+};
+
+static const uint8_t huff_spec_a42_bits[] = {
+ 5, 6, 7, 7, 7, 7, 8, 8, 0, 8, 8, 7, 7, 7, 7, 6,
+ 6, 7, 7, 8, 7, 7, 8, 8, 0, 8, 8, 7, 7, 8, 7, 7,
+ 7, 7, 8, 8, 7, 8, 8, 9, 0, 9, 8, 8, 7, 8, 8, 7,
+ 8, 8, 8, 8, 8, 8, 8, 9, 0, 9, 8, 8, 8, 8, 8, 8,
+ 7, 7, 7, 8, 8, 8, 9, 9, 0, 9, 9, 8, 8, 8, 7, 7,
+ 7, 7, 8, 8, 8, 9, 9, 9, 0, 9, 9, 9, 8, 8, 8, 7,
+ 8, 8, 8, 8, 9, 9, 9, 10, 0, 10, 9, 9, 9, 8, 8, 8,
+ 8, 8, 9, 9, 9, 9, 10, 10, 0, 10, 10, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 8, 9, 9, 9, 9, 9, 10, 10, 0, 10, 10, 9, 9, 9, 9, 8,
+ 8, 8, 8, 8, 9, 9, 9, 10, 0, 10, 9, 9, 9, 8, 8, 8,
+ 7, 7, 8, 8, 8, 9, 9, 9, 0, 9, 9, 9, 8, 8, 8, 7,
+ 7, 7, 7, 8, 8, 8, 9, 9, 0, 9, 9, 8, 8, 8, 7, 7,
+ 8, 8, 8, 8, 8, 8, 8, 9, 0, 9, 8, 8, 8, 8, 8, 8,
+ 7, 7, 8, 8, 7, 8, 8, 9, 0, 9, 8, 8, 7, 8, 8, 7,
+ 6, 7, 7, 8, 7, 7, 8, 8, 0, 8, 8, 7, 7, 8, 7, 7,
+};
+
+static const uint16_t huff_spec_a42_codes[] = {
+ 0x003, 0x018, 0x058, 0x000, 0x066, 0x03C, 0x0D6, 0x07C, 0x000, 0x07D, 0x0D7, 0x03D,
+ 0x067, 0x001, 0x059, 0x019, 0x002, 0x064, 0x036, 0x0DA, 0x04C, 0x01C, 0x0BE, 0x02C,
+ 0x000, 0x037, 0x0C5, 0x029, 0x04B, 0x0E7, 0x03B, 0x069, 0x044, 0x02E, 0x0FA, 0x092,
+ 0x020, 0x0F8, 0x086, 0x1FC, 0x000, 0x1E7, 0x07F, 0x0F5, 0x023, 0x0AD, 0x0FD, 0x02D,
+ 0x0F6, 0x0DC, 0x09C, 0x03E, 0x0F0, 0x0B6, 0x026, 0x186, 0x000, 0x18D, 0x02F, 0x0B5,
+ 0x0E1, 0x03D, 0x0AF, 0x0D9, 0x054, 0x040, 0x014, 0x0EC, 0x0BC, 0x054, 0x1C6, 0x108,
+ 0x000, 0x10B, 0x1C5, 0x069, 0x0B9, 0x0DF, 0x019, 0x047, 0x026, 0x008, 0x0E4, 0x0A2,
+ 0x056, 0x1DC, 0x142, 0x06A, 0x000, 0x091, 0x123, 0x1DF, 0x04B, 0x0A7, 0x0EB, 0x00B,
+ 0x0C0, 0x09E, 0x06A, 0x022, 0x1AA, 0x140, 0x092, 0x3CA, 0x000, 0x3A7, 0x04B, 0x121,
+ 0x18F, 0x007, 0x071, 0x0A5, 0x020, 0x004, 0x1A8, 0x174, 0x0E4, 0x068, 0x3A4, 0x2EE,
+ 0x000, 0x2ED, 0x3C9, 0x049, 0x0E7, 0x185, 0x1D1, 0x1FF, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x021, 0x1FE, 0x1D0, 0x184, 0x0E6, 0x048, 0x3C8, 0x2EC, 0x000, 0x2EF, 0x3A5, 0x069,
+ 0x0E5, 0x175, 0x1A9, 0x005, 0x0C1, 0x0A4, 0x070, 0x006, 0x18E, 0x120, 0x04A, 0x3A6,
+ 0x000, 0x3CB, 0x093, 0x141, 0x1AB, 0x023, 0x06B, 0x09F, 0x027, 0x00A, 0x0EA, 0x0A6,
+ 0x04A, 0x1DE, 0x122, 0x090, 0x000, 0x06B, 0x143, 0x1DD, 0x057, 0x0A3, 0x0E5, 0x009,
+ 0x055, 0x046, 0x018, 0x0DE, 0x0B8, 0x068, 0x1C4, 0x10A, 0x000, 0x109, 0x1C7, 0x055,
+ 0x0BD, 0x0ED, 0x015, 0x041, 0x0F7, 0x0D8, 0x0AE, 0x03C, 0x0E0, 0x0B4, 0x02E, 0x18C,
+ 0x000, 0x187, 0x027, 0x0B7, 0x0F1, 0x03F, 0x09D, 0x0DD, 0x045, 0x02C, 0x0FC, 0x0AC,
+ 0x022, 0x0F4, 0x07E, 0x1E6, 0x000, 0x1FD, 0x087, 0x0F9, 0x021, 0x093, 0x0FB, 0x02F,
+ 0x003, 0x068, 0x03A, 0x0E6, 0x04A, 0x028, 0x0C4, 0x036, 0x000, 0x02D, 0x0BF, 0x01D,
+ 0x04D, 0x0DB, 0x037, 0x065,
+};
+
+static const uint8_t huff_spec_a43_bits[] = {
+ 4, 6, 6, 7, 7, 8, 8, 9, 0, 9, 8, 8, 7, 7, 6, 6,
+ 5, 6, 7, 7, 7, 8, 8, 9, 0, 9, 8, 8, 7, 7, 7, 6,
+ 6, 7, 7, 7, 8, 8, 9, 9, 0, 9, 9, 8, 8, 7, 7, 7,
+ 7, 7, 7, 8, 8, 8, 9, 10, 0, 10, 9, 9, 8, 8, 7, 7,
+ 7, 7, 8, 8, 8, 9, 10, 10, 0, 10, 10, 9, 8, 8, 8, 7,
+ 8, 8, 8, 9, 9, 9, 10, 10, 0, 10, 10, 9, 9, 9, 8, 8,
+ 8, 9, 9, 9, 10, 10, 10, 10, 0, 10, 10, 10, 10, 9, 9, 9,
+ 9, 9, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 9,
+ 8, 9, 9, 9, 10, 10, 10, 10, 0, 10, 10, 10, 10, 9, 9, 9,
+ 8, 8, 8, 9, 9, 9, 10, 10, 0, 10, 10, 9, 9, 9, 8, 8,
+ 7, 7, 8, 8, 8, 9, 10, 10, 0, 10, 10, 9, 8, 8, 8, 7,
+ 7, 7, 7, 8, 8, 9, 9, 10, 0, 10, 9, 8, 8, 8, 7, 7,
+ 6, 7, 7, 7, 8, 8, 9, 9, 0, 9, 9, 8, 8, 7, 7, 7,
+ 5, 6, 7, 7, 7, 8, 8, 9, 0, 9, 8, 8, 7, 7, 7, 6,
+};
+
+static const uint16_t huff_spec_a43_codes[] = {
+ 0x002, 0x03E, 0x016, 0x060, 0x04E, 0x0DC, 0x04A, 0x130, 0x000, 0x131, 0x04B, 0x0DD,
+ 0x04F, 0x061, 0x017, 0x03F, 0x002, 0x02C, 0x076, 0x042, 0x034, 0x0CE, 0x002, 0x0E8,
+ 0x000, 0x0CF, 0x001, 0x0D1, 0x037, 0x045, 0x07B, 0x02F, 0x014, 0x072, 0x052, 0x01A,
+ 0x0E0, 0x080, 0x198, 0x01E, 0x000, 0x01D, 0x19B, 0x083, 0x0DF, 0x019, 0x055, 0x079,
+ 0x050, 0x03C, 0x004, 0x0C4, 0x096, 0x00C, 0x0EA, 0x34A, 0x000, 0x34F, 0x0ED, 0x1D7,
+ 0x095, 0x0AF, 0x003, 0x03F, 0x046, 0x026, 0x0D6, 0x092, 0x046, 0x15A, 0x3A8, 0x108,
+ 0x000, 0x10F, 0x3A3, 0x135, 0x039, 0x091, 0x0D9, 0x031, 0x0D4, 0x0CA, 0x072, 0x1C6,
+ 0x136, 0x090, 0x2B2, 0x104, 0x000, 0x103, 0x111, 0x08B, 0x133, 0x1D3, 0x071, 0x0C9,
+ 0x03E, 0x1B4, 0x18C, 0x0CC, 0x38A, 0x2B0, 0x106, 0x0F2, 0x000, 0x0EF, 0x101, 0x113,
+ 0x3A1, 0x0CB, 0x18F, 0x1B7, 0x0EE, 0x092, 0x388, 0x348, 0x10A, 0x0F4, 0x0F0, 0x0EA,
+ 0x000, 0x0E9, 0x0ED, 0x0F7, 0x10D, 0x34D, 0x3AB, 0x0C9, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x0EF, 0x0C8, 0x3AA, 0x34C, 0x10C, 0x0F6, 0x0EC, 0x0E8, 0x000, 0x0EB, 0x0F1, 0x0F5,
+ 0x10B, 0x349, 0x389, 0x093, 0x03F, 0x1B6, 0x18E, 0x0CA, 0x3A0, 0x112, 0x100, 0x0EE,
+ 0x000, 0x0F3, 0x107, 0x2B1, 0x38B, 0x0CD, 0x18D, 0x1B5, 0x0D5, 0x0C8, 0x070, 0x1D2,
+ 0x132, 0x08A, 0x110, 0x102, 0x000, 0x105, 0x2B3, 0x091, 0x137, 0x1C7, 0x073, 0x0CB,
+ 0x047, 0x030, 0x0D8, 0x090, 0x038, 0x134, 0x3A2, 0x10E, 0x000, 0x109, 0x3A9, 0x15B,
+ 0x047, 0x093, 0x0D7, 0x027, 0x051, 0x03E, 0x002, 0x0AE, 0x094, 0x1D6, 0x0EC, 0x34E,
+ 0x000, 0x34B, 0x0EB, 0x00D, 0x097, 0x0C5, 0x005, 0x03D, 0x015, 0x078, 0x054, 0x018,
+ 0x0DE, 0x082, 0x19A, 0x01C, 0x000, 0x01F, 0x199, 0x081, 0x0E1, 0x01B, 0x053, 0x073,
+ 0x003, 0x02E, 0x07A, 0x044, 0x036, 0x0D0, 0x000, 0x0CE, 0x000, 0x0E9, 0x003, 0x0CF,
+ 0x035, 0x043, 0x077, 0x02D,
+};
+
+static const uint8_t huff_spec_a44_bits[] = {
+ 4, 5, 6, 7, 7, 8, 9, 10, 0, 10, 9, 8, 7, 7, 6, 5,
+ 5, 6, 6, 7, 7, 8, 9, 10, 0, 10, 9, 8, 7, 7, 6, 6,
+ 6, 6, 7, 7, 8, 9, 10, 10, 0, 10, 10, 9, 8, 7, 7, 6,
+ 7, 7, 7, 8, 8, 9, 10, 10, 0, 10, 10, 9, 8, 8, 7, 7,
+ 7, 8, 8, 8, 9, 10, 10, 10, 0, 10, 10, 10, 9, 8, 8, 7,
+ 8, 8, 9, 9, 10, 10, 10, 10, 0, 10, 10, 10, 10, 9, 9, 8,
+ 9, 9, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 9,
+ 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10,
+ 9, 9, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 9,
+ 8, 8, 9, 9, 10, 10, 10, 10, 0, 10, 10, 10, 10, 9, 9, 8,
+ 7, 7, 8, 8, 9, 10, 10, 10, 0, 10, 10, 10, 9, 8, 8, 8,
+ 7, 7, 7, 8, 8, 9, 10, 10, 0, 10, 10, 9, 8, 8, 7, 7,
+ 6, 6, 7, 7, 8, 9, 10, 10, 0, 10, 10, 9, 8, 7, 7, 6,
+ 5, 6, 6, 7, 7, 8, 9, 10, 0, 10, 9, 8, 7, 7, 6, 6,
+};
+
+static const uint16_t huff_spec_a44_codes[] = {
+ 0x00A, 0x012, 0x030, 0x06E, 0x024, 0x074, 0x0EC, 0x07E, 0x000, 0x07F, 0x0ED, 0x075,
+ 0x025, 0x06F, 0x031, 0x013, 0x010, 0x03C, 0x018, 0x05A, 0x002, 0x046, 0x09E, 0x07C,
+ 0x000, 0x079, 0x0E5, 0x04D, 0x007, 0x065, 0x01B, 0x03F, 0x02E, 0x016, 0x072, 0x01A,
+ 0x0D6, 0x1C6, 0x3B4, 0x066, 0x000, 0x06B, 0x3B7, 0x1D9, 0x0D5, 0x021, 0x075, 0x015,
+ 0x06C, 0x03E, 0x01E, 0x0CC, 0x044, 0x0F2, 0x082, 0x05C, 0x000, 0x05F, 0x087, 0x0F5,
+ 0x031, 0x0CF, 0x017, 0x059, 0x01C, 0x0EE, 0x0D0, 0x024, 0x1C0, 0x08E, 0x06E, 0x048,
+ 0x000, 0x04D, 0x06D, 0x089, 0x0F7, 0x033, 0x0D3, 0x001, 0x070, 0x028, 0x1C2, 0x0F0,
+ 0x08A, 0x074, 0x054, 0x040, 0x000, 0x043, 0x053, 0x073, 0x099, 0x0EF, 0x1C5, 0x02B,
+ 0x0E6, 0x04E, 0x08C, 0x080, 0x068, 0x058, 0x046, 0x02A, 0x000, 0x029, 0x045, 0x051,
+ 0x065, 0x085, 0x09B, 0x09D, 0x07A, 0x076, 0x060, 0x056, 0x04E, 0x02C, 0x024, 0x022,
+ 0x000, 0x021, 0x027, 0x02F, 0x04B, 0x05B, 0x063, 0x071, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x07B, 0x070, 0x062, 0x05A, 0x04A, 0x02E, 0x026, 0x020, 0x000, 0x023, 0x025, 0x02D,
+ 0x04F, 0x057, 0x061, 0x077, 0x0E7, 0x09C, 0x09A, 0x084, 0x064, 0x050, 0x044, 0x028,
+ 0x000, 0x02B, 0x047, 0x059, 0x069, 0x081, 0x08D, 0x04F, 0x071, 0x02A, 0x1C4, 0x0EE,
+ 0x098, 0x072, 0x052, 0x042, 0x000, 0x041, 0x055, 0x075, 0x08B, 0x0F1, 0x1C3, 0x029,
+ 0x01D, 0x000, 0x0D2, 0x032, 0x0F6, 0x088, 0x06C, 0x04C, 0x000, 0x049, 0x06F, 0x08F,
+ 0x1C1, 0x025, 0x0D1, 0x0EF, 0x06D, 0x058, 0x016, 0x0CE, 0x030, 0x0F4, 0x086, 0x05E,
+ 0x000, 0x05D, 0x083, 0x0F3, 0x045, 0x0CD, 0x01F, 0x03F, 0x02F, 0x014, 0x074, 0x020,
+ 0x0D4, 0x1D8, 0x3B6, 0x06A, 0x000, 0x067, 0x3B5, 0x1C7, 0x0D7, 0x01B, 0x073, 0x017,
+ 0x011, 0x03E, 0x01A, 0x064, 0x006, 0x04C, 0x0E4, 0x078, 0x000, 0x07D, 0x09F, 0x047,
+ 0x003, 0x05B, 0x019, 0x03D,
+};
+
+static const uint8_t huff_spec_a51_bits[] = {
+ 5, 5, 5, 5, 5, 6, 6, 6, 4, 4, 5, 5, 5, 5, 5, 5,
+ 0, 5, 5, 5, 5, 5, 5, 4, 4, 6, 6, 6, 5, 5, 5, 5,
+};
+
+static const uint16_t huff_spec_a51_codes[] = {
+ 0x19, 0x16, 0x12, 0x0E, 0x06, 0x3A, 0x38, 0x30, 0x00, 0x04, 0x1E, 0x1A,
+ 0x14, 0x10, 0x0C, 0x04, 0x00, 0x05, 0x0D, 0x11, 0x15, 0x1B, 0x1F, 0x05,
+ 0x01, 0x31, 0x39, 0x3B, 0x07, 0x0F, 0x13, 0x17,
+};
+
+static const uint8_t huff_spec_a52_bits[] = {
+ 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6,
+ 0, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4,
+};
+
+static const uint16_t huff_spec_a52_codes[] = {
+ 0x09, 0x04, 0x00, 0x1E, 0x1A, 0x14, 0x0C, 0x06, 0x18, 0x16, 0x0E, 0x04,
+ 0x3A, 0x38, 0x22, 0x20, 0x00, 0x21, 0x23, 0x39, 0x3B, 0x05, 0x0F, 0x17,
+ 0x19, 0x07, 0x0D, 0x15, 0x1B, 0x1F, 0x01, 0x05,
+};
+
+static const uint8_t huff_spec_a53_bits[] = {
+ 3, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 7, 7, 7, 7,
+ 0, 7, 7, 7, 7, 6, 6, 5, 5, 5, 5, 5, 5, 4, 4, 4,
+};
+
+static const uint16_t huff_spec_a53_codes[] = {
+ 0x00, 0x0C, 0x08, 0x04, 0x1E, 0x16, 0x14, 0x06, 0x0C, 0x04, 0x38, 0x1E,
+ 0x76, 0x74, 0x3A, 0x38, 0x00, 0x39, 0x3B, 0x75, 0x77, 0x1F, 0x39, 0x05,
+ 0x0D, 0x07, 0x15, 0x17, 0x1F, 0x05, 0x09, 0x0D,
+};
+
+static const uint8_t huff_spec_a54_bits[] = {
+ 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 7, 7, 7, 8, 8,
+ 0, 8, 8, 7, 7, 7, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4,
+};
+
+static const uint16_t huff_spec_a54_codes[] = {
+ 0x02, 0x0E, 0x0A, 0x08, 0x02, 0x1A, 0x0E, 0x02, 0x00, 0x30, 0x18, 0x66,
+ 0x36, 0x34, 0xCA, 0xC8, 0x00, 0xC9, 0xCB, 0x35, 0x37, 0x67, 0x19, 0x31,
+ 0x01, 0x03, 0x0F, 0x1B, 0x03, 0x09, 0x0B, 0x0F,
+};
+
+static const uint8_t huff_spec_a61_bits[] = {
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7,
+ 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+ 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5,
+ 5, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6,
+};
+
+static const uint16_t huff_spec_a61_codes[] = {
+ 0x35, 0x30, 0x2A, 0x28, 0x24, 0x20, 0x18, 0x0E, 0x0C, 0x7E, 0x7C, 0x72,
+ 0x70, 0x68, 0x5E, 0x5C, 0x04, 0x0E, 0x08, 0x00, 0x3C, 0x3A, 0x36, 0x32,
+ 0x2C, 0x26, 0x22, 0x1A, 0x16, 0x14, 0x06, 0x04, 0x00, 0x05, 0x07, 0x15,
+ 0x17, 0x1B, 0x23, 0x27, 0x2D, 0x33, 0x37, 0x3B, 0x3D, 0x01, 0x09, 0x0F,
+ 0x05, 0x5D, 0x5F, 0x69, 0x71, 0x73, 0x7D, 0x7F, 0x0D, 0x0F, 0x19, 0x21,
+ 0x25, 0x29, 0x2B, 0x31,
+};
+
+static const uint8_t huff_spec_a62_bits[] = {
+ 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7,
+ 0, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5,
+};
+
+static const uint16_t huff_spec_a62_codes[] = {
+ 0x14, 0x0E, 0x08, 0x04, 0x02, 0x3E, 0x3C, 0x38, 0x34, 0x30, 0x2A, 0x24,
+ 0x1A, 0x18, 0x0E, 0x02, 0x32, 0x36, 0x2C, 0x26, 0x20, 0x16, 0x0C, 0x00,
+ 0x76, 0x74, 0x5E, 0x5C, 0x46, 0x44, 0x2A, 0x28, 0x00, 0x29, 0x2B, 0x45,
+ 0x47, 0x5D, 0x5F, 0x75, 0x77, 0x01, 0x0D, 0x17, 0x21, 0x27, 0x2D, 0x37,
+ 0x33, 0x03, 0x0F, 0x19, 0x1B, 0x25, 0x2B, 0x31, 0x35, 0x39, 0x3D, 0x3F,
+ 0x03, 0x05, 0x09, 0x0F,
+};
+
+static const uint8_t huff_spec_a63_bits[] = {
+ 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8,
+ 0, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5,
+};
+
+static const uint16_t huff_spec_a63_codes[] = {
+ 0x00, 0x1C, 0x18, 0x14, 0x10, 0x0A, 0x08, 0x02, 0x3E, 0x36, 0x2E, 0x2C,
+ 0x24, 0x1C, 0x0E, 0x08, 0x1E, 0x1A, 0x0C, 0x7A, 0x6A, 0x68, 0x4C, 0x32,
+ 0x16, 0x14, 0xF2, 0xF0, 0x9E, 0x9C, 0x62, 0x60, 0x00, 0x61, 0x63, 0x9D,
+ 0x9F, 0xF1, 0xF3, 0x15, 0x17, 0x33, 0x4D, 0x69, 0x6B, 0x7B, 0x0D, 0x1B,
+ 0x1F, 0x09, 0x0F, 0x1D, 0x25, 0x2D, 0x2F, 0x37, 0x3F, 0x03, 0x09, 0x0B,
+ 0x11, 0x15, 0x19, 0x1D,
+};
+
+static const uint8_t huff_spec_a64_bits[] = {
+ 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 7,
+ 6, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9,
+ 0, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7,
+ 6, 7, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 4,
+};
+
+static const uint16_t huff_spec_a64_codes[] = {
+ 0x006, 0x002, 0x01C, 0x01A, 0x016, 0x012, 0x00E, 0x00A, 0x002, 0x03E,
+ 0x032, 0x02A, 0x022, 0x020, 0x010, 0x07A, 0x000, 0x078, 0x060, 0x050,
+ 0x024, 0x006, 0x0C6, 0x0C4, 0x0A4, 0x04E, 0x00A, 0x008, 0x14E, 0x14C,
+ 0x09A, 0x098, 0x000, 0x099, 0x09B, 0x14D, 0x14F, 0x009, 0x00B, 0x04F,
+ 0x0A5, 0x0C5, 0x0C7, 0x007, 0x025, 0x051, 0x061, 0x079, 0x001, 0x07B,
+ 0x011, 0x021, 0x023, 0x02B, 0x033, 0x03F, 0x003, 0x00B, 0x00F, 0x013,
+ 0x017, 0x01B, 0x01D, 0x003,
+};
+
+static const uint8_t huff_spec_a71_bits[] = {
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6,
+ 6, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+};
+
+static const uint16_t huff_spec_a71_codes[] = {
+ 0x6C, 0x66, 0x62, 0x5C, 0x56, 0x50, 0x52, 0x4E, 0x48, 0x3E, 0x36, 0x34, 0x2A, 0x26, 0x1E, 0x16,
+ 0x0E, 0x08, 0x00, 0xF6, 0xF4, 0xEE, 0xEC, 0xE2, 0xE0, 0xDA, 0xD2, 0xD0, 0xBE, 0xBC, 0xB2, 0xB0,
+ 0x0C, 0x20, 0x1C, 0x16, 0x10, 0x08, 0x02, 0x7E, 0x7C, 0x78, 0x74, 0x72, 0x6E, 0x6A, 0x64, 0x60,
+ 0x5A, 0x54, 0x4C, 0x4A, 0x46, 0x44, 0x3C, 0x32, 0x30, 0x28, 0x24, 0x1C, 0x14, 0x0C, 0x0A, 0x02,
+ 0x00, 0x03, 0x0B, 0x0D, 0x15, 0x1D, 0x25, 0x29, 0x31, 0x33, 0x3D, 0x45, 0x47, 0x4B, 0x4D, 0x55,
+ 0x5B, 0x61, 0x65, 0x6B, 0x6F, 0x73, 0x75, 0x79, 0x7D, 0x7F, 0x03, 0x09, 0x11, 0x17, 0x1D, 0x21,
+ 0x0D, 0xB1, 0xB3, 0xBD, 0xBF, 0xD1, 0xD3, 0xDB, 0xE1, 0xE3, 0xED, 0xEF, 0xF5, 0xF7, 0x01, 0x09,
+ 0x0F, 0x17, 0x1F, 0x27, 0x2B, 0x35, 0x37, 0x3F, 0x49, 0x4F, 0x53, 0x51, 0x57, 0x5D, 0x63, 0x67,
+};
+
+static const uint8_t huff_spec_a72_bits[] = {
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6,
+};
+
+static const uint16_t huff_spec_a72_codes[] = {
+ 0x2A, 0x24, 0x1C, 0x18, 0x12, 0x0E, 0x0A, 0x06, 0x02, 0x7E, 0x7C, 0x7A, 0x76, 0x72, 0x70, 0x6A,
+ 0x68, 0x62, 0x5C, 0x5A, 0x52, 0x4E, 0x46, 0x42, 0x3C, 0x34, 0x2A, 0x28, 0x20, 0x12, 0x10, 0x08,
+ 0x66, 0x74, 0x6C, 0x64, 0x5E, 0x58, 0x50, 0x44, 0x40, 0x36, 0x2C, 0x22, 0x1A, 0x0A, 0x02, 0x00,
+ 0xF2, 0xF0, 0xDE, 0xDC, 0xC2, 0xC0, 0xAE, 0xAC, 0x9A, 0x98, 0x7E, 0x7C, 0x5E, 0x5C, 0x32, 0x30,
+ 0x00, 0x31, 0x33, 0x5D, 0x5F, 0x7D, 0x7F, 0x99, 0x9B, 0xAD, 0xAF, 0xC1, 0xC3, 0xDD, 0xDF, 0xF1,
+ 0xF3, 0x01, 0x03, 0x0B, 0x1B, 0x23, 0x2D, 0x37, 0x41, 0x45, 0x51, 0x59, 0x5F, 0x65, 0x6D, 0x75,
+ 0x67, 0x09, 0x11, 0x13, 0x21, 0x29, 0x2B, 0x35, 0x3D, 0x43, 0x47, 0x4F, 0x53, 0x5B, 0x5D, 0x63,
+ 0x69, 0x6B, 0x71, 0x73, 0x77, 0x7B, 0x7D, 0x7F, 0x03, 0x07, 0x0B, 0x0F, 0x13, 0x19, 0x1D, 0x25,
+};
+
+static const uint8_t huff_spec_a73_bits[] = {
+ 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+};
+
+static const uint16_t huff_spec_a73_codes[] = {
+ 0x003, 0x03E, 0x038, 0x034, 0x030, 0x02C, 0x028, 0x024, 0x020, 0x01C, 0x016, 0x014,
+ 0x00E, 0x00A, 0x004, 0x000, 0x07A, 0x076, 0x06E, 0x06C, 0x064, 0x05E, 0x056, 0x04E,
+ 0x04C, 0x044, 0x036, 0x030, 0x022, 0x018, 0x012, 0x004, 0x03C, 0x03E, 0x032, 0x024,
+ 0x020, 0x010, 0x0F2, 0x0F0, 0x0E8, 0x0CE, 0x0BA, 0x0B8, 0x0A8, 0x08C, 0x06A, 0x04E,
+ 0x04C, 0x034, 0x00E, 0x00C, 0x1D6, 0x1D4, 0x19A, 0x198, 0x156, 0x154, 0x11E, 0x11C,
+ 0x0D2, 0x0D0, 0x06E, 0x06C, 0x000, 0x06D, 0x06F, 0x0D1, 0x0D3, 0x11D, 0x11F, 0x155,
+ 0x157, 0x199, 0x19B, 0x1D5, 0x1D7, 0x00D, 0x00F, 0x035, 0x04D, 0x04F, 0x06B, 0x08D,
+ 0x0A9, 0x0B9, 0x0BB, 0x0CF, 0x0E9, 0x0F1, 0x0F3, 0x011, 0x021, 0x025, 0x033, 0x03F,
+ 0x03D, 0x005, 0x013, 0x019, 0x023, 0x031, 0x037, 0x045, 0x04D, 0x04F, 0x057, 0x05F,
+ 0x065, 0x06D, 0x06F, 0x077, 0x07B, 0x001, 0x005, 0x00B, 0x00F, 0x015, 0x017, 0x01D,
+ 0x021, 0x025, 0x029, 0x02D, 0x031, 0x035, 0x039, 0x03F,
+};
+
+static const uint8_t huff_spec_a74_bits[] = {
+ 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8,
+ 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 7, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5,
+};
+
+static const uint16_t huff_spec_a74_codes[] = {
+ 0x00D, 0x00A, 0x004, 0x000, 0x03A, 0x036, 0x032, 0x030, 0x02C, 0x028, 0x026, 0x022,
+ 0x01E, 0x018, 0x012, 0x00E, 0x006, 0x07E, 0x07A, 0x070, 0x06A, 0x05E, 0x056, 0x054,
+ 0x048, 0x040, 0x038, 0x022, 0x01A, 0x00A, 0x0F8, 0x0E6, 0x008, 0x0FA, 0x0F0, 0x0D2,
+ 0x0BA, 0x0B8, 0x094, 0x084, 0x074, 0x042, 0x032, 0x1E6, 0x1CA, 0x1C8, 0x1A2, 0x12E,
+ 0x10E, 0x10C, 0x0EC, 0x082, 0x062, 0x060, 0x3CA, 0x3C8, 0x342, 0x340, 0x25A, 0x258,
+ 0x1DE, 0x1DC, 0x102, 0x100, 0x000, 0x101, 0x103, 0x1DD, 0x1DF, 0x259, 0x25B, 0x341,
+ 0x343, 0x3C9, 0x3CB, 0x061, 0x063, 0x083, 0x0ED, 0x10D, 0x10F, 0x12F, 0x1A3, 0x1C9,
+ 0x1CB, 0x1E7, 0x033, 0x043, 0x075, 0x085, 0x095, 0x0B9, 0x0BB, 0x0D3, 0x0F1, 0x0FB,
+ 0x009, 0x0E7, 0x0F9, 0x00B, 0x01B, 0x023, 0x039, 0x041, 0x049, 0x055, 0x057, 0x05F,
+ 0x06B, 0x071, 0x07B, 0x07F, 0x007, 0x00F, 0x013, 0x019, 0x01F, 0x023, 0x027, 0x029,
+ 0x02D, 0x031, 0x033, 0x037, 0x03B, 0x001, 0x005, 0x00B,
+};
+
+static const uint8_t huff_spec_b22_bits[] = {
+ 0, 4, 0, 4, 4, 5, 0, 5, 0, 0, 0, 0, 4, 5, 0, 5,
+ 4, 7, 0, 6, 6, 9, 0, 7, 0, 0, 0, 0, 6, 9, 0, 7,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 4, 6, 0, 7, 6, 7, 0, 9, 0, 0, 0, 0, 6, 7, 0, 9,
+ 4, 8, 0, 8, 8, 10, 0, 10, 0, 0, 0, 0, 6, 9, 0, 9,
+ 5, 10, 0, 9, 9, 10, 0, 10, 0, 0, 0, 0, 7, 10, 0, 10,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 6, 9, 0, 10, 9, 10, 0, 10, 0, 0, 0, 0, 7, 10, 0, 10,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 4, 8, 0, 8, 6, 9, 0, 9, 0, 0, 0, 0, 8, 10, 0, 10,
+ 6, 10, 0, 9, 7, 10, 0, 10, 0, 0, 0, 0, 9, 10, 0, 10,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5, 9, 0, 10, 7, 10, 0, 10, 0, 0, 0, 0, 9, 10, 0, 10,
+};
+
+static const uint16_t huff_spec_b22_codes[] = {
+ 0x000, 0x00E, 0x000, 0x00F, 0x008, 0x006, 0x000, 0x00B, 0x000, 0x000, 0x000, 0x000,
+ 0x009, 0x00A, 0x000, 0x007, 0x006, 0x00A, 0x000, 0x029, 0x006, 0x158, 0x000, 0x023,
+ 0x000, 0x000, 0x000, 0x000, 0x013, 0x174, 0x000, 0x021, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x007, 0x028, 0x000, 0x00B, 0x012, 0x020, 0x000, 0x175, 0x000, 0x000, 0x000, 0x000,
+ 0x007, 0x022, 0x000, 0x159, 0x00C, 0x0BC, 0x000, 0x0BF, 0x022, 0x2B8, 0x000, 0x2BB,
+ 0x000, 0x000, 0x000, 0x000, 0x00B, 0x170, 0x000, 0x15B, 0x000, 0x04E, 0x000, 0x15F,
+ 0x042, 0x04A, 0x000, 0x041, 0x000, 0x000, 0x000, 0x000, 0x055, 0x044, 0x000, 0x04D,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x02D, 0x172, 0x000, 0x2ED, 0x040, 0x042, 0x000, 0x047,
+ 0x000, 0x000, 0x000, 0x000, 0x013, 0x2EE, 0x000, 0x049, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x00D, 0x0BE, 0x000, 0x0BD, 0x00A, 0x15A, 0x000, 0x171, 0x000, 0x000, 0x000, 0x000,
+ 0x023, 0x2BA, 0x000, 0x2B9, 0x02C, 0x2EC, 0x000, 0x173, 0x012, 0x048, 0x000, 0x2EF,
+ 0x000, 0x000, 0x000, 0x000, 0x041, 0x046, 0x000, 0x043, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x001, 0x15E, 0x000, 0x04F, 0x054, 0x04C, 0x000, 0x045, 0x000, 0x000, 0x000, 0x000,
+ 0x043, 0x040, 0x000, 0x04B,
+};
+
+static const uint8_t huff_spec_b23_bits[] = {
+ 2, 4, 0, 4, 4, 6, 0, 6, 0, 0, 0, 0, 4, 6, 0, 6,
+ 4, 9, 0, 7, 7, 9, 0, 8, 0, 0, 0, 0, 7, 9, 0, 8,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 4, 7, 0, 9, 7, 8, 0, 9, 0, 0, 0, 0, 7, 8, 0, 9,
+ 4, 8, 0, 8, 9, 10, 0, 10, 0, 0, 0, 0, 7, 10, 0, 10,
+ 7, 10, 0, 10, 10, 10, 0, 10, 0, 0, 0, 0, 9, 10, 0, 10,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 7, 10, 0, 10, 10, 10, 0, 10, 0, 0, 0, 0, 8, 10, 0, 10,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 4, 8, 0, 8, 7, 10, 0, 10, 0, 0, 0, 0, 9, 10, 0, 10,
+ 7, 10, 0, 10, 8, 10, 0, 10, 0, 0, 0, 0, 10, 10, 0, 10,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 7, 10, 0, 10, 9, 10, 0, 10, 0, 0, 0, 0, 10, 10, 0, 10,
+};
+
+static const uint16_t huff_spec_b23_codes[] = {
+ 0x003, 0x008, 0x000, 0x009, 0x002, 0x018, 0x000, 0x01B, 0x000, 0x000, 0x000, 0x000,
+ 0x003, 0x01A, 0x000, 0x019, 0x000, 0x17C, 0x000, 0x055, 0x056, 0x0E8, 0x000, 0x07D,
+ 0x000, 0x000, 0x000, 0x000, 0x059, 0x0F6, 0x000, 0x07F, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x001, 0x054, 0x000, 0x17D, 0x058, 0x07E, 0x000, 0x0F7, 0x000, 0x000, 0x000, 0x000,
+ 0x057, 0x07C, 0x000, 0x0E9, 0x004, 0x0A2, 0x000, 0x0A1, 0x17A, 0x1DA, 0x000, 0x1D9,
+ 0x000, 0x000, 0x000, 0x000, 0x053, 0x1E8, 0x000, 0x2F3, 0x05C, 0x1D6, 0x000, 0x1E7,
+ 0x1EA, 0x1E2, 0x000, 0x1CF, 0x000, 0x000, 0x000, 0x000, 0x17F, 0x1CA, 0x000, 0x1DD,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x05B, 0x2F0, 0x000, 0x1DF, 0x1E4, 0x1CC, 0x000, 0x1D5,
+ 0x000, 0x000, 0x000, 0x000, 0x071, 0x1E0, 0x000, 0x1C9, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x005, 0x0A0, 0x000, 0x0A3, 0x052, 0x2F2, 0x000, 0x1E9, 0x000, 0x000, 0x000, 0x000,
+ 0x17B, 0x1D8, 0x000, 0x1DB, 0x05A, 0x1DE, 0x000, 0x2F1, 0x070, 0x1C8, 0x000, 0x1E1,
+ 0x000, 0x000, 0x000, 0x000, 0x1E5, 0x1D4, 0x000, 0x1CD, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x05D, 0x1E6, 0x000, 0x1D7, 0x17E, 0x1DC, 0x000, 0x1CB, 0x000, 0x000, 0x000, 0x000,
+ 0x1EB, 0x1CE, 0x000, 0x1E3,
+};
+
+static const uint8_t huff_spec_b24_bits[] = {
+ 1, 4, 0, 4, 5, 7, 0, 7, 0, 0, 0, 0, 5, 7, 0, 7,
+ 5, 9, 0, 7, 8, 10, 0, 9, 0, 0, 0, 0, 7, 10, 0, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5, 7, 0, 9, 7, 9, 0, 10, 0, 0, 0, 0, 8, 9, 0, 10,
+ 5, 9, 0, 8, 9, 10, 0, 10, 0, 0, 0, 0, 7, 10, 0, 10,
+ 7, 10, 0, 10, 10, 10, 0, 10, 0, 0, 0, 0, 10, 10, 0, 10,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 7, 10, 0, 10, 10, 10, 0, 10, 0, 0, 0, 0, 10, 10, 0, 10,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5, 8, 0, 9, 7, 10, 0, 10, 0, 0, 0, 0, 9, 10, 0, 10,
+ 7, 10, 0, 10, 10, 10, 0, 10, 0, 0, 0, 0, 10, 10, 0, 10,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 7, 10, 0, 10, 10, 10, 0, 10, 0, 0, 0, 0, 10, 10, 0, 10,
+};
+
+static const uint16_t huff_spec_b24_codes[] = {
+ 0x001, 0x000, 0x000, 0x001, 0x00A, 0x01C, 0x000, 0x033, 0x000, 0x000, 0x000, 0x000,
+ 0x00B, 0x032, 0x000, 0x01D, 0x008, 0x0D8, 0x000, 0x031, 0x06E, 0x0FA, 0x000, 0x0D7,
+ 0x000, 0x000, 0x000, 0x000, 0x011, 0x0F4, 0x000, 0x0D5, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x009, 0x030, 0x000, 0x0D9, 0x010, 0x0D4, 0x000, 0x0F5, 0x000, 0x000, 0x000, 0x000,
+ 0x06F, 0x0D6, 0x000, 0x0FB, 0x00E, 0x0DA, 0x000, 0x025, 0x0D2, 0x0D4, 0x000, 0x0DB,
+ 0x000, 0x000, 0x000, 0x000, 0x017, 0x0FE, 0x000, 0x0FD, 0x014, 0x0DC, 0x000, 0x0F9,
+ 0x0F2, 0x0D6, 0x000, 0x09B, 0x000, 0x000, 0x000, 0x000, 0x1A3, 0x09C, 0x000, 0x0D3,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x019, 0x0F6, 0x000, 0x0D9, 0x0F0, 0x09E, 0x000, 0x0D1,
+ 0x000, 0x000, 0x000, 0x000, 0x1A1, 0x0DE, 0x000, 0x099, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x00F, 0x024, 0x000, 0x0DB, 0x016, 0x0FC, 0x000, 0x0FF, 0x000, 0x000, 0x000, 0x000,
+ 0x0D3, 0x0DA, 0x000, 0x0D5, 0x018, 0x0D8, 0x000, 0x0F7, 0x1A0, 0x098, 0x000, 0x0DF,
+ 0x000, 0x000, 0x000, 0x000, 0x0F1, 0x0D0, 0x000, 0x09F, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x015, 0x0F8, 0x000, 0x0DD, 0x1A2, 0x0D2, 0x000, 0x09D, 0x000, 0x000, 0x000, 0x000,
+ 0x0F3, 0x09A, 0x000, 0x0D7
+};
+
+static const uint8_t huff_spec_b32_bits[] = {
+ 2, 4, 5, 6, 0, 6, 5, 4, 5, 6, 6, 7, 0, 6, 5, 6,
+ 5, 6, 7, 7, 0, 8, 7, 6, 6, 7, 8, 9, 0, 9, 8, 7,
+ 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 8, 9, 0, 9, 8, 7,
+ 5, 6, 7, 8, 0, 7, 7, 6, 5, 6, 5, 6, 0, 7, 6, 6,
+};
+
+static const uint16_t huff_spec_b32_codes[] = {
+ 0x001, 0x002, 0x01E, 0x02A, 0x000, 0x02B, 0x01F, 0x003, 0x016, 0x020, 0x03A, 0x064,
+ 0x000, 0x005, 0x001, 0x023, 0x01A, 0x026, 0x070, 0x00C, 0x000, 0x0CF, 0x073, 0x031,
+ 0x024, 0x00E, 0x0CC, 0x146, 0x000, 0x145, 0x0A1, 0x053, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x025, 0x052, 0x0A0, 0x144, 0x000, 0x147, 0x0CD, 0x00F,
+ 0x01B, 0x030, 0x072, 0x0CE, 0x000, 0x00D, 0x071, 0x027, 0x017, 0x022, 0x000, 0x004,
+ 0x000, 0x065, 0x03B, 0x021,
+};
+
+static const uint8_t huff_spec_b33_bits[] = {
+ 2, 4, 5, 7, 0, 7, 5, 4, 4, 5, 6, 8, 0, 7, 6, 5,
+ 5, 6, 7, 9, 0, 8, 7, 6, 7, 8, 9, 10, 0, 10, 9, 8,
+ 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 0, 10, 9, 8,
+ 5, 6, 7, 8, 0, 9, 7, 6, 4, 5, 6, 7, 0, 8, 6, 5,
+};
+
+static const uint16_t huff_spec_b33_codes[] = {
+ 0x003, 0x008, 0x014, 0x05E, 0x000, 0x05F, 0x015, 0x009, 0x004, 0x002, 0x01C, 0x0BA,
+ 0x000, 0x011, 0x01F, 0x001, 0x00C, 0x00C, 0x014, 0x166, 0x000, 0x02D, 0x013, 0x00F,
+ 0x05A, 0x0B0, 0x05E, 0x0B8, 0x000, 0x0BB, 0x165, 0x0B9, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x05B, 0x0B8, 0x164, 0x0BA, 0x000, 0x0B9, 0x05F, 0x0B1,
+ 0x00D, 0x00E, 0x012, 0x02C, 0x000, 0x167, 0x015, 0x00D, 0x005, 0x000, 0x01E, 0x010,
+ 0x000, 0x0BB, 0x01D, 0x003
+};
+
+static const uint8_t huff_spec_b34_bits[] = {
+ 1, 4, 6, 8, 0, 8, 6, 4, 4, 6, 7, 9, 0, 8, 7, 6,
+ 6, 7, 8, 10, 0, 10, 8, 7, 8, 9, 10, 10, 0, 10, 10, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 8, 9, 10, 10, 0, 10, 10, 9,
+ 6, 7, 8, 10, 0, 10, 8, 7, 4, 6, 7, 8, 0, 9, 7, 6,
+};
+
+static const uint16_t huff_spec_b34_codes[] = {
+ 0x000, 0x00A, 0x038, 0x0EE, 0x000, 0x0EF, 0x039, 0x00B, 0x008, 0x03C, 0x06E, 0x1D8,
+ 0x000, 0x0C1, 0x075, 0x03F, 0x032, 0x068, 0x0C4, 0x358, 0x000, 0x30F, 0x0C7, 0x06D,
+ 0x0D4, 0x1AE, 0x30C, 0x308, 0x000, 0x30B, 0x35B, 0x1DB, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x0D5, 0x1DA, 0x35A, 0x30A, 0x000, 0x309, 0x30D, 0x1AF,
+ 0x033, 0x06C, 0x0C6, 0x30E, 0x000, 0x359, 0x0C5, 0x069, 0x009, 0x03E, 0x074, 0x0C0,
+ 0x000, 0x1D9, 0x06F, 0x03D,
+};
+
+static const uint8_t huff_spec_b42_bits[] = {
+ 4, 5, 6, 8, 6, 7, 8, 8, 0, 8, 8, 7, 6, 8, 6, 5,
+ 5, 6, 7, 8, 7, 7, 8, 9, 0, 8, 8, 7, 7, 8, 7, 6,
+ 7, 7, 8, 9, 7, 8, 9, 9, 0, 9, 9, 8, 7, 9, 8, 7,
+ 8, 9, 9, 10, 8, 8, 9, 10, 0, 10, 9, 8, 8, 10, 9, 8,
+ 6, 7, 8, 8, 9, 9, 10, 10, 0, 10, 10, 9, 9, 8, 8, 7,
+ 7, 7, 8, 9, 9, 10, 10, 10, 0, 10, 10, 10, 9, 9, 8, 7,
+ 8, 8, 9, 9, 10, 10, 10, 10, 0, 10, 10, 10, 10, 9, 9, 8,
+ 8, 9, 9, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 8, 9, 9, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 9, 9,
+ 8, 8, 9, 9, 10, 10, 10, 10, 0, 10, 10, 10, 10, 9, 9, 8,
+ 7, 7, 8, 9, 9, 10, 10, 10, 0, 10, 10, 10, 9, 9, 8, 7,
+ 6, 7, 8, 8, 9, 9, 10, 10, 0, 10, 10, 9, 9, 8, 8, 7,
+ 8, 8, 9, 10, 8, 8, 9, 10, 0, 10, 9, 8, 8, 10, 9, 9,
+ 7, 7, 8, 9, 7, 8, 9, 9, 0, 9, 9, 8, 7, 9, 8, 7,
+ 5, 6, 7, 8, 7, 7, 8, 8, 0, 9, 8, 7, 7, 8, 7, 6,
+};
+
+static const uint16_t huff_spec_b42_codes[] = {
+ 0x00E, 0x018, 0x010, 0x0F0, 0x024, 0x05A, 0x0F6, 0x078, 0x000, 0x079, 0x0F7, 0x05B,
+ 0x025, 0x0F1, 0x011, 0x019, 0x00C, 0x014, 0x01C, 0x036, 0x05C, 0x012, 0x09E, 0x1E4,
+ 0x000, 0x00B, 0x0A9, 0x03B, 0x05F, 0x071, 0x019, 0x017, 0x06E, 0x000, 0x03E, 0x114,
+ 0x002, 0x0B0, 0x1AA, 0x07A, 0x000, 0x099, 0x1E7, 0x0B3, 0x00B, 0x131, 0x07F, 0x00D,
+ 0x0D8, 0x1FE, 0x112, 0x22E, 0x086, 0x010, 0x134, 0x35C, 0x000, 0x35F, 0x133, 0x013,
+ 0x081, 0x22D, 0x119, 0x07B, 0x00A, 0x050, 0x0F8, 0x04E, 0x1B4, 0x154, 0x3EC, 0x0D2,
+ 0x000, 0x0D7, 0x3D7, 0x137, 0x1FD, 0x073, 0x0FD, 0x057, 0x052, 0x010, 0x08E, 0x1E8,
+ 0x11A, 0x3EE, 0x0F2, 0x03C, 0x000, 0x03F, 0x0F1, 0x3D5, 0x111, 0x1F5, 0x09D, 0x025,
+ 0x0D2, 0x082, 0x1A0, 0x0F8, 0x36E, 0x0D4, 0x072, 0x03A, 0x000, 0x027, 0x071, 0x07D,
+ 0x36D, 0x0FB, 0x1AD, 0x085, 0x00C, 0x1A8, 0x03C, 0x346, 0x0D0, 0x076, 0x024, 0x020,
+ 0x000, 0x023, 0x039, 0x075, 0x07F, 0x345, 0x09B, 0x157, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x00D, 0x156, 0x09A, 0x344, 0x07E, 0x074, 0x038, 0x022, 0x000, 0x021, 0x025, 0x077,
+ 0x0D1, 0x347, 0x03D, 0x1A9, 0x0D3, 0x084, 0x1AC, 0x0FA, 0x36C, 0x07C, 0x070, 0x026,
+ 0x000, 0x03B, 0x073, 0x0D5, 0x36F, 0x0F9, 0x1A1, 0x083, 0x053, 0x024, 0x09C, 0x1F4,
+ 0x110, 0x3D4, 0x0F0, 0x03E, 0x000, 0x03D, 0x0F3, 0x3EF, 0x11B, 0x1E9, 0x08F, 0x011,
+ 0x00B, 0x056, 0x0FC, 0x072, 0x1FC, 0x136, 0x3D6, 0x0D6, 0x000, 0x0D3, 0x3ED, 0x155,
+ 0x1B5, 0x04F, 0x0F9, 0x051, 0x0D9, 0x07A, 0x118, 0x22C, 0x080, 0x012, 0x132, 0x35E,
+ 0x000, 0x35D, 0x135, 0x011, 0x087, 0x22F, 0x113, 0x1FF, 0x06F, 0x00C, 0x07E, 0x130,
+ 0x00A, 0x0B2, 0x1E6, 0x098, 0x000, 0x07B, 0x1AB, 0x0B1, 0x003, 0x115, 0x03F, 0x001,
+ 0x00D, 0x016, 0x018, 0x070, 0x05E, 0x03A, 0x0A8, 0x00A, 0x000, 0x1E5, 0x09F, 0x013,
+ 0x05D, 0x037, 0x01D, 0x015,
+};
+
+static const uint8_t huff_spec_b43_bits[] = {
+ 2, 5, 6, 7, 7, 8, 8, 9, 0, 9, 8, 8, 7, 7, 6, 5,
+ 5, 6, 7, 8, 7, 8, 9, 10, 0, 10, 9, 8, 7, 8, 7, 6,
+ 6, 7, 8, 9, 8, 9, 10, 10, 0, 10, 10, 9, 8, 9, 8, 7,
+ 7, 8, 9, 10, 9, 9, 10, 10, 0, 10, 10, 10, 9, 10, 9, 8,
+ 7, 8, 8, 9, 10, 10, 10, 10, 0, 10, 10, 10, 10, 9, 8, 7,
+ 8, 8, 9, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 9, 8,
+ 9, 9, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 9,
+ 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10,
+ 9, 9, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 9,
+ 8, 8, 9, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 9, 8,
+ 7, 7, 8, 9, 10, 10, 10, 10, 0, 10, 10, 10, 10, 9, 8, 8,
+ 7, 8, 9, 10, 9, 10, 10, 10, 0, 10, 10, 9, 9, 10, 9, 8,
+ 6, 7, 8, 9, 8, 9, 10, 10, 0, 10, 10, 9, 8, 9, 8, 7,
+ 5, 6, 7, 8, 7, 8, 9, 10, 0, 10, 9, 8, 7, 8, 7, 6,
+};
+
+static const uint16_t huff_spec_b43_codes[] = {
+ 0x001, 0x01E, 0x022, 0x018, 0x064, 0x0EC, 0x008, 0x100, 0x000, 0x101, 0x009, 0x0ED,
+ 0x065, 0x019, 0x023, 0x01F, 0x01A, 0x030, 0x056, 0x09A, 0x00A, 0x090, 0x12C, 0x0A6,
+ 0x000, 0x0A9, 0x12F, 0x093, 0x00F, 0x09F, 0x059, 0x039, 0x00E, 0x054, 0x0BC, 0x19E,
+ 0x082, 0x176, 0x0AC, 0x088, 0x000, 0x08B, 0x0AF, 0x19D, 0x095, 0x1D1, 0x0BF, 0x051,
+ 0x002, 0x098, 0x1D4, 0x0B8, 0x170, 0x046, 0x090, 0x060, 0x000, 0x067, 0x095, 0x0BD,
+ 0x173, 0x0B5, 0x1D3, 0x09D, 0x052, 0x0EE, 0x034, 0x174, 0x0BA, 0x09C, 0x080, 0x044,
+ 0x000, 0x047, 0x06D, 0x099, 0x0BF, 0x16F, 0x085, 0x001, 0x0CC, 0x036, 0x16C, 0x0B0,
+ 0x09A, 0x084, 0x04E, 0x03E, 0x000, 0x037, 0x04B, 0x06B, 0x0A1, 0x0B3, 0x16B, 0x087,
+ 0x1D6, 0x102, 0x0A4, 0x092, 0x068, 0x04C, 0x034, 0x030, 0x000, 0x02D, 0x03D, 0x049,
+ 0x083, 0x097, 0x0AB, 0x169, 0x0B6, 0x09E, 0x06E, 0x064, 0x040, 0x038, 0x02E, 0x02A,
+ 0x000, 0x029, 0x033, 0x03B, 0x043, 0x063, 0x087, 0x0A3, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x0B7, 0x0A2, 0x086, 0x062, 0x042, 0x03A, 0x032, 0x028, 0x000, 0x02B, 0x02F, 0x039,
+ 0x041, 0x065, 0x06F, 0x09F, 0x1D7, 0x168, 0x0AA, 0x096, 0x082, 0x048, 0x03C, 0x02C,
+ 0x000, 0x031, 0x035, 0x04D, 0x069, 0x093, 0x0A5, 0x103, 0x0CD, 0x086, 0x16A, 0x0B2,
+ 0x0A0, 0x06A, 0x04A, 0x036, 0x000, 0x03F, 0x04F, 0x085, 0x09B, 0x0B1, 0x16D, 0x037,
+ 0x053, 0x000, 0x084, 0x16E, 0x0BE, 0x098, 0x06C, 0x046, 0x000, 0x045, 0x081, 0x09D,
+ 0x0BB, 0x175, 0x035, 0x0EF, 0x003, 0x09C, 0x1D2, 0x0B4, 0x172, 0x0BC, 0x094, 0x066,
+ 0x000, 0x061, 0x091, 0x047, 0x171, 0x0B9, 0x1D5, 0x099, 0x00F, 0x050, 0x0BE, 0x1D0,
+ 0x094, 0x19C, 0x0AE, 0x08A, 0x000, 0x089, 0x0AD, 0x177, 0x083, 0x19F, 0x0BD, 0x055,
+ 0x01B, 0x038, 0x058, 0x09E, 0x00E, 0x092, 0x12E, 0x0A8, 0x000, 0x0A7, 0x12D, 0x091,
+ 0x00B, 0x09B, 0x057, 0x031,
+};
+
+static const uint8_t huff_spec_b44_bits[] = {
+ 2, 4, 6, 7, 7, 8, 10, 10, 0, 10, 10, 8, 7, 7, 6, 4,
+ 5, 5, 7, 8, 8, 10, 10, 10, 0, 10, 10, 10, 8, 8, 7, 5,
+ 6, 7, 8, 9, 9, 10, 10, 10, 0, 10, 10, 10, 10, 9, 8, 7,
+ 8, 8, 9, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 8,
+ 8, 8, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 8,
+ 9, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10,
+ 9, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10,
+ 8, 8, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 8,
+ 8, 8, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 9, 8,
+ 6, 7, 8, 9, 10, 10, 10, 10, 0, 10, 10, 10, 9, 9, 8, 7,
+ 5, 5, 7, 8, 8, 10, 10, 10, 0, 10, 10, 10, 8, 8, 7, 5,
+};
+
+static const uint16_t huff_spec_b44_codes[] = {
+ 0x002, 0x002, 0x030, 0x000, 0x002, 0x00C, 0x1D2, 0x1AE, 0x000, 0x1AF, 0x1D3, 0x00D,
+ 0x003, 0x001, 0x031, 0x003, 0x01E, 0x002, 0x070, 0x0C8, 0x07E, 0x1E8, 0x1C0, 0x176,
+ 0x000, 0x17F, 0x1C3, 0x1EB, 0x0CF, 0x0D3, 0x073, 0x009, 0x018, 0x06A, 0x0EC, 0x1DE,
+ 0x1A2, 0x1CA, 0x1AA, 0x164, 0x000, 0x16D, 0x1AD, 0x1D1, 0x1EF, 0x1DD, 0x0EB, 0x06D,
+ 0x0E8, 0x0CA, 0x1BE, 0x1CE, 0x1DA, 0x1B6, 0x170, 0x154, 0x000, 0x153, 0x173, 0x1B1,
+ 0x1D7, 0x1D5, 0x343, 0x0CD, 0x0DC, 0x078, 0x340, 0x1CC, 0x1BA, 0x1A8, 0x156, 0x148,
+ 0x000, 0x145, 0x15F, 0x1A1, 0x1BD, 0x1D9, 0x1ED, 0x07D, 0x1BC, 0x1DC, 0x1C4, 0x1B2,
+ 0x17C, 0x15A, 0x14A, 0x03A, 0x000, 0x039, 0x147, 0x16B, 0x17B, 0x1B5, 0x1C9, 0x1DF,
+ 0x1C6, 0x1B8, 0x1A2, 0x168, 0x160, 0x14C, 0x02E, 0x024, 0x000, 0x027, 0x03D, 0x151,
+ 0x15D, 0x16F, 0x1A7, 0x1BF, 0x1A4, 0x174, 0x162, 0x14E, 0x140, 0x02C, 0x02A, 0x022,
+ 0x000, 0x021, 0x029, 0x03F, 0x143, 0x159, 0x167, 0x179, 0x000, 0x000, 0x000, 0x000,
+ 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
+ 0x1A5, 0x178, 0x166, 0x158, 0x142, 0x03E, 0x028, 0x020, 0x000, 0x023, 0x02B, 0x02D,
+ 0x141, 0x14F, 0x163, 0x175, 0x1C7, 0x1BE, 0x1A6, 0x16E, 0x15C, 0x150, 0x03C, 0x026,
+ 0x000, 0x025, 0x02F, 0x14D, 0x161, 0x169, 0x1A3, 0x1B9, 0x1BD, 0x1DE, 0x1C8, 0x1B4,
+ 0x17A, 0x16A, 0x146, 0x038, 0x000, 0x03B, 0x14B, 0x15B, 0x17D, 0x1B3, 0x1C5, 0x1DD,
+ 0x0DD, 0x07C, 0x1EC, 0x1D8, 0x1BC, 0x1A0, 0x15E, 0x144, 0x000, 0x149, 0x157, 0x1A9,
+ 0x1BB, 0x1CD, 0x341, 0x079, 0x0E9, 0x0CC, 0x342, 0x1D4, 0x1D6, 0x1B0, 0x172, 0x152,
+ 0x000, 0x155, 0x171, 0x1B7, 0x1DB, 0x1CF, 0x1BF, 0x0CB, 0x019, 0x06C, 0x0EA, 0x1DC,
+ 0x1EE, 0x1D0, 0x1AC, 0x16C, 0x000, 0x165, 0x1AB, 0x1CB, 0x1A3, 0x1DF, 0x0ED, 0x06B,
+ 0x01F, 0x008, 0x072, 0x0D2, 0x0CE, 0x1EA, 0x1C2, 0x17E, 0x000, 0x177, 0x1C1, 0x1E9,
+ 0x07F, 0x0C9, 0x071, 0x003,
+};
+
+static const uint8_t huff_spec_b52_bits[] = {
+ 3, 4, 4, 4, 5, 5, 6, 6, 5, 5, 5, 6, 6, 6, 7, 7,
+ 0, 7, 7, 6, 6, 6, 5, 5, 5, 6, 6, 5, 5, 4, 4, 4,
+};
+
+static const uint16_t huff_spec_b52_codes[] = {
+ 0x06, 0x0E, 0x06, 0x00, 0x0A, 0x04, 0x2C, 0x12, 0x14, 0x10, 0x06, 0x2E, 0x24, 0x10, 0x4E, 0x4C,
+ 0x00, 0x4D, 0x4F, 0x11, 0x25, 0x2F, 0x07, 0x11, 0x15, 0x13, 0x2D, 0x05, 0x0B, 0x01, 0x07, 0x0F,
+};
+
+static const uint8_t huff_spec_b53_bits[] = {
+ 2, 3, 4, 5, 5, 6, 6, 6, 6, 6, 6, 7, 7, 7, 8, 8,
+ 0, 8, 8, 7, 7, 7, 6, 6, 6, 6, 6, 6, 5, 5, 4, 3,
+};
+
+static const uint16_t huff_spec_b53_codes[] = {
+ 0x02, 0x00, 0x06, 0x1C, 0x18, 0x3E, 0x16, 0x10, 0x3C, 0x36, 0x14, 0x6A, 0x26, 0x24, 0xD2, 0xD0,
+ 0x00, 0xD1, 0xD3, 0x25, 0x27, 0x6B, 0x15, 0x37, 0x3D, 0x11, 0x17, 0x3F, 0x19, 0x1D, 0x07, 0x01,
+};
+
+static const uint8_t huff_spec_b54_bits[] = {
+ 2, 3, 4, 4, 5, 6, 6, 7, 6, 6, 7, 8, 8, 8, 9, 9,
+ 0, 9, 9, 8, 8, 8, 7, 6, 6, 7, 6, 6, 5, 4, 4, 3,
+};
+
+static const uint16_t huff_spec_b54_codes[] = {
+ 0x003, 0x002, 0x008, 0x000, 0x014, 0x02E, 0x00E, 0x05A, 0x00A, 0x008, 0x01A, 0x0B2,
+ 0x032, 0x030, 0x162, 0x160, 0x000, 0x161, 0x163, 0x031, 0x033, 0x0B3, 0x01B, 0x009,
+ 0x00B, 0x05B, 0x00F, 0x02F, 0x015, 0x001, 0x009, 0x003,
+};
+
+static const uint8_t huff_spec_b62_bits[] = {
+ 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7,
+ 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8,
+ 0, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6,
+ 6, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 4,
+};
+
+static const uint16_t huff_spec_b62_codes[] = {
+ 0x0D, 0x06, 0x1C, 0x14, 0x0A, 0x04, 0x3E, 0x2E, 0x22, 0x0E, 0x06, 0x00, 0x5A, 0x4E, 0x40, 0x20,
+ 0x30, 0x32, 0x24, 0x12, 0x0C, 0x02, 0x78, 0x58, 0x42, 0x22, 0x0A, 0x08, 0xF6, 0xF4, 0x9A, 0x98,
+ 0x00, 0x99, 0x9B, 0xF5, 0xF7, 0x09, 0x0B, 0x23, 0x43, 0x59, 0x79, 0x03, 0x0D, 0x13, 0x25, 0x33,
+ 0x31, 0x21, 0x41, 0x4F, 0x5B, 0x01, 0x07, 0x0F, 0x23, 0x2F, 0x3F, 0x05, 0x0B, 0x15, 0x1D, 0x07,
+};
+
+static const uint8_t huff_spec_b63_bits[] = {
+ 3, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8,
+ 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9,
+ 0, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 6,
+ 6, 8, 7, 7, 7, 7, 6, 6, 6, 6, 5, 5, 5, 5, 4, 4,
+};
+
+static const uint16_t huff_spec_b63_codes[] = {
+ 0x006, 0x00E, 0x004, 0x014, 0x010, 0x006, 0x000, 0x026, 0x01C, 0x018, 0x004, 0x05C,
+ 0x04A, 0x03C, 0x016, 0x0BC, 0x006, 0x008, 0x058, 0x03E, 0x036, 0x014, 0x0B6, 0x0B4,
+ 0x090, 0x068, 0x17E, 0x17C, 0x126, 0x124, 0x0D6, 0x0D4, 0x000, 0x0D5, 0x0D7, 0x125,
+ 0x127, 0x17D, 0x17F, 0x069, 0x091, 0x0B5, 0x0B7, 0x015, 0x037, 0x03F, 0x059, 0x009,
+ 0x007, 0x0BD, 0x017, 0x03D, 0x04B, 0x05D, 0x005, 0x019, 0x01D, 0x027, 0x001, 0x007,
+ 0x011, 0x015, 0x005, 0x00F,
+};
+
+static const uint8_t huff_spec_b64_bits[] = {
+ 3, 3, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 7, 8,
+ 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10,
+ 0, 10, 10, 10, 10, 9, 9, 9, 9, 9, 9, 8, 8, 8, 7, 7,
+ 7, 8, 7, 7, 7, 7, 7, 6, 6, 6, 6, 5, 5, 5, 4, 3,
+};
+
+static const uint16_t huff_spec_b64_codes[] = {
+ 0x007, 0x000, 0x008, 0x01A, 0x014, 0x00C, 0x032, 0x02E, 0x01E, 0x014, 0x062, 0x05A,
+ 0x03A, 0x026, 0x020, 0x0B2, 0x038, 0x02C, 0x022, 0x0C0, 0x05E, 0x04A, 0x186, 0x184,
+ 0x160, 0x0BA, 0x092, 0x090, 0x2C6, 0x2C4, 0x172, 0x170, 0x000, 0x171, 0x173, 0x2C5,
+ 0x2C7, 0x091, 0x093, 0x0BB, 0x161, 0x185, 0x187, 0x04B, 0x05F, 0x0C1, 0x023, 0x02D,
+ 0x039, 0x0B3, 0x021, 0x027, 0x03B, 0x05B, 0x063, 0x015, 0x01F, 0x02F, 0x033, 0x00D,
+ 0x015, 0x01B, 0x009, 0x001,
+};
+
+static const uint8_t huff_spec_b72_bits[] = {
+ 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5,
+};
+
+static const uint16_t huff_spec_b72_codes[] = {
+ 0x01E, 0x016, 0x00C, 0x000, 0x038, 0x032, 0x028, 0x022, 0x01C, 0x012, 0x00E, 0x006,
+ 0x076, 0x06C, 0x060, 0x04E, 0x03E, 0x02A, 0x022, 0x01A, 0x012, 0x00A, 0x0FC, 0x0DC,
+ 0x0C6, 0x0A8, 0x094, 0x086, 0x058, 0x042, 0x040, 0x02A, 0x068, 0x07C, 0x06A, 0x056,
+ 0x048, 0x040, 0x02E, 0x028, 0x016, 0x010, 0x008, 0x0EA, 0x0DE, 0x0AA, 0x09A, 0x096,
+ 0x07A, 0x078, 0x05A, 0x032, 0x030, 0x028, 0x1FE, 0x1FC, 0x1D2, 0x1D0, 0x18A, 0x188,
+ 0x132, 0x130, 0x10A, 0x108, 0x000, 0x109, 0x10B, 0x131, 0x133, 0x189, 0x18B, 0x1D1,
+ 0x1D3, 0x1FD, 0x1FF, 0x029, 0x031, 0x033, 0x05B, 0x079, 0x07B, 0x097, 0x09B, 0x0AB,
+ 0x0DF, 0x0EB, 0x009, 0x011, 0x017, 0x029, 0x02F, 0x041, 0x049, 0x057, 0x06B, 0x07D,
+ 0x069, 0x02B, 0x041, 0x043, 0x059, 0x087, 0x095, 0x0A9, 0x0C7, 0x0DD, 0x0FD, 0x00B,
+ 0x013, 0x01B, 0x023, 0x02B, 0x03F, 0x04F, 0x061, 0x06D, 0x077, 0x007, 0x00F, 0x013,
+ 0x01D, 0x023, 0x029, 0x033, 0x039, 0x001, 0x00D, 0x017,
+};
+
+static const uint8_t huff_spec_b73_bits[] = {
+ 3, 4, 5, 5, 5, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9,
+ 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 7,
+ 8, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 5, 5, 5, 4,
+};
+
+static const uint16_t huff_spec_b73_codes[] = {
+ 0x000, 0x006, 0x018, 0x010, 0x004, 0x03A, 0x034, 0x02A, 0x026, 0x014, 0x010, 0x07E,
+ 0x072, 0x06E, 0x05C, 0x052, 0x04A, 0x02C, 0x024, 0x018, 0x0F4, 0x0E0, 0x0DA, 0x0B6,
+ 0x0B2, 0x0A0, 0x05E, 0x04E, 0x038, 0x034, 0x1E6, 0x1B2, 0x0FA, 0x01E, 0x0F8, 0x0F0,
+ 0x0BE, 0x0B4, 0x0A2, 0x090, 0x04C, 0x03A, 0x1EE, 0x1E4, 0x1C6, 0x1B0, 0x178, 0x162,
+ 0x126, 0x124, 0x0B8, 0x06C, 0x3DA, 0x3D8, 0x38A, 0x388, 0x2F6, 0x2F4, 0x2C2, 0x2C0,
+ 0x176, 0x174, 0x0DC, 0x0DE, 0x000, 0x0DF, 0x0DD, 0x175, 0x177, 0x2C1, 0x2C3, 0x2F5,
+ 0x2F7, 0x389, 0x38B, 0x3D9, 0x3DB, 0x06D, 0x0B9, 0x125, 0x127, 0x163, 0x179, 0x1B1,
+ 0x1C7, 0x1E5, 0x1EF, 0x03B, 0x04D, 0x091, 0x0A3, 0x0B5, 0x0BF, 0x0F1, 0x0F9, 0x01F,
+ 0x0FB, 0x1B3, 0x1E7, 0x035, 0x039, 0x04F, 0x05F, 0x0A1, 0x0B3, 0x0B7, 0x0DB, 0x0E1,
+ 0x0F5, 0x019, 0x025, 0x02D, 0x04B, 0x053, 0x05D, 0x06F, 0x073, 0x07F, 0x011, 0x015,
+ 0x027, 0x02B, 0x035, 0x03B, 0x005, 0x011, 0x019, 0x007,
+};
+
+static const uint8_t huff_spec_b74_bits[] = {
+ 3, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7,
+ 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9,
+ 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8,
+ 8, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7,
+ 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 4,
+};
+
+static const uint16_t huff_spec_b74_codes[] = {
+ 0x001, 0x008, 0x01E, 0x018, 0x00C, 0x002, 0x03A, 0x034, 0x02C, 0x01E, 0x016, 0x012,
+ 0x072, 0x06E, 0x05E, 0x056, 0x050, 0x038, 0x022, 0x004, 0x0E2, 0x0DA, 0x0BA, 0x0A8,
+ 0x076, 0x054, 0x050, 0x002, 0x000, 0x1C0, 0x1B0, 0x156, 0x0A4, 0x0A6, 0x074, 0x052,
+ 0x004, 0x1C2, 0x1B2, 0x170, 0x154, 0x0AE, 0x0AC, 0x086, 0x2E6, 0x2E4, 0x10A, 0x108,
+ 0x106, 0x104, 0x102, 0x100, 0x03E, 0x03A, 0x03C, 0x038, 0x036, 0x034, 0x032, 0x030,
+ 0x01E, 0x01A, 0x01C, 0x018, 0x000, 0x019, 0x01D, 0x01B, 0x01F, 0x031, 0x033, 0x035,
+ 0x037, 0x039, 0x03D, 0x03B, 0x03F, 0x101, 0x103, 0x105, 0x107, 0x109, 0x10B, 0x2E5,
+ 0x2E7, 0x087, 0x0AD, 0x0AF, 0x155, 0x171, 0x1B3, 0x1C3, 0x005, 0x053, 0x075, 0x0A7,
+ 0x0A5, 0x157, 0x1B1, 0x1C1, 0x001, 0x003, 0x051, 0x055, 0x077, 0x0A9, 0x0BB, 0x0DB,
+ 0x0E3, 0x005, 0x023, 0x039, 0x051, 0x057, 0x05F, 0x06F, 0x073, 0x013, 0x017, 0x01F,
+ 0x02D, 0x035, 0x03B, 0x003, 0x00D, 0x019, 0x01F, 0x009,
+};
+
+static const HuffmanCodebook at9_huffman_coeffs[][8][4] = {
+ {
+ { { 0 } },
+ { { 0 } },
+ {
+ { huff_spec_a21_bits, huff_spec_a21_codes, 16, 2, 1, 2, 3, },
+ { huff_spec_a22_bits, huff_spec_a22_codes, 256, 4, 2, 2, 8, },
+ { huff_spec_a23_bits, huff_spec_a23_codes, 256, 4, 2, 2, 9, },
+ { huff_spec_a24_bits, huff_spec_a24_codes, 256, 4, 2, 2, 10, },
+ },
+ {
+ { huff_spec_a31_bits, huff_spec_a31_codes, 64, 2, 1, 3, 7, },
+ { huff_spec_a32_bits, huff_spec_a32_codes, 64, 2, 1, 3, 7, },
+ { huff_spec_a33_bits, huff_spec_a33_codes, 64, 2, 1, 3, 8, },
+ { huff_spec_a34_bits, huff_spec_a34_codes, 64, 2, 1, 3, 10, },
+ },
+ {
+ { huff_spec_a41_bits, huff_spec_a41_codes, 256, 2, 1, 4, 9, },
+ { huff_spec_a42_bits, huff_spec_a42_codes, 256, 2, 1, 4, 10, },
+ { huff_spec_a43_bits, huff_spec_a43_codes, 256, 2, 1, 4, 10, },
+ { huff_spec_a44_bits, huff_spec_a44_codes, 256, 2, 1, 4, 10, },
+ },
+ {
+ { huff_spec_a51_bits, huff_spec_a51_codes, 32, 1, 0, 5, 6, },
+ { huff_spec_a52_bits, huff_spec_a52_codes, 32, 1, 0, 5, 6, },
+ { huff_spec_a53_bits, huff_spec_a53_codes, 32, 1, 0, 5, 7, },
+ { huff_spec_a54_bits, huff_spec_a54_codes, 32, 1, 0, 5, 8, },
+ },
+ {
+ { huff_spec_a61_bits, huff_spec_a61_codes, 64, 1, 0, 6, 7, },
+ { huff_spec_a62_bits, huff_spec_a62_codes, 64, 1, 0, 6, 7, },
+ { huff_spec_a63_bits, huff_spec_a63_codes, 64, 1, 0, 6, 8, },
+ { huff_spec_a64_bits, huff_spec_a64_codes, 64, 1, 0, 6, 9, },
+ },
+ {
+ { huff_spec_a71_bits, huff_spec_a71_codes, 128, 1, 0, 7, 8, },
+ { huff_spec_a72_bits, huff_spec_a72_codes, 128, 1, 0, 7, 8, },
+ { huff_spec_a73_bits, huff_spec_a73_codes, 128, 1, 0, 7, 9, },
+ { huff_spec_a74_bits, huff_spec_a74_codes, 128, 1, 0, 7, 10, },
+ },
+ },
+ {
+ { { 0 } },
+ { { 0 } },
+ {
+ { 0 },
+ { huff_spec_b22_bits, huff_spec_b22_codes, 256, 4, 2, 2, 10, },
+ { huff_spec_b23_bits, huff_spec_b23_codes, 256, 4, 2, 2, 10, },
+ { huff_spec_b24_bits, huff_spec_b24_codes, 256, 4, 2, 2, 10, },
+ },
+ {
+ { 0 },
+ { huff_spec_b32_bits, huff_spec_b32_codes, 64, 2, 1, 3, 9, },
+ { huff_spec_b33_bits, huff_spec_b33_codes, 64, 2, 1, 3, 10, },
+ { huff_spec_b34_bits, huff_spec_b34_codes, 64, 2, 1, 3, 10, },
+ },
+ {
+ { 0 },
+ { huff_spec_b42_bits, huff_spec_b42_codes, 256, 2, 1, 4, 10, },
+ { huff_spec_b43_bits, huff_spec_b43_codes, 256, 2, 1, 4, 10, },
+ { huff_spec_b44_bits, huff_spec_b44_codes, 256, 2, 1, 4, 10, },
+ },
+ {
+ { 0 },
+ { huff_spec_b52_bits, huff_spec_b52_codes, 32, 1, 0, 5, 7, },
+ { huff_spec_b53_bits, huff_spec_b53_codes, 32, 1, 0, 5, 8, },
+ { huff_spec_b54_bits, huff_spec_b54_codes, 32, 1, 0, 5, 9, },
+ },
+ {
+ { 0 },
+ { huff_spec_b62_bits, huff_spec_b62_codes, 64, 1, 0, 6, 8, },
+ { huff_spec_b63_bits, huff_spec_b63_codes, 64, 1, 0, 6, 9, },
+ { huff_spec_b64_bits, huff_spec_b64_codes, 64, 1, 0, 6, 10, },
+ },
+ {
+ { 0 },
+ { huff_spec_b72_bits, huff_spec_b72_codes, 128, 1, 0, 7, 9, },
+ { huff_spec_b73_bits, huff_spec_b73_codes, 128, 1, 0, 7, 10, },
+ { huff_spec_b74_bits, huff_spec_b74_codes, 128, 1, 0, 7, 10, },
+ },
+ },
+};
+
+#endif /* AVCODEC_ATRAC9TAB_H */
diff --git a/chromium/third_party/ffmpeg/libavcodec/av1.h b/chromium/third_party/ffmpeg/libavcodec/av1.h
new file mode 100644
index 00000000000..c989b69974c
--- /dev/null
+++ b/chromium/third_party/ffmpeg/libavcodec/av1.h
@@ -0,0 +1,42 @@
+/*
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/**
+ * @file
+ * AV1 common definitions
+ */
+
+#ifndef AVCODEC_AV1_H
+#define AVCODEC_AV1_H
+
+// OBU types (section 6.2.2).
+typedef enum {
+ // 0 reserved.
+ AV1_OBU_SEQUENCE_HEADER = 1,
+ AV1_OBU_TEMPORAL_DELIMITER = 2,
+ AV1_OBU_FRAME_HEADER = 3,
+ AV1_OBU_TILE_GROUP = 4,
+ AV1_OBU_METADATA = 5,
+ AV1_OBU_FRAME = 6,
+ AV1_OBU_REDUNDANT_FRAME_HEADER = 7,
+ AV1_OBU_TILE_LIST = 8,
+ // 9-14 reserved.
+ AV1_OBU_PADDING = 15,
+} AV1_OBU_Type;
+
+#endif /* AVCODEC_AV1_H */
diff --git a/chromium/third_party/ffmpeg/libavcodec/av1_parse.c b/chromium/third_party/ffmpeg/libavcodec/av1_parse.c
new file mode 100644
index 00000000000..48feb9fb8a3
--- /dev/null
+++ b/chromium/third_party/ffmpeg/libavcodec/av1_parse.c
@@ -0,0 +1,103 @@
+/*
+ * AV1 common parsing code
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include "config.h"
+
+#include "libavutil/mem.h"
+
+#include "av1_parse.h"
+#include "bytestream.h"
+
+int ff_av1_extract_obu(AV1OBU *obu, const uint8_t *buf, int length, void *logctx)
+{
+ int64_t obu_size;
+ int start_pos, type, temporal_id, spatial_id;
+
+ int ret = parse_obu_header(buf, length, &obu_size, &start_pos,
+ &type, &temporal_id, &spatial_id);
+ if (ret < 0)
+ return ret;
+
+ if (obu_size > INT_MAX / 8 || obu_size < 0)
+ return AVERROR(ERANGE);
+
+ obu->type = type;
+ obu->temporal_id = temporal_id;
+ obu->spatial_id = spatial_id;
+
+ length = obu_size + start_pos;
+
+ obu->data = buf + start_pos;
+ obu->size = obu_size;
+ obu->raw_data = buf;
+ obu->raw_size = length;
+
+ ret = init_get_bits(&obu->gb, obu->data, obu->size * 8);
+ if (ret < 0)
+ return ret;
+
+ av_log(logctx, AV_LOG_DEBUG,
+ "obu_type: %d, temporal_id: %d, spatial_id: %d, payload size: %d\n",
+ obu->type, obu->temporal_id, obu->spatial_id, obu->size);
+
+ return length;
+}
+
+int ff_av1_packet_split(AV1Packet *pkt, const uint8_t *buf, int length, void *logctx)
+{
+ GetByteContext bc;
+ int consumed;
+
+ bytestream2_init(&bc, buf, length);
+ pkt->nb_obus = 0;
+
+ while (bytestream2_get_bytes_left(&bc) > 0) {
+ AV1OBU *obu;
+
+ if (pkt->obus_allocated < pkt->nb_obus + 1) {
+ int new_size = pkt->obus_allocated + 1;
+ AV1OBU *tmp = av_realloc_array(pkt->obus, new_size, sizeof(*tmp));
+ if (!tmp)
+ return AVERROR(ENOMEM);
+
+ pkt->obus = tmp;
+ memset(pkt->obus + pkt->obus_allocated, 0,
+ (new_size - pkt->obus_allocated) * sizeof(*tmp));
+ pkt->obus_allocated = new_size;
+ }
+ obu = &pkt->obus[pkt->nb_obus];
+
+ consumed = ff_av1_extract_obu(obu, bc.buffer, bytestream2_get_bytes_left(&bc), logctx);
+ if (consumed < 0)
+ return consumed;
+
+ pkt->nb_obus++;
+
+ bytestream2_skip(&bc, consumed);
+ }
+
+ return 0;
+}
+
+void ff_av1_packet_uninit(AV1Packet *pkt)
+{
+ av_freep(&pkt->obus);
+ pkt->obus_allocated = 0;
+}
diff --git a/chromium/third_party/ffmpeg/libavcodec/av1_parse.h b/chromium/third_party/ffmpeg/libavcodec/av1_parse.h
new file mode 100644
index 00000000000..84fc71c925d
--- /dev/null
+++ b/chromium/third_party/ffmpeg/libavcodec/av1_parse.h
@@ -0,0 +1,126 @@
+/*
+ * AV1 common parsing code
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef AVCODEC_AV1_PARSE_H
+#define AVCODEC_AV1_PARSE_H
+
+#include <stdint.h>
+
+#include "avcodec.h"
+#include "get_bits.h"
+
+typedef struct AV1OBU {
+ /** Size of payload */
+ int size;
+ const uint8_t *data;
+
+ /** Size of entire OBU, including header */
+ int raw_size;
+ const uint8_t *raw_data;
+
+ /** GetBitContext initialized to the start of the payload */
+ GetBitContext gb;
+
+ int type;
+
+ int temporal_id;
+ int spatial_id;
+} AV1OBU;
+
+/** An input packet split into OBUs */
+typedef struct AV1Packet {
+ AV1OBU *obus;
+ int nb_obus;
+ int obus_allocated;
+} AV1Packet;
+
+/**
+ * Extract an OBU from a raw bitstream.
+ *
+ * @note This function does not copy or store any bistream data. All
+ * the pointers in the AV1OBU structure will be valid as long
+ * as the input buffer also is.
+ */
+int ff_av1_extract_obu(AV1OBU *obu, const uint8_t *buf, int length,
+ void *logctx);
+
+/**
+ * Split an input packet into OBUs.
+ *
+ * @note This function does not copy or store any bistream data. All
+ * the pointers in the AV1Packet structure will be valid as
+ * long as the input buffer also is.
+ */
+int ff_av1_packet_split(AV1Packet *pkt, const uint8_t *buf, int length,
+ void *logctx);
+
+/**
+ * Free all the allocated memory in the packet.
+ */
+void ff_av1_packet_uninit(AV1Packet *pkt);
+
+static inline int64_t leb128(GetBitContext *gb) {
+ int64_t ret = 0;
+ int i;
+
+ for (i = 0; i < 8; i++) {
+ int byte = get_bits(gb, 8);
+ ret |= (int64_t)(byte & 0x7f) << (i * 7);
+ if (!(byte & 0x80))
+ break;
+ }
+ return ret;
+}
+
+static inline int parse_obu_header(const uint8_t *buf, int buf_size,
+ int64_t *obu_size, int *start_pos, int *type,
+ int *temporal_id, int *spatial_id)
+{
+ GetBitContext gb;
+ int ret, extension_flag, has_size_flag;
+
+ ret = init_get_bits8(&gb, buf, FFMIN(buf_size, 2 + 8)); // OBU header fields + max leb128 length
+ if (ret < 0)
+ return ret;
+
+ if (get_bits1(&gb) != 0) // obu_forbidden_bit
+ return AVERROR_INVALIDDATA;
+
+ *type = get_bits(&gb, 4);
+ extension_flag = get_bits1(&gb);
+ has_size_flag = get_bits1(&gb);
+ skip_bits1(&gb); // obu_reserved_1bit
+
+ if (extension_flag) {
+ *temporal_id = get_bits(&gb, 3);
+ *spatial_id = get_bits(&gb, 2);
+ skip_bits(&gb, 3); // extension_header_reserved_3bits
+ } else {
+ *temporal_id = *spatial_id = 0;
+ }
+
+ *obu_size = has_size_flag ? leb128(&gb)
+ : buf_size - 1 - extension_flag;
+ *start_pos = get_bits_count(&gb) / 8;
+
+ return 0;
+}
+
+#endif /* AVCODEC_AV1_PARSE_H */
diff --git a/chromium/third_party/ffmpeg/libavcodec/avcodec.h b/chromium/third_party/ffmpeg/libavcodec/avcodec.h
index c90166deb67..f85af3f15d7 100644
--- a/chromium/third_party/ffmpeg/libavcodec/avcodec.h
+++ b/chromium/third_party/ffmpeg/libavcodec/avcodec.h
@@ -637,6 +637,7 @@ enum AVCodecID {
AV_CODEC_ID_APTX,
AV_CODEC_ID_APTX_HD,
AV_CODEC_ID_SBC,
+ AV_CODEC_ID_ATRAC9,
/* subtitle codecs */
AV_CODEC_ID_FIRST_SUBTITLE = 0x17000, ///< A dummy ID pointing at the start of subtitle codecs.
diff --git a/chromium/third_party/ffmpeg/libavcodec/bink.c b/chromium/third_party/ffmpeg/libavcodec/bink.c
index c4cf617a8bc..9c17dedcba9 100644
--- a/chromium/third_party/ffmpeg/libavcodec/bink.c
+++ b/chromium/third_party/ffmpeg/libavcodec/bink.c
@@ -371,11 +371,19 @@ static const uint8_t bink_rlelens[4] = { 4, 8, 12, 32 };
static int read_block_types(AVCodecContext *avctx, GetBitContext *gb, Bundle *b)
{
+ BinkContext * const c = avctx->priv_data;
int t, v;
int last = 0;
const uint8_t *dec_end;
CHECK_READ_VAL(gb, b, t);
+ if (c->version == 'k') {
+ t ^= 0xBBu;
+ if (t == 0) {
+ b->cur_dec = NULL;
+ return 0;
+ }
+ }
dec_end = b->cur_dec + t;
if (dec_end > b->data_end) {
av_log(avctx, AV_LOG_ERROR, "Too many block type values\n");
@@ -994,6 +1002,17 @@ static int bink_decode_plane(BinkContext *c, AVFrame *frame, GetBitContext *gb,
int bw = is_chroma ? (c->avctx->width + 15) >> 4 : (c->avctx->width + 7) >> 3;
int bh = is_chroma ? (c->avctx->height + 15) >> 4 : (c->avctx->height + 7) >> 3;
int width = c->avctx->width >> is_chroma;
+ int height = c->avctx->height >> is_chroma;
+
+ if (c->version == 'k' && get_bits1(gb)) {
+ int fill = get_bits(gb, 8);
+
+ dst = frame->data[plane_idx];
+
+ for (i = 0; i < height; i++)
+ memset(dst + i * stride, fill, width);
+ goto end;
+ }
init_lengths(c, FFMAX(width, 8), bw);
for (i = 0; i < BINK_NB_SRC; i++)
@@ -1190,6 +1209,8 @@ static int bink_decode_plane(BinkContext *c, AVFrame *frame, GetBitContext *gb,
}
}
}
+
+end:
if (get_bits_count(gb) & 0x1F) //next plane data starts at 32-bit boundary
skip_bits_long(gb, 32 - (get_bits_count(gb) & 0x1F));
@@ -1322,6 +1343,7 @@ static av_cold int decode_init(AVCodecContext *avctx)
return ret;
avctx->pix_fmt = c->has_alpha ? AV_PIX_FMT_YUVA420P : AV_PIX_FMT_YUV420P;
+ avctx->color_range = c->version == 'k' ? AVCOL_RANGE_JPEG : AVCOL_RANGE_MPEG;
ff_blockdsp_init(&c->bdsp, avctx);
ff_hpeldsp_init(&c->hdsp, avctx->flags);
diff --git a/chromium/third_party/ffmpeg/libavcodec/cdgraphics.c b/chromium/third_party/ffmpeg/libavcodec/cdgraphics.c
index 87ad5e79f44..be85e542887 100644
--- a/chromium/third_party/ffmpeg/libavcodec/cdgraphics.c
+++ b/chromium/third_party/ffmpeg/libavcodec/cdgraphics.c
@@ -69,6 +69,7 @@ typedef struct CDGraphicsContext {
int hscroll;
int vscroll;
int transparency;
+ int cleared;
} CDGraphicsContext;
static av_cold int cdg_decode_init(AVCodecContext *avctx)
@@ -287,9 +288,10 @@ static int cdg_decode_frame(AVCodecContext *avctx,
if ((ret = ff_reget_buffer(avctx, cc->frame)) < 0)
return ret;
- if (!avctx->frame_number) {
+ if (!cc->cleared) {
memset(cc->frame->data[0], 0, cc->frame->linesize[0] * avctx->height);
memset(cc->frame->data[1], 0, AVPALETTE_SIZE);
+ cc->cleared = 1;
}
command = bytestream2_get_byte(&gb);
diff --git a/chromium/third_party/ffmpeg/libavcodec/cfhd.c b/chromium/third_party/ffmpeg/libavcodec/cfhd.c
index 051d2103557..76838f08699 100644
--- a/chromium/third_party/ffmpeg/libavcodec/cfhd.c
+++ b/chromium/third_party/ffmpeg/libavcodec/cfhd.c
@@ -79,7 +79,7 @@ static void init_peak_table_defaults(CFHDContext *s)
{
s->peak.level = 0;
s->peak.offset = 0;
- s->peak.base = NULL;
+ memset(&s->peak.base, 0, sizeof(s->peak.base));
}
static void init_frame_defaults(CFHDContext *s)
@@ -133,7 +133,7 @@ static inline void peak_table(int16_t *band, Peak *peak, int length)
int i;
for (i = 0; i < length; i++)
if (abs(band[i]) > peak->level)
- band[i] = *(peak->base++);
+ band[i] = bytestream2_get_le16(&peak->base);
}
static inline void process_alpha(int16_t *alpha, int width)
@@ -537,16 +537,16 @@ static int cfhd_decode(AVCodecContext *avctx, void *data, int *got_frame,
} else if (tag == -75) {
s->peak.offset &= ~0xffff;
s->peak.offset |= (data & 0xffff);
- s->peak.base = (int16_t *) gb.buffer;
+ s->peak.base = gb;
s->peak.level = 0;
} else if (tag == -76) {
s->peak.offset &= 0xffff;
- s->peak.offset |= (data & 0xffff)<<16;
- s->peak.base = (int16_t *) gb.buffer;
+ s->peak.offset |= (data & 0xffffU)<<16;
+ s->peak.base = gb;
s->peak.level = 0;
} else if (tag == -74 && s->peak.offset) {
s->peak.level = data;
- s->peak.base += s->peak.offset / 2 - 2;
+ bytestream2_seek(&s->peak.base, s->peak.offset - 4, SEEK_CUR);
} else
av_log(avctx, AV_LOG_DEBUG, "Unknown tag %i data %x\n", tag, data);
diff --git a/chromium/third_party/ffmpeg/libavcodec/cfhd.h b/chromium/third_party/ffmpeg/libavcodec/cfhd.h
index 7cd251fca71..4f2c82d8bc2 100644
--- a/chromium/third_party/ffmpeg/libavcodec/cfhd.h
+++ b/chromium/third_party/ffmpeg/libavcodec/cfhd.h
@@ -26,6 +26,7 @@
#include "libavutil/avassert.h"
#include "avcodec.h"
+#include "bytestream.h"
#include "get_bits.h"
#include "vlc.h"
@@ -71,7 +72,7 @@ typedef struct Plane {
typedef struct Peak {
int level;
int offset;
- const int16_t *base;
+ GetByteContext base;
} Peak;
typedef struct CFHDContext {
diff --git a/chromium/third_party/ffmpeg/libavcodec/codec_desc.c b/chromium/third_party/ffmpeg/libavcodec/codec_desc.c
index 36e9a9bbc7a..a126c974e18 100644
--- a/chromium/third_party/ffmpeg/libavcodec/codec_desc.c
+++ b/chromium/third_party/ffmpeg/libavcodec/codec_desc.c
@@ -2878,6 +2878,13 @@ static const AVCodecDescriptor codec_descriptors[] = {
.long_name = NULL_IF_CONFIG_SMALL("SBC (low-complexity subband codec)"),
.props = AV_CODEC_PROP_LOSSY,
},
+ {
+ .id = AV_CODEC_ID_ATRAC9,
+ .type = AVMEDIA_TYPE_AUDIO,
+ .name = "atrac9",
+ .long_name = NULL_IF_CONFIG_SMALL("ATRAC9 (Adaptive TRansform Acoustic Coding 9)"),
+ .props = AV_CODEC_PROP_LOSSY,
+ },
/* subtitle codecs */
{
diff --git a/chromium/third_party/ffmpeg/libavcodec/cscd.c b/chromium/third_party/ffmpeg/libavcodec/cscd.c
index 35c4ee08c35..5eb511a5659 100644
--- a/chromium/third_party/ffmpeg/libavcodec/cscd.c
+++ b/chromium/third_party/ffmpeg/libavcodec/cscd.c
@@ -81,7 +81,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
switch ((buf[0] >> 1) & 7) {
case 0: { // lzo compression
int outlen = c->decomp_size, inlen = buf_size - 2;
- if (av_lzo1x_decode(c->decomp_buf, &outlen, &buf[2], &inlen)) {
+ if (av_lzo1x_decode(c->decomp_buf, &outlen, &buf[2], &inlen) || outlen) {
av_log(avctx, AV_LOG_ERROR, "error during lzo decompression\n");
return AVERROR_INVALIDDATA;
}
diff --git a/chromium/third_party/ffmpeg/libavcodec/decode.c b/chromium/third_party/ffmpeg/libavcodec/decode.c
index 421a8f1a357..db364ca700a 100644
--- a/chromium/third_party/ffmpeg/libavcodec/decode.c
+++ b/chromium/third_party/ffmpeg/libavcodec/decode.c
@@ -36,6 +36,7 @@
#include "libavutil/imgutils.h"
#include "libavutil/internal.h"
#include "libavutil/intmath.h"
+#include "libavutil/opt.h"
#include "avcodec.h"
#include "bytestream.h"
@@ -195,27 +196,33 @@ static int bsfs_init(AVCodecContext *avctx)
while (bsfs_str && *bsfs_str) {
AVBSFContext **tmp;
const AVBitStreamFilter *filter;
- char *bsf;
+ char *bsf, *bsf_options_str, *bsf_name;
bsf = av_get_token(&bsfs_str, ",");
if (!bsf) {
ret = AVERROR(ENOMEM);
goto fail;
}
+ bsf_name = av_strtok(bsf, "=", &bsf_options_str);
+ if (!bsf_name) {
+ av_freep(&bsf);
+ ret = AVERROR(ENOMEM);
+ goto fail;
+ }
- filter = av_bsf_get_by_name(bsf);
+ filter = av_bsf_get_by_name(bsf_name);
if (!filter) {
av_log(avctx, AV_LOG_ERROR, "A non-existing bitstream filter %s "
"requested by a decoder. This is a bug, please report it.\n",
- bsf);
- ret = AVERROR_BUG;
+ bsf_name);
av_freep(&bsf);
+ ret = AVERROR_BUG;
goto fail;
}
- av_freep(&bsf);
tmp = av_realloc_array(s->bsfs, s->nb_bsfs + 1, sizeof(*s->bsfs));
if (!tmp) {
+ av_freep(&bsf);
ret = AVERROR(ENOMEM);
goto fail;
}
@@ -223,8 +230,10 @@ static int bsfs_init(AVCodecContext *avctx)
s->nb_bsfs++;
ret = av_bsf_alloc(filter, &s->bsfs[s->nb_bsfs - 1]);
- if (ret < 0)
+ if (ret < 0) {
+ av_freep(&bsf);
goto fail;
+ }
if (s->nb_bsfs == 1) {
/* We do not currently have an API for passing the input timebase into decoders,
@@ -238,12 +247,38 @@ static int bsfs_init(AVCodecContext *avctx)
ret = avcodec_parameters_copy(s->bsfs[s->nb_bsfs - 1]->par_in,
s->bsfs[s->nb_bsfs - 2]->par_out);
}
- if (ret < 0)
+ if (ret < 0) {
+ av_freep(&bsf);
goto fail;
+ }
+
+ if (bsf_options_str && filter->priv_class) {
+ const AVOption *opt = av_opt_next(s->bsfs[s->nb_bsfs - 1]->priv_data, NULL);
+ const char * shorthand[2] = {NULL};
+
+ if (opt)
+ shorthand[0] = opt->name;
+
+ ret = av_opt_set_from_string(s->bsfs[s->nb_bsfs - 1]->priv_data, bsf_options_str, shorthand, "=", ":");
+ if (ret < 0) {
+ if (ret != AVERROR(ENOMEM)) {
+ av_log(avctx, AV_LOG_ERROR, "Invalid options for bitstream filter %s "
+ "requested by the decoder. This is a bug, please report it.\n",
+ bsf_name);
+ ret = AVERROR_BUG;
+ }
+ av_freep(&bsf);
+ goto fail;
+ }
+ }
+ av_freep(&bsf);
ret = av_bsf_init(s->bsfs[s->nb_bsfs - 1]);
if (ret < 0)
goto fail;
+
+ if (*bsfs_str)
+ bsfs_str++;
}
return 0;
@@ -1837,7 +1872,7 @@ static int get_buffer_internal(AVCodecContext *avctx, AVFrame *frame, int flags)
int ret;
if (avctx->codec_type == AVMEDIA_TYPE_VIDEO) {
- if ((ret = av_image_check_size2(avctx->width, avctx->height, avctx->max_pixels, AV_PIX_FMT_NONE, 0, avctx)) < 0 || avctx->pix_fmt<0) {
+ if ((ret = av_image_check_size2(FFALIGN(avctx->width, STRIDE_ALIGN), avctx->height, avctx->max_pixels, AV_PIX_FMT_NONE, 0, avctx)) < 0 || avctx->pix_fmt<0) {
av_log(avctx, AV_LOG_ERROR, "video_get_buffer: image parameters invalid\n");
return AVERROR(EINVAL);
}
diff --git a/chromium/third_party/ffmpeg/libavcodec/dirac_dwt_template.c b/chromium/third_party/ffmpeg/libavcodec/dirac_dwt_template.c
index 8c25c1f8228..2369c8d15b5 100644
--- a/chromium/third_party/ffmpeg/libavcodec/dirac_dwt_template.c
+++ b/chromium/third_party/ffmpeg/libavcodec/dirac_dwt_template.c
@@ -57,8 +57,8 @@ static av_always_inline void RENAME(interleave)(TYPE *dst, TYPE *src0, TYPE *src
{
int i;
for (i = 0; i < w2; i++) {
- dst[2*i ] = (src0[i] + add) >> shift;
- dst[2*i+1] = (src1[i] + add) >> shift;
+ dst[2*i ] = ((int)(src0[i] + (unsigned)add)) >> shift;
+ dst[2*i+1] = ((int)(src1[i] + (unsigned)add)) >> shift;
}
}
diff --git a/chromium/third_party/ffmpeg/libavcodec/dpx.c b/chromium/third_party/ffmpeg/libavcodec/dpx.c
index fb388b6e523..cf23bb6ba1f 100644
--- a/chromium/third_party/ffmpeg/libavcodec/dpx.c
+++ b/chromium/third_party/ffmpeg/libavcodec/dpx.c
@@ -51,7 +51,7 @@ static unsigned int read32(const uint8_t **ptr, int is_big)
}
static uint16_t read10in32(const uint8_t **ptr, uint32_t * lbuf,
- int * n_datum, int is_big)
+ int * n_datum, int is_big, int shift)
{
if (*n_datum)
(*n_datum)--;
@@ -60,7 +60,7 @@ static uint16_t read10in32(const uint8_t **ptr, uint32_t * lbuf,
*n_datum = 2;
}
- *lbuf = (*lbuf << 10) | (*lbuf >> 22);
+ *lbuf = *lbuf << 10 | *lbuf >> shift & 0x3FFFFF;
return *lbuf & 0x3FF;
}
@@ -170,10 +170,6 @@ static int decode_frame(AVCodecContext *avctx,
packing = read16(&buf, endian);
encoding = read16(&buf, endian);
- if (packing > 1) {
- avpriv_report_missing_feature(avctx, "Packing %d", packing);
- return AVERROR_PATCHWELCOME;
- }
if (encoding) {
avpriv_report_missing_feature(avctx, "Encoding %d", encoding);
return AVERROR_PATCHWELCOME;
@@ -232,19 +228,6 @@ static int decode_frame(AVCodecContext *avctx,
stride = (avctx->width * elements + 2) / 3 * 4;
break;
case 12:
- if (!packing) {
- int tested = 0;
- if (descriptor == 50 && endian && (avctx->width%8) == 0) { // Little endian and widths not a multiple of 8 need tests
- tested = 1;
- }
- if (descriptor == 51 && endian && (avctx->width%2) == 0) { // Little endian and widths not a multiple of 2 need tests
- tested = 1;
- }
- if (!tested) {
- av_log(avctx, AV_LOG_ERROR, "Packing to 16bit required\n");
- return -1;
- }
- }
stride = avctx->width * elements;
if (packing) {
stride *= 2;
@@ -377,17 +360,18 @@ static int decode_frame(AVCodecContext *avctx,
(uint16_t*)ptr[1],
(uint16_t*)ptr[2],
(uint16_t*)ptr[3]};
+ int shift = packing == 1 ? 22 : 20;
for (y = 0; y < avctx->width; y++) {
*dst[2]++ = read10in32(&buf, &rgbBuffer,
- &n_datum, endian);
+ &n_datum, endian, shift);
*dst[0]++ = read10in32(&buf, &rgbBuffer,
- &n_datum, endian);
+ &n_datum, endian, shift);
*dst[1]++ = read10in32(&buf, &rgbBuffer,
- &n_datum, endian);
+ &n_datum, endian, shift);
if (elements == 4)
*dst[3]++ =
read10in32(&buf, &rgbBuffer,
- &n_datum, endian);
+ &n_datum, endian, shift);
}
n_datum = 0;
for (i = 0; i < elements; i++)
@@ -400,28 +384,31 @@ static int decode_frame(AVCodecContext *avctx,
(uint16_t*)ptr[1],
(uint16_t*)ptr[2],
(uint16_t*)ptr[3]};
+ int shift = packing == 1 ? 4 : 0;
for (y = 0; y < avctx->width; y++) {
if (packing) {
- if (elements >= 3)
- *dst[2]++ = read16(&buf, endian) >> 4;
- *dst[0] = read16(&buf, endian) >> 4;
- dst[0]++;
- if (elements >= 2)
- *dst[1]++ = read16(&buf, endian) >> 4;
- if (elements == 4)
- *dst[3]++ = read16(&buf, endian) >> 4;
+ if (elements >= 3)
+ *dst[2]++ = read16(&buf, endian) >> shift & 0xFFF;
+ *dst[0]++ = read16(&buf, endian) >> shift & 0xFFF;
+ if (elements >= 2)
+ *dst[1]++ = read16(&buf, endian) >> shift & 0xFFF;
+ if (elements == 4)
+ *dst[3]++ = read16(&buf, endian) >> shift & 0xFFF;
} else {
- *dst[2]++ = read12in32(&buf, &rgbBuffer,
- &n_datum, endian);
+ if (elements >= 3)
+ *dst[2]++ = read12in32(&buf, &rgbBuffer,
+ &n_datum, endian);
*dst[0]++ = read12in32(&buf, &rgbBuffer,
&n_datum, endian);
- *dst[1]++ = read12in32(&buf, &rgbBuffer,
- &n_datum, endian);
+ if (elements >= 2)
+ *dst[1]++ = read12in32(&buf, &rgbBuffer,
+ &n_datum, endian);
if (elements == 4)
*dst[3]++ = read12in32(&buf, &rgbBuffer,
&n_datum, endian);
}
}
+ n_datum = 0;
for (i = 0; i < elements; i++)
ptr[i] += p->linesize[i];
// Jump to next aligned position
diff --git a/chromium/third_party/ffmpeg/libavcodec/dvbsub_parser.c b/chromium/third_party/ffmpeg/libavcodec/dvbsub_parser.c
index e77b9655cca..8ced3c4c340 100644
--- a/chromium/third_party/ffmpeg/libavcodec/dvbsub_parser.c
+++ b/chromium/third_party/ffmpeg/libavcodec/dvbsub_parser.c
@@ -57,6 +57,7 @@ static int dvbsub_parse(AVCodecParserContext *s,
DVBSubParseContext *pc = s->priv_data;
uint8_t *p, *p_end;
int i, len, buf_pos = 0;
+ int out_size = 0;
ff_dlog(avctx, "DVB parse packet pts=%"PRIx64", lpts=%"PRIx64", cpts=%"PRIx64":\n",
s->pts, s->last_pts, s->cur_frame_pts[s->cur_frame_start_index]);
@@ -71,8 +72,8 @@ static int dvbsub_parse(AVCodecParserContext *s,
if (i % 16 != 0)
ff_dlog(avctx, "\n");
- *poutbuf = NULL;
- *poutbuf_size = 0;
+ *poutbuf = buf;
+ *poutbuf_size = buf_size;
s->fetch_timestamp = 1;
@@ -89,7 +90,7 @@ static int dvbsub_parse(AVCodecParserContext *s,
if (buf_size < 2 || buf[0] != 0x20 || buf[1] != 0x00) {
ff_dlog(avctx, "Bad packet header\n");
- return -1;
+ return buf_size;
}
buf_pos = 2;
@@ -113,9 +114,9 @@ static int dvbsub_parse(AVCodecParserContext *s,
}
if (buf_size - buf_pos + pc->packet_index > PARSE_BUF_SIZE)
- return -1;
+ return buf_size;
-/* if not currently in a packet, discard data */
+/* if not currently in a packet, pass data */
if (pc->in_packet == 0)
return buf_size;
@@ -135,7 +136,7 @@ static int dvbsub_parse(AVCodecParserContext *s,
if (len + 6 <= p_end - p)
{
- *poutbuf_size += len + 6;
+ out_size += len + 6;
p += len + 6;
} else
@@ -159,9 +160,10 @@ static int dvbsub_parse(AVCodecParserContext *s,
}
}
- if (*poutbuf_size > 0)
+ if (out_size > 0)
{
*poutbuf = pc->packet_buf;
+ *poutbuf_size = out_size;
pc->packet_start = *poutbuf_size;
}
diff --git a/chromium/third_party/ffmpeg/libavcodec/dvbsubdec.c b/chromium/third_party/ffmpeg/libavcodec/dvbsubdec.c
index a657b1d3d0f..b59e8366570 100644
--- a/chromium/third_party/ffmpeg/libavcodec/dvbsubdec.c
+++ b/chromium/third_party/ffmpeg/libavcodec/dvbsubdec.c
@@ -127,6 +127,7 @@ typedef struct DVBSubContext {
int compute_edt; /**< if 1 end display time calculated using pts
if 0 (Default) calculated using time out */
int compute_clut;
+ int clut_count2[257][256];
int substream;
int64_t prev_start;
DVBSubRegion *region_list;
@@ -650,13 +651,17 @@ static int dvbsub_read_8bit_string(AVCodecContext *avctx,
return pixels_read;
}
-static void compute_default_clut(uint8_t *clut, AVSubtitleRect *rect, int w, int h)
+static void compute_default_clut(DVBSubContext *ctx, uint8_t *clut, AVSubtitleRect *rect, int w, int h)
{
uint8_t list[256] = {0};
uint8_t list_inv[256];
int counttab[256] = {0};
+ int (*counttab2)[256] = ctx->clut_count2;
int count, i, x, y;
ptrdiff_t stride = rect->linesize[0];
+
+ memset(ctx->clut_count2, 0 , sizeof(ctx->clut_count2));
+
#define V(x,y) rect->data[0][(x) + (y)*stride]
for (y = 0; y<h; y++) {
for (x = 0; x<w; x++) {
@@ -666,31 +671,32 @@ static void compute_default_clut(uint8_t *clut, AVSubtitleRect *rect, int w, int
int vt = y ? V(x,y-1) + 1 : 0;
int vb = y+1<h ? V(x,y+1) + 1 : 0;
counttab[v-1] += !!((v!=vl) + (v!=vr) + (v!=vt) + (v!=vb));
+ counttab2[vl][v-1] ++;
+ counttab2[vr][v-1] ++;
+ counttab2[vt][v-1] ++;
+ counttab2[vb][v-1] ++;
}
}
#define L(x,y) list[d[(x) + (y)*stride]]
for (i = 0; i<256; i++) {
- int scoretab[256] = {0};
+ counttab2[i+1][i] = 0;
+ }
+ for (i = 0; i<256; i++) {
int bestscore = 0;
int bestv = 0;
- for (y = 0; y<h; y++) {
- for (x = 0; x<w; x++) {
- uint8_t *d = &rect->data[0][x + y*stride];
- int v = *d;
- int l_m = list[v];
- int l_l = x ? L(-1, 0) : 1;
- int l_r = x+1<w ? L( 1, 0) : 1;
- int l_t = y ? L( 0,-1) : 1;
- int l_b = y+1<h ? L( 0, 1) : 1;
- if (l_m)
- continue;
- scoretab[v] += l_l + l_r + l_t + l_b;
- }
- }
+
for (x = 0; x < 256; x++) {
- if (scoretab[x]) {
- int score = 1024LL*scoretab[x] / counttab[x];
+ int scorev = 0;
+ if (list[x])
+ continue;
+ scorev += counttab2[0][x];
+ for (y = 0; y < 256; y++) {
+ scorev += list[y] * counttab2[y+1][x];
+ }
+
+ if (scorev) {
+ int score = 1024LL*scorev / counttab[x];
if (score > bestscore) {
bestscore = score;
bestv = x;
@@ -819,7 +825,7 @@ static int save_subtitle_set(AVCodecContext *avctx, AVSubtitle *sub, int *got_ou
if ((clut == &default_clut && ctx->compute_clut == -1) || ctx->compute_clut == 1) {
if (!region->has_computed_clut) {
- compute_default_clut(region->computed_clut, rect, rect->w, rect->h);
+ compute_default_clut(ctx, region->computed_clut, rect, rect->w, rect->h);
region->has_computed_clut = 1;
}
diff --git a/chromium/third_party/ffmpeg/libavcodec/dvdsub_parser.c b/chromium/third_party/ffmpeg/libavcodec/dvdsub_parser.c
index 32a945ed653..698ccb6987c 100644
--- a/chromium/third_party/ffmpeg/libavcodec/dvdsub_parser.c
+++ b/chromium/third_party/ffmpeg/libavcodec/dvdsub_parser.c
@@ -44,6 +44,9 @@ static int dvdsub_parse(AVCodecParserContext *s,
{
DVDSubParseContext *pc = s->priv_data;
+ *poutbuf = buf;
+ *poutbuf_size = buf_size;
+
if (pc->packet_index == 0) {
if (buf_size < 2 || AV_RB16(buf) && buf_size < 6) {
if (buf_size)
@@ -54,7 +57,11 @@ static int dvdsub_parse(AVCodecParserContext *s,
if (pc->packet_len == 0) /* HD-DVD subpicture packet */
pc->packet_len = AV_RB32(buf+2);
av_freep(&pc->packet);
- pc->packet = av_malloc(pc->packet_len);
+ if ((unsigned)pc->packet_len > INT_MAX - AV_INPUT_BUFFER_PADDING_SIZE) {
+ av_log(avctx, AV_LOG_ERROR, "packet length %d is invalid\n", pc->packet_len);
+ return buf_size;
+ }
+ pc->packet = av_malloc(pc->packet_len + AV_INPUT_BUFFER_PADDING_SIZE);
}
if (pc->packet) {
if (pc->packet_index + buf_size <= pc->packet_len) {
diff --git a/chromium/third_party/ffmpeg/libavcodec/dvdsubdec.c b/chromium/third_party/ffmpeg/libavcodec/dvdsubdec.c
index e18113c20c0..f1ac9e353e3 100644
--- a/chromium/third_party/ffmpeg/libavcodec/dvdsubdec.c
+++ b/chromium/third_party/ffmpeg/libavcodec/dvdsubdec.c
@@ -42,6 +42,7 @@ typedef struct DVDSubContext
uint8_t buf[0x10000];
int buf_size;
int forced_subs_only;
+ uint8_t used_color[256];
#ifdef DEBUG
int sub_id;
#endif
@@ -100,7 +101,7 @@ static int decode_run_8bit(GetBitContext *gb, int *color)
return len;
}
-static int decode_rle(uint8_t *bitmap, int linesize, int w, int h,
+static int decode_rle(uint8_t *bitmap, int linesize, int w, int h, uint8_t used_color[256],
const uint8_t *buf, int start, int buf_size, int is_8bit)
{
GetBitContext gb;
@@ -129,6 +130,7 @@ static int decode_rle(uint8_t *bitmap, int linesize, int w, int h,
len = decode_run_2bit(&gb, &color);
len = FFMIN(len, w - x);
memset(d + x, color, len);
+ used_color[color] = 1;
x += len;
if (x >= w) {
y++;
@@ -370,7 +372,7 @@ static int decode_dvd_subtitles(DVDSubContext *ctx, AVSubtitle *sub_header,
h = 0;
if (w > 0 && h > 1) {
reset_rects(sub_header);
-
+ memset(ctx->used_color, 0, sizeof(ctx->used_color));
sub_header->rects = av_mallocz(sizeof(*sub_header->rects));
if (!sub_header->rects)
goto fail;
@@ -381,10 +383,10 @@ static int decode_dvd_subtitles(DVDSubContext *ctx, AVSubtitle *sub_header,
bitmap = sub_header->rects[0]->data[0] = av_malloc(w * h);
if (!bitmap)
goto fail;
- if (decode_rle(bitmap, w * 2, w, (h + 1) / 2,
+ if (decode_rle(bitmap, w * 2, w, (h + 1) / 2, ctx->used_color,
buf, offset1, buf_size, is_8bit) < 0)
goto fail;
- if (decode_rle(bitmap + w, w * 2, w, h / 2,
+ if (decode_rle(bitmap + w, w * 2, w, h / 2, ctx->used_color,
buf, offset2, buf_size, is_8bit) < 0)
goto fail;
sub_header->rects[0]->data[1] = av_mallocz(AVPALETTE_SIZE);
@@ -448,19 +450,24 @@ static int is_transp(const uint8_t *buf, int pitch, int n,
}
/* return 0 if empty rectangle, 1 if non empty */
-static int find_smallest_bounding_rectangle(AVSubtitle *s)
+static int find_smallest_bounding_rectangle(DVDSubContext *ctx, AVSubtitle *s)
{
uint8_t transp_color[256] = { 0 };
int y1, y2, x1, x2, y, w, h, i;
uint8_t *bitmap;
+ int transparent = 1;
if (s->num_rects == 0 || !s->rects || s->rects[0]->w <= 0 || s->rects[0]->h <= 0)
return 0;
for(i = 0; i < s->rects[0]->nb_colors; i++) {
- if ((((uint32_t *)s->rects[0]->data[1])[i] >> 24) == 0)
+ if ((((uint32_t *)s->rects[0]->data[1])[i] >> 24) == 0) {
transp_color[i] = 1;
+ } else if (ctx->used_color[i])
+ transparent = 0;
}
+ if (transparent)
+ return 0;
y1 = 0;
while (y1 < s->rects[0]->h && is_transp(s->rects[0]->data[0] + y1 * s->rects[0]->linesize[0],
1, s->rects[0]->w, transp_color))
@@ -595,7 +602,7 @@ static int dvdsub_decode(AVCodecContext *avctx,
return buf_size;
}
- if (!is_menu && find_smallest_bounding_rectangle(sub) == 0)
+ if (!is_menu && find_smallest_bounding_rectangle(ctx, sub) == 0)
goto no_subtitle;
if (ctx->forced_subs_only && !(sub->rects[0]->flags & AV_SUBTITLE_FLAG_FORCED))
diff --git a/chromium/third_party/ffmpeg/libavcodec/dvdsubenc.c b/chromium/third_party/ffmpeg/libavcodec/dvdsubenc.c
index 26afdc666b4..ff95ed20026 100644
--- a/chromium/third_party/ffmpeg/libavcodec/dvdsubenc.c
+++ b/chromium/third_party/ffmpeg/libavcodec/dvdsubenc.c
@@ -438,7 +438,7 @@ static int dvdsub_init(AVCodecContext *avctx)
av_assert0(sizeof(dvdc->global_palette) == sizeof(default_palette));
memcpy(dvdc->global_palette, default_palette, sizeof(dvdc->global_palette));
- av_bprint_init(&extradata, 0, 1);
+ av_bprint_init(&extradata, 0, AV_BPRINT_SIZE_AUTOMATIC);
if (avctx->width && avctx->height)
av_bprintf(&extradata, "size: %dx%d\n", avctx->width, avctx->height);
av_bprintf(&extradata, "palette:");
diff --git a/chromium/third_party/ffmpeg/libavcodec/error_resilience.c b/chromium/third_party/ffmpeg/libavcodec/error_resilience.c
index 339042e2069..1abae53f41d 100644
--- a/chromium/third_party/ffmpeg/libavcodec/error_resilience.c
+++ b/chromium/third_party/ffmpeg/libavcodec/error_resilience.c
@@ -814,8 +814,7 @@ static int er_supported(ERContext *s)
{
if(s->avctx->hwaccel && s->avctx->hwaccel->decode_slice ||
!s->cur_pic.f ||
- s->cur_pic.field_picture ||
- s->avctx->profile == FF_PROFILE_MPEG4_SIMPLE_STUDIO
+ s->cur_pic.field_picture
)
return 0;
return 1;
diff --git a/chromium/third_party/ffmpeg/libavcodec/escape124.c b/chromium/third_party/ffmpeg/libavcodec/escape124.c
index eb051eba54a..cffd3e12b1a 100644
--- a/chromium/third_party/ffmpeg/libavcodec/escape124.c
+++ b/chromium/third_party/ffmpeg/libavcodec/escape124.c
@@ -221,7 +221,11 @@ static int escape124_decode_frame(AVCodecContext *avctx,
// This call also guards the potential depth reads for the
// codebook unpacking.
- if (get_bits_left(&gb) < 64)
+ // Check if the amount we will read minimally is available on input.
+ // The 64 represent the immediately next 2 frame_* elements read, the 23/4320
+ // represent a lower bound of the space needed for skipped superblocks. Non
+ // skipped SBs need more space.
+ if (get_bits_left(&gb) < 64 + s->num_superblocks * 23LL / 4320)
return -1;
frame_flags = get_bits_long(&gb, 32);
diff --git a/chromium/third_party/ffmpeg/libavcodec/extract_extradata_bsf.c b/chromium/third_party/ffmpeg/libavcodec/extract_extradata_bsf.c
index 082b3e749bc..6deb6634f38 100644
--- a/chromium/third_party/ffmpeg/libavcodec/extract_extradata_bsf.c
+++ b/chromium/third_party/ffmpeg/libavcodec/extract_extradata_bsf.c
@@ -24,6 +24,8 @@
#include "libavutil/opt.h"
#include "avcodec.h"
+#include "av1.h"
+#include "av1_parse.h"
#include "bsf.h"
#include "h2645_parse.h"
#include "h264.h"
@@ -36,6 +38,9 @@ typedef struct ExtractExtradataContext {
int (*extract)(AVBSFContext *ctx, AVPacket *pkt,
uint8_t **data, int *size);
+ /* AV1 specifc fields */
+ AV1Packet av1_pkt;
+
/* H264/HEVC specifc fields */
H2645Packet h2645_pkt;
@@ -52,6 +57,80 @@ static int val_in_array(const int *arr, int len, int val)
return 0;
}
+static int extract_extradata_av1(AVBSFContext *ctx, AVPacket *pkt,
+ uint8_t **data, int *size)
+{
+ static const int extradata_obu_types[] = {
+ AV1_OBU_SEQUENCE_HEADER, AV1_OBU_METADATA,
+ };
+ ExtractExtradataContext *s = ctx->priv_data;
+
+ int extradata_size = 0, filtered_size = 0;
+ int nb_extradata_obu_types = FF_ARRAY_ELEMS(extradata_obu_types);
+ int i, has_seq = 0, ret = 0;
+
+ ret = ff_av1_packet_split(&s->av1_pkt, pkt->data, pkt->size, ctx);
+ if (ret < 0)
+ return ret;
+
+ for (i = 0; i < s->av1_pkt.nb_obus; i++) {
+ AV1OBU *obu = &s->av1_pkt.obus[i];
+ if (val_in_array(extradata_obu_types, nb_extradata_obu_types, obu->type)) {
+ extradata_size += obu->raw_size;
+ if (obu->type == AV1_OBU_SEQUENCE_HEADER)
+ has_seq = 1;
+ } else if (s->remove) {
+ filtered_size += obu->raw_size;
+ }
+ }
+
+ if (extradata_size && has_seq) {
+ AVBufferRef *filtered_buf;
+ uint8_t *extradata, *filtered_data;
+
+ if (s->remove) {
+ filtered_buf = av_buffer_alloc(filtered_size + AV_INPUT_BUFFER_PADDING_SIZE);
+ if (!filtered_buf) {
+ return AVERROR(ENOMEM);
+ }
+ memset(filtered_buf->data + filtered_size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
+
+ filtered_data = filtered_buf->data;
+ }
+
+ extradata = av_malloc(extradata_size + AV_INPUT_BUFFER_PADDING_SIZE);
+ if (!extradata) {
+ av_buffer_unref(&filtered_buf);
+ return AVERROR(ENOMEM);
+ }
+ memset(extradata + extradata_size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
+
+ *data = extradata;
+ *size = extradata_size;
+
+ for (i = 0; i < s->av1_pkt.nb_obus; i++) {
+ AV1OBU *obu = &s->av1_pkt.obus[i];
+ if (val_in_array(extradata_obu_types, nb_extradata_obu_types,
+ obu->type)) {
+ memcpy(extradata, obu->raw_data, obu->raw_size);
+ extradata += obu->raw_size;
+ } else if (s->remove) {
+ memcpy(filtered_data, obu->raw_data, obu->raw_size);
+ filtered_data += obu->raw_size;
+ }
+ }
+
+ if (s->remove) {
+ av_buffer_unref(&pkt->buf);
+ pkt->buf = filtered_buf;
+ pkt->data = filtered_buf->data;
+ pkt->size = filtered_size;
+ }
+ }
+
+ return 0;
+}
+
static int extract_extradata_h2645(AVBSFContext *ctx, AVPacket *pkt,
uint8_t **data, int *size)
{
@@ -251,6 +330,7 @@ static const struct {
int (*extract)(AVBSFContext *ctx, AVPacket *pkt,
uint8_t **data, int *size);
} extract_tab[] = {
+ { AV_CODEC_ID_AV1, extract_extradata_av1 },
{ AV_CODEC_ID_CAVS, extract_extradata_mpeg4 },
{ AV_CODEC_ID_H264, extract_extradata_h2645 },
{ AV_CODEC_ID_HEVC, extract_extradata_h2645 },
@@ -311,10 +391,12 @@ fail:
static void extract_extradata_close(AVBSFContext *ctx)
{
ExtractExtradataContext *s = ctx->priv_data;
+ ff_av1_packet_uninit(&s->av1_pkt);
ff_h2645_packet_uninit(&s->h2645_pkt);
}
static const enum AVCodecID codec_ids[] = {
+ AV_CODEC_ID_AV1,
AV_CODEC_ID_CAVS,
AV_CODEC_ID_H264,
AV_CODEC_ID_HEVC,
diff --git a/chromium/third_party/ffmpeg/libavcodec/fft_template.c b/chromium/third_party/ffmpeg/libavcodec/fft_template.c
index 6c77854e411..762c014bc8b 100644
--- a/chromium/third_party/ffmpeg/libavcodec/fft_template.c
+++ b/chromium/third_party/ffmpeg/libavcodec/fft_template.c
@@ -523,9 +523,11 @@ static void name(FFTComplex *z, const FFTSample *wre, unsigned int n)\
}
PASS(pass)
+#if !CONFIG_SMALL
#undef BUTTERFLIES
#define BUTTERFLIES BUTTERFLIES_BIG
PASS(pass_big)
+#endif
#define DECL_FFT(n,n2,n4)\
static void fft##n(FFTComplex *z)\
diff --git a/chromium/third_party/ffmpeg/libavcodec/ffv1dec.c b/chromium/third_party/ffmpeg/libavcodec/ffv1dec.c
index 7658a516850..261e0cf70c2 100644
--- a/chromium/third_party/ffmpeg/libavcodec/ffv1dec.c
+++ b/chromium/third_party/ffmpeg/libavcodec/ffv1dec.c
@@ -546,8 +546,14 @@ static int read_header(FFV1Context *f)
f->ac = get_symbol(c, state, 0);
if (f->ac == AC_RANGE_CUSTOM_TAB) {
- for (i = 1; i < 256; i++)
- f->state_transition[i] = get_symbol(c, state, 1) + c->one_state[i];
+ for (i = 1; i < 256; i++) {
+ int st = get_symbol(c, state, 1) + c->one_state[i];
+ if (st < 1 || st > 255) {
+ av_log(f->avctx, AV_LOG_ERROR, "invalid state transition %d\n", st);
+ return AVERROR_INVALIDDATA;
+ }
+ f->state_transition[i] = st;
+ }
}
colorspace = get_symbol(c, state, 0); //YUV cs type
diff --git a/chromium/third_party/ffmpeg/libavcodec/ffv1enc.c b/chromium/third_party/ffmpeg/libavcodec/ffv1enc.c
index e6f4422fa1c..f5eb0feb4ec 100644
--- a/chromium/third_party/ffmpeg/libavcodec/ffv1enc.c
+++ b/chromium/third_party/ffmpeg/libavcodec/ffv1enc.c
@@ -123,7 +123,7 @@ static const uint8_t ver2_state[256] = {
40, 40, 41, 79, 43, 44, 45, 45, 48, 48, 64, 50, 51, 52, 88, 52,
53, 74, 55, 57, 58, 58, 74, 60, 101, 61, 62, 84, 66, 66, 68, 69,
87, 82, 71, 97, 73, 73, 82, 75, 111, 77, 94, 78, 87, 81, 83, 97,
- 85, 83, 94, 86, 99, 89, 90, 99, 111, 92, 93, 134, 95, 98, 105, 98,
+ 85, 83, 94, 86, 99, 89, 90, 99, 111, 92, 93, 134, 95, 98, 105, 98,
105, 110, 102, 108, 102, 118, 103, 106, 106, 113, 109, 112, 114, 112, 116, 125,
115, 116, 117, 117, 126, 119, 125, 121, 121, 123, 145, 124, 126, 131, 127, 129,
165, 130, 132, 138, 133, 135, 145, 136, 137, 139, 146, 141, 143, 142, 144, 148,
diff --git a/chromium/third_party/ffmpeg/libavcodec/h263dec.c b/chromium/third_party/ffmpeg/libavcodec/h263dec.c
index d38a664497d..248e548e046 100644
--- a/chromium/third_party/ffmpeg/libavcodec/h263dec.c
+++ b/chromium/third_party/ffmpeg/libavcodec/h263dec.c
@@ -47,7 +47,7 @@ static enum AVPixelFormat h263_get_format(AVCodecContext *avctx)
{
/* MPEG-4 Studio Profile only, not supported by hardware */
if (avctx->bits_per_raw_sample > 8) {
- av_assert1(avctx->profile == FF_PROFILE_MPEG4_SIMPLE_STUDIO);
+ av_assert1(((MpegEncContext *)avctx->priv_data)->studio_profile);
return avctx->pix_fmt;
}
@@ -668,7 +668,8 @@ retry:
av_assert1(s->bitstream_buffer_size == 0);
frame_end:
- ff_er_frame_end(&s->er);
+ if (!s->studio_profile)
+ ff_er_frame_end(&s->er);
if (avctx->hwaccel) {
ret = avctx->hwaccel->end_frame(avctx);
diff --git a/chromium/third_party/ffmpeg/libavcodec/h264_parser.c b/chromium/third_party/ffmpeg/libavcodec/h264_parser.c
index 006d9120255..8e269f6218c 100644
--- a/chromium/third_party/ffmpeg/libavcodec/h264_parser.c
+++ b/chromium/third_party/ffmpeg/libavcodec/h264_parser.c
@@ -119,20 +119,23 @@ static int h264_find_frame_end(H264ParseContext *p, const uint8_t *buf,
}
state = 7;
} else {
+ unsigned int mb, last_mb = p->parse_last_mb;
+ GetBitContext gb;
p->parse_history[p->parse_history_count++] = buf[i];
- if (p->parse_history_count > 5) {
- unsigned int mb, last_mb = p->parse_last_mb;
- GetBitContext gb;
- init_get_bits(&gb, p->parse_history, 8*p->parse_history_count);
- p->parse_history_count = 0;
- mb= get_ue_golomb_long(&gb);
+ init_get_bits(&gb, p->parse_history, 8*p->parse_history_count);
+ mb= get_ue_golomb_long(&gb);
+ if (get_bits_left(&gb) > 0 || p->parse_history_count > 5) {
p->parse_last_mb = mb;
if (pc->frame_start_found) {
- if (mb <= last_mb)
+ if (mb <= last_mb) {
+ i -= p->parse_history_count - 1;
+ p->parse_history_count = 0;
goto found;
+ }
} else
pc->frame_start_found = 1;
+ p->parse_history_count = 0;
state = 7;
}
}
@@ -147,7 +150,7 @@ found:
pc->frame_start_found = 0;
if (p->is_avc)
return next_avc;
- return i - (state & 5) - 5 * (state > 7);
+ return i - (state & 5);
}
static int scan_mmco_reset(AVCodecParserContext *s, GetBitContext *gb,
diff --git a/chromium/third_party/ffmpeg/libavcodec/h264_slice.c b/chromium/third_party/ffmpeg/libavcodec/h264_slice.c
index d71ddbe9ba4..ede9a1a6ea7 100644
--- a/chromium/third_party/ffmpeg/libavcodec/h264_slice.c
+++ b/chromium/third_party/ffmpeg/libavcodec/h264_slice.c
@@ -1407,6 +1407,11 @@ static int h264_field_start(H264Context *h, const H264SliceContext *sl,
sps = h->ps.sps;
+ if (sps && sps->bitstream_restriction_flag &&
+ h->avctx->has_b_frames < sps->num_reorder_frames) {
+ h->avctx->has_b_frames = sps->num_reorder_frames;
+ }
+
last_pic_droppable = h->droppable;
last_pic_structure = h->picture_structure;
h->droppable = (nal->ref_idc == 0);
diff --git a/chromium/third_party/ffmpeg/libavcodec/hevc_ps.c b/chromium/third_party/ffmpeg/libavcodec/hevc_ps.c
index bca3abb0211..fbd9fbfd09c 100644
--- a/chromium/third_party/ffmpeg/libavcodec/hevc_ps.c
+++ b/chromium/third_party/ffmpeg/libavcodec/hevc_ps.c
@@ -1094,11 +1094,9 @@ int ff_hevc_parse_sps(HEVCSPS *sps, GetBitContext *gb, unsigned int *sps_id,
decode_vui(gb, avctx, apply_defdispwin, sps);
if (get_bits1(gb)) { // sps_extension_flag
- int sps_extension_flag[1];
- for (i = 0; i < 1; i++)
- sps_extension_flag[i] = get_bits1(gb);
+ int sps_range_extension_flag = get_bits1(gb);
skip_bits(gb, 7); //sps_extension_7bits = get_bits(gb, 7);
- if (sps_extension_flag[0]) {
+ if (sps_range_extension_flag) {
int extended_precision_processing_flag;
int cabac_bypass_alignment_enabled_flag;
@@ -1681,7 +1679,7 @@ int ff_hevc_decode_nal_pps(GetBitContext *gb, AVCodecContext *avctx,
if (get_bits1(gb)) { // pps_extension_present_flag
int pps_range_extensions_flag = get_bits1(gb);
- /* int pps_extension_7bits = */ get_bits(gb, 7);
+ skip_bits(gb, 7); // pps_extension_7bits
if (sps->ptl.general_ptl.profile_idc == FF_PROFILE_HEVC_REXT && pps_range_extensions_flag) {
if ((ret = pps_range_extensions(gb, avctx, pps, sps)) < 0)
goto err;
diff --git a/chromium/third_party/ffmpeg/libavcodec/indeo4.c b/chromium/third_party/ffmpeg/libavcodec/indeo4.c
index 7dff9db8771..15ad6f8afc6 100644
--- a/chromium/third_party/ffmpeg/libavcodec/indeo4.c
+++ b/chromium/third_party/ffmpeg/libavcodec/indeo4.c
@@ -492,6 +492,11 @@ static int decode_mb_info(IVI45DecContext *ctx, IVIBandDesc *band,
mb->b_mv_x =
mb->b_mv_y = 0;
+ if (get_bits_left(&ctx->gb) < 1) {
+ av_log(avctx, AV_LOG_ERROR, "Insufficient input for mb info\n");
+ return AVERROR_INVALIDDATA;
+ }
+
if (get_bits1(&ctx->gb)) {
if (ctx->frame_type == IVI4_FRAMETYPE_INTRA) {
av_log(avctx, AV_LOG_ERROR, "Empty macroblock in an INTRA picture!\n");
diff --git a/chromium/third_party/ffmpeg/libavcodec/internal.h b/chromium/third_party/ffmpeg/libavcodec/internal.h
index bb92873d7b8..0c2133f0925 100644
--- a/chromium/third_party/ffmpeg/libavcodec/internal.h
+++ b/chromium/third_party/ffmpeg/libavcodec/internal.h
@@ -83,7 +83,7 @@
#define FF_QSCALE_TYPE_H264 2
#define FF_QSCALE_TYPE_VP56 3
-#define FF_SANE_NB_CHANNELS 64U
+#define FF_SANE_NB_CHANNELS 256U
#define FF_SIGNBIT(x) ((x) >> CHAR_BIT * sizeof(x) - 1)
diff --git a/chromium/third_party/ffmpeg/libavcodec/jpeg2000dec.c b/chromium/third_party/ffmpeg/libavcodec/jpeg2000dec.c
index 66f11bb2b25..96dab8e1766 100644
--- a/chromium/third_party/ffmpeg/libavcodec/jpeg2000dec.c
+++ b/chromium/third_party/ffmpeg/libavcodec/jpeg2000dec.c
@@ -343,7 +343,10 @@ static int get_siz(Jpeg2000DecoderContext *s)
s->numXtiles = ff_jpeg2000_ceildiv(s->width - s->tile_offset_x, s->tile_width);
s->numYtiles = ff_jpeg2000_ceildiv(s->height - s->tile_offset_y, s->tile_height);
- if (s->numXtiles * (uint64_t)s->numYtiles > INT_MAX/sizeof(*s->tile)) {
+ // There must be at least a SOT and SOD per tile, their minimum size is 14
+ if (s->numXtiles * (uint64_t)s->numYtiles > INT_MAX/sizeof(*s->tile) ||
+ s->numXtiles * s->numYtiles * 14LL > bytestream2_size(&s->g)
+ ) {
s->numXtiles = s->numYtiles = 0;
return AVERROR(EINVAL);
}
@@ -1251,10 +1254,10 @@ static int jpeg2000_decode_packets_po_iteration(Jpeg2000DecoderContext *s, Jpeg2
if (reslevelno >= codsty->nreslevels)
continue;
- if (yc % (1 << (rlevel->log2_prec_height + reducedresno)) && y != tile->coord[1][0]) //FIXME this is a subset of the check
+ if (yc % (1LL << (rlevel->log2_prec_height + reducedresno)) && y != tile->coord[1][0]) //FIXME this is a subset of the check
continue;
- if (xc % (1 << (rlevel->log2_prec_width + reducedresno)) && x != tile->coord[0][0]) //FIXME this is a subset of the check
+ if (xc % (1LL << (rlevel->log2_prec_width + reducedresno)) && x != tile->coord[0][0]) //FIXME this is a subset of the check
continue;
// check if a precinct exists
@@ -1322,10 +1325,10 @@ static int jpeg2000_decode_packets_po_iteration(Jpeg2000DecoderContext *s, Jpeg2
uint8_t reducedresno = codsty->nreslevels - 1 -reslevelno; // ==> N_L - r
Jpeg2000ResLevel *rlevel = comp->reslevel + reslevelno;
- if (yc % (1 << (rlevel->log2_prec_height + reducedresno)) && y != tile->coord[1][0]) //FIXME this is a subset of the check
+ if (yc % (1LL << (rlevel->log2_prec_height + reducedresno)) && y != tile->coord[1][0]) //FIXME this is a subset of the check
continue;
- if (xc % (1 << (rlevel->log2_prec_width + reducedresno)) && x != tile->coord[0][0]) //FIXME this is a subset of the check
+ if (xc % (1LL << (rlevel->log2_prec_width + reducedresno)) && x != tile->coord[0][0]) //FIXME this is a subset of the check
continue;
// check if a precinct exists
diff --git a/chromium/third_party/ffmpeg/libavcodec/lagarith.c b/chromium/third_party/ffmpeg/libavcodec/lagarith.c
index 0f4aa89486e..510a6ff2d6a 100644
--- a/chromium/third_party/ffmpeg/libavcodec/lagarith.c
+++ b/chromium/third_party/ffmpeg/libavcodec/lagarith.c
@@ -141,6 +141,7 @@ static int lag_read_prob_header(lag_rac *rac, GetBitContext *gb)
unsigned prob, cumulative_target;
unsigned cumul_prob = 0;
unsigned scaled_cumul_prob = 0;
+ int nnz = 0;
rac->prob[0] = 0;
rac->prob[257] = UINT_MAX;
@@ -164,6 +165,8 @@ static int lag_read_prob_header(lag_rac *rac, GetBitContext *gb)
prob = 256 - i;
for (j = 0; j < prob; j++)
rac->prob[++i] = 0;
+ }else {
+ nnz++;
}
}
@@ -172,6 +175,10 @@ static int lag_read_prob_header(lag_rac *rac, GetBitContext *gb)
return -1;
}
+ if (nnz == 1 && (show_bits_long(gb, 32) & 0xFFFFFF)) {
+ return AVERROR_INVALIDDATA;
+ }
+
/* Scale probabilities so cumulative probability is an even power of 2. */
scale_factor = av_log2(cumul_prob);
@@ -534,7 +541,7 @@ static int lag_decode_frame(AVCodecContext *avctx,
LagarithContext *l = avctx->priv_data;
ThreadFrame frame = { .f = data };
AVFrame *const p = data;
- uint8_t frametype = 0;
+ uint8_t frametype;
uint32_t offset_gu = 0, offset_bv = 0, offset_ry = 9;
uint32_t offs[4];
uint8_t *srcs[4], *dst;
diff --git a/chromium/third_party/ffmpeg/libavcodec/libaomenc.c b/chromium/third_party/ffmpeg/libavcodec/libaomenc.c
index 41b05dc1c05..0b75dc139ce 100644
--- a/chromium/third_party/ffmpeg/libavcodec/libaomenc.c
+++ b/chromium/third_party/ffmpeg/libavcodec/libaomenc.c
@@ -55,6 +55,7 @@ struct FrameListData {
typedef struct AOMEncoderContext {
AVClass *class;
+ AVBSFContext *bsf;
struct aom_codec_ctx encoder;
struct aom_image rawimg;
struct aom_fixed_buf twopass_stats;
@@ -202,6 +203,7 @@ static av_cold int aom_free(AVCodecContext *avctx)
av_freep(&ctx->twopass_stats.buf);
av_freep(&avctx->stats_out);
free_frame_list(ctx->coded_frame_list);
+ av_bsf_free(&ctx->bsf);
return 0;
}
@@ -463,6 +465,28 @@ static av_cold int aom_init(AVCodecContext *avctx,
if (!cpb_props)
return AVERROR(ENOMEM);
+ if (avctx->flags & AV_CODEC_FLAG_GLOBAL_HEADER) {
+ const AVBitStreamFilter *filter = av_bsf_get_by_name("extract_extradata");
+ int ret;
+
+ if (!filter) {
+ av_log(avctx, AV_LOG_ERROR, "extract_extradata bitstream filter "
+ "not found. This is a bug, please report it.\n");
+ return AVERROR_BUG;
+ }
+ ret = av_bsf_alloc(filter, &ctx->bsf);
+ if (ret < 0)
+ return ret;
+
+ ret = avcodec_parameters_from_context(ctx->bsf->par_in, avctx);
+ if (ret < 0)
+ return ret;
+
+ ret = av_bsf_init(ctx->bsf);
+ if (ret < 0)
+ return ret;
+ }
+
if (enccfg.rc_end_usage == AOM_CBR ||
enccfg.g_pass != AOM_RC_ONE_PASS) {
cpb_props->max_bitrate = avctx->rc_max_rate;
@@ -494,6 +518,7 @@ static inline void cx_pktcpy(struct FrameListData *dst,
static int storeframe(AVCodecContext *avctx, struct FrameListData *cx_frame,
AVPacket *pkt)
{
+ AOMContext *ctx = avctx->priv_data;
int ret = ff_alloc_packet2(avctx, pkt, cx_frame->sz, 0);
if (ret < 0) {
av_log(avctx, AV_LOG_ERROR,
@@ -505,6 +530,22 @@ static int storeframe(AVCodecContext *avctx, struct FrameListData *cx_frame,
if (!!(cx_frame->flags & AOM_FRAME_IS_KEY))
pkt->flags |= AV_PKT_FLAG_KEY;
+
+ if (avctx->flags & AV_CODEC_FLAG_GLOBAL_HEADER) {
+ ret = av_bsf_send_packet(ctx->bsf, pkt);
+ if (ret < 0) {
+ av_log(avctx, AV_LOG_ERROR, "extract_extradata filter "
+ "failed to send input packet\n");
+ return ret;
+ }
+ ret = av_bsf_receive_packet(ctx->bsf, pkt);
+
+ if (ret < 0) {
+ av_log(avctx, AV_LOG_ERROR, "extract_extradata filter "
+ "failed to receive output packet\n");
+ return ret;
+ }
+ }
return pkt->size;
}
diff --git a/chromium/third_party/ffmpeg/libavcodec/libopenjpegdec.c b/chromium/third_party/ffmpeg/libavcodec/libopenjpegdec.c
index 5e66cd99cc3..344c5ba5a38 100644
--- a/chromium/third_party/ffmpeg/libavcodec/libopenjpegdec.c
+++ b/chromium/third_party/ffmpeg/libavcodec/libopenjpegdec.c
@@ -45,6 +45,7 @@
AV_PIX_FMT_RGB48, AV_PIX_FMT_RGBA64
#define GRAY_PIXEL_FORMATS AV_PIX_FMT_GRAY8, AV_PIX_FMT_YA8, \
+ AV_PIX_FMT_GRAY10, AV_PIX_FMT_GRAY12, AV_PIX_FMT_GRAY14, \
AV_PIX_FMT_GRAY16, AV_PIX_FMT_YA16
#define YUV_PIXEL_FORMATS AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUVA420P, \
diff --git a/chromium/third_party/ffmpeg/libavcodec/libopenjpegenc.c b/chromium/third_party/ffmpeg/libavcodec/libopenjpegenc.c
index 7c7d0aa6b2a..199800898e4 100644
--- a/chromium/third_party/ffmpeg/libavcodec/libopenjpegenc.c
+++ b/chromium/third_party/ffmpeg/libavcodec/libopenjpegenc.c
@@ -189,6 +189,9 @@ static opj_image_t *mj2_create_image(AVCodecContext *avctx, opj_cparameters_t *p
switch (avctx->pix_fmt) {
case AV_PIX_FMT_GRAY8:
case AV_PIX_FMT_YA8:
+ case AV_PIX_FMT_GRAY10:
+ case AV_PIX_FMT_GRAY12:
+ case AV_PIX_FMT_GRAY14:
case AV_PIX_FMT_GRAY16:
case AV_PIX_FMT_YA16:
color_space = OPJ_CLRSPC_GRAY;
@@ -612,6 +615,9 @@ static int libopenjpeg_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
case AV_PIX_FMT_YUVA444P:
cpyresult = libopenjpeg_copy_unpacked8(avctx, frame, image);
break;
+ case AV_PIX_FMT_GRAY10:
+ case AV_PIX_FMT_GRAY12:
+ case AV_PIX_FMT_GRAY14:
case AV_PIX_FMT_GRAY16:
case AV_PIX_FMT_YUV420P9:
case AV_PIX_FMT_YUV422P9:
@@ -763,6 +769,7 @@ AVCodec ff_libopenjpeg_encoder = {
AV_PIX_FMT_RGBA64, AV_PIX_FMT_GBR24P,
AV_PIX_FMT_GBRP9, AV_PIX_FMT_GBRP10, AV_PIX_FMT_GBRP12, AV_PIX_FMT_GBRP14, AV_PIX_FMT_GBRP16,
AV_PIX_FMT_GRAY8, AV_PIX_FMT_YA8, AV_PIX_FMT_GRAY16, AV_PIX_FMT_YA16,
+ AV_PIX_FMT_GRAY10, AV_PIX_FMT_GRAY12, AV_PIX_FMT_GRAY14,
AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA420P,
AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVA422P,
AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUVA444P,
diff --git a/chromium/third_party/ffmpeg/libavcodec/libx265.c b/chromium/third_party/ffmpeg/libavcodec/libx265.c
index bb457dfe5a5..27c90b323fe 100644
--- a/chromium/third_party/ffmpeg/libavcodec/libx265.c
+++ b/chromium/third_party/ffmpeg/libavcodec/libx265.c
@@ -205,6 +205,9 @@ static av_cold int libx265_encode_init(AVCodecContext *avctx)
ctx->params->rc.rateControlMode = X265_RC_ABR;
}
+ ctx->params->rc.vbvBufferSize = avctx->rc_buffer_size / 1000;
+ ctx->params->rc.vbvMaxBitrate = avctx->rc_max_rate / 1000;
+
if (!(avctx->flags & AV_CODEC_FLAG_GLOBAL_HEADER))
ctx->params->bRepeatHeaders = 1;
@@ -233,6 +236,11 @@ static av_cold int libx265_encode_init(AVCodecContext *avctx)
}
}
+ if (ctx->params->rc.vbvBufferSize && avctx->rc_initial_buffer_occupancy > 1000 &&
+ ctx->params->rc.vbvBufferInit == 0.9) {
+ ctx->params->rc.vbvBufferInit = (float)avctx->rc_initial_buffer_occupancy / 1000;
+ }
+
if (ctx->profile) {
if (ctx->api->param_apply_profile(ctx->params, ctx->profile) < 0) {
int i;
diff --git a/chromium/third_party/ffmpeg/libavcodec/libzvbi-teletextdec.c b/chromium/third_party/ffmpeg/libavcodec/libzvbi-teletextdec.c
index ccded23e7ca..809547545bd 100644
--- a/chromium/third_party/ffmpeg/libavcodec/libzvbi-teletextdec.c
+++ b/chromium/third_party/ffmpeg/libavcodec/libzvbi-teletextdec.c
@@ -74,6 +74,8 @@ typedef struct TeletextContext
int readorder;
uint8_t subtitle_map[2048];
+ int last_pgno;
+ int last_p5;
} TeletextContext;
static int chop_spaces_utf8(const unsigned char* t, int len)
@@ -372,6 +374,17 @@ static int slice_to_vbi_lines(TeletextContext *ctx, uint8_t* buf, int size)
int pgno = ((pmag & 7) << 8) + page;
// Check for disabled NEWSFLASH flag and enabled SUBTITLE and SUPRESS_HEADER flags
ctx->subtitle_map[pgno] = (!(flags1 & 0x40) && flags1 & 0x80 && flags2 & 0x01);
+ // Propagate ERASE_PAGE flag for repeated page headers to work around a libzvbi bug
+ if (ctx->subtitle_map[pgno] && pgno == ctx->last_pgno) {
+ int last_byte9 = vbi_unham8(ctx->last_p5);
+ if (last_byte9 >= 0 && last_byte9 & 0x8) {
+ int byte9 = vbi_unham8(p[5]);
+ if (byte9 >= 0)
+ p[5] = vbi_ham8(byte9 | 0x8);
+ }
+ }
+ ctx->last_pgno = pgno;
+ ctx->last_p5 = p[5];
}
}
lines++;
@@ -494,6 +507,7 @@ static int teletext_init_decoder(AVCodecContext *avctx)
ctx->vbi = NULL;
ctx->pts = AV_NOPTS_VALUE;
+ ctx->last_pgno = -1;
if (ctx->opacity == -1)
ctx->opacity = ctx->transparent_bg ? 0 : 255;
@@ -514,6 +528,7 @@ static int teletext_close_decoder(AVCodecContext *avctx)
vbi_decoder_delete(ctx->vbi);
ctx->vbi = NULL;
ctx->pts = AV_NOPTS_VALUE;
+ ctx->last_pgno = -1;
memset(ctx->subtitle_map, 0, sizeof(ctx->subtitle_map));
if (!(avctx->flags2 & AV_CODEC_FLAG2_RO_FLUSH_NOOP))
ctx->readorder = 0;
diff --git a/chromium/third_party/ffmpeg/libavcodec/magicyuv.c b/chromium/third_party/ffmpeg/libavcodec/magicyuv.c
index 9c6e1ba1b14..1a129c26198 100644
--- a/chromium/third_party/ffmpeg/libavcodec/magicyuv.c
+++ b/chromium/third_party/ffmpeg/libavcodec/magicyuv.c
@@ -240,6 +240,8 @@ static int magy_decode_slice10(AVCodecContext *avctx, void *tdata,
dst = (uint16_t *)p->data[i] + j * sheight * stride;
if (flags & 1) {
+ if (get_bits_left(&gb) < bps * width * height)
+ return AVERROR_INVALIDDATA;
for (k = 0; k < height; k++) {
for (x = 0; x < width; x++)
dst[x] = get_bits(&gb, bps);
@@ -368,6 +370,8 @@ static int magy_decode_slice(AVCodecContext *avctx, void *tdata,
dst = p->data[i] + j * sheight * stride;
if (flags & 1) {
+ if (get_bits_left(&gb) < 8* width * height)
+ return AVERROR_INVALIDDATA;
for (k = 0; k < height; k++) {
for (x = 0; x < width; x++)
dst[x] = get_bits(&gb, 8);
diff --git a/chromium/third_party/ffmpeg/libavcodec/mediacodecdec_common.c b/chromium/third_party/ffmpeg/libavcodec/mediacodecdec_common.c
index 40a2ee67781..887865a281d 100644
--- a/chromium/third_party/ffmpeg/libavcodec/mediacodecdec_common.c
+++ b/chromium/third_party/ffmpeg/libavcodec/mediacodecdec_common.c
@@ -443,6 +443,8 @@ static int mediacodec_dec_flush_codec(AVCodecContext *avctx, MediaCodecDecContex
FFAMediaCodec *codec = s->codec;
int status;
+ s->output_buffer_count = 0;
+
s->draining = 0;
s->flushing = 0;
s->eos = 0;
@@ -670,7 +672,10 @@ int ff_mediacodec_dec_receive(AVCodecContext *avctx, MediaCodecDecContext *s,
/* If the codec is flushing or need to be flushed, block for a fair
* amount of time to ensure we got a frame */
output_dequeue_timeout_us = OUTPUT_DEQUEUE_BLOCK_TIMEOUT_US;
- } else if (!wait) {
+ } else if (s->output_buffer_count == 0 || !wait) {
+ /* If the codec hasn't produced any frames, do not block so we
+ * can push data to it as fast as possible, and get the first
+ * frame */
output_dequeue_timeout_us = 0;
}
@@ -704,6 +709,7 @@ int ff_mediacodec_dec_receive(AVCodecContext *avctx, MediaCodecDecContext *s,
}
}
+ s->output_buffer_count++;
return 0;
} else {
status = ff_AMediaCodec_releaseOutputBuffer(codec, index, 0);
diff --git a/chromium/third_party/ffmpeg/libavcodec/mediacodecdec_common.h b/chromium/third_party/ffmpeg/libavcodec/mediacodecdec_common.h
index d280236b8ee..0b21129fee4 100644
--- a/chromium/third_party/ffmpeg/libavcodec/mediacodecdec_common.h
+++ b/chromium/third_party/ffmpeg/libavcodec/mediacodecdec_common.h
@@ -64,6 +64,7 @@ typedef struct MediaCodecDecContext {
int display_width;
int display_height;
+ uint64_t output_buffer_count;
ssize_t current_input_buffer;
bool delay_flush;
diff --git a/chromium/third_party/ffmpeg/libavcodec/mips/vc1dsp_mips.h b/chromium/third_party/ffmpeg/libavcodec/mips/vc1dsp_mips.h
index b9b07e1ce37..0db85fac94f 100644
--- a/chromium/third_party/ffmpeg/libavcodec/mips/vc1dsp_mips.h
+++ b/chromium/third_party/ffmpeg/libavcodec/mips/vc1dsp_mips.h
@@ -169,7 +169,7 @@ void ff_vc1_inv_trans_8x8_dc_mmi(uint8_t *dest, ptrdiff_t linesize, int16_t *blo
void ff_vc1_v_overlap_mmi(uint8_t *src, int stride);
void ff_vc1_h_overlap_mmi(uint8_t *src, int stride);
void ff_vc1_v_s_overlap_mmi(int16_t *top, int16_t *bottom);
-void ff_vc1_h_s_overlap_mmi(int16_t *left, int16_t *right);
+void ff_vc1_h_s_overlap_mmi(int16_t *left, int16_t *right, int left_stride, int right_stride, int flags);
void ff_vc1_v_loop_filter4_mmi(uint8_t *src, int stride, int pq);
void ff_vc1_h_loop_filter4_mmi(uint8_t *src, int stride, int pq);
diff --git a/chromium/third_party/ffmpeg/libavcodec/mips/vc1dsp_mmi.c b/chromium/third_party/ffmpeg/libavcodec/mips/vc1dsp_mmi.c
index 01e7f9f32c2..ec2fdca9873 100644
--- a/chromium/third_party/ffmpeg/libavcodec/mips/vc1dsp_mmi.c
+++ b/chromium/third_party/ffmpeg/libavcodec/mips/vc1dsp_mmi.c
@@ -1019,12 +1019,13 @@ void ff_vc1_h_overlap_mmi(uint8_t *src, int stride)
}
}
-void ff_vc1_h_s_overlap_mmi(int16_t *left, int16_t *right)
+void ff_vc1_h_s_overlap_mmi(int16_t *left, int16_t *right, int left_stride, int right_stride, int flags)
{
int i;
int a, b, c, d;
int d1, d2;
- int rnd1 = 4, rnd2 = 3;
+ int rnd1 = flags & 2 ? 3 : 4;
+ int rnd2 = 7 - rnd1;
for (i = 0; i < 8; i++) {
a = left[6];
b = left[7];
@@ -1038,10 +1039,12 @@ void ff_vc1_h_s_overlap_mmi(int16_t *left, int16_t *right)
right[0] = ((c << 3) + d2 + rnd1) >> 3;
right[1] = ((d << 3) + d1 + rnd2) >> 3;
- right += 8;
- left += 8;
- rnd2 = 7 - rnd2;
- rnd1 = 7 - rnd1;
+ right += right_stride;
+ left += left_stride;
+ if (flags & 1) {
+ rnd2 = 7 - rnd2;
+ rnd1 = 7 - rnd1;
+ }
}
}
diff --git a/chromium/third_party/ffmpeg/libavcodec/mjpegdec.c b/chromium/third_party/ffmpeg/libavcodec/mjpegdec.c
index d1dca84d369..5e784d980c0 100644
--- a/chromium/third_party/ffmpeg/libavcodec/mjpegdec.c
+++ b/chromium/third_party/ffmpeg/libavcodec/mjpegdec.c
@@ -626,6 +626,10 @@ unk_pixfmt:
avpriv_report_missing_feature(s->avctx, "Lowres for weird subsampling");
return AVERROR_PATCHWELCOME;
}
+ if ((AV_RB32(s->upscale_h) || AV_RB32(s->upscale_v)) && s->progressive && s->avctx->pix_fmt == AV_PIX_FMT_GBRP) {
+ avpriv_report_missing_feature(s->avctx, "progressive for weird subsampling");
+ return AVERROR_PATCHWELCOME;
+ }
if (s->ls) {
memset(s->upscale_h, 0, sizeof(s->upscale_h));
memset(s->upscale_v, 0, sizeof(s->upscale_v));
@@ -1055,6 +1059,11 @@ static int ljpeg_decode_rgb_scan(MJpegDecodeContext *s, int nb_components, int p
for (mb_x = 0; mb_x < s->mb_width; mb_x++) {
int modified_predictor = predictor;
+ if (get_bits_left(&s->gb) < 1) {
+ av_log(s->avctx, AV_LOG_ERROR, "bitstream end in rgb_scan\n");
+ return AVERROR_INVALIDDATA;
+ }
+
if (s->restart_interval && !s->restart_count){
s->restart_count = s->restart_interval;
resync_mb_x = mb_x;
diff --git a/chromium/third_party/ffmpeg/libavcodec/mpeg4videodec.c b/chromium/third_party/ffmpeg/libavcodec/mpeg4videodec.c
index b2c3cdfdc4c..6355a862952 100644
--- a/chromium/third_party/ffmpeg/libavcodec/mpeg4videodec.c
+++ b/chromium/third_party/ffmpeg/libavcodec/mpeg4videodec.c
@@ -1978,15 +1978,15 @@ static int mpeg4_decode_gop_header(MpegEncContext *s, GetBitContext *gb)
return 0;
}
-static int mpeg4_decode_profile_level(MpegEncContext *s, GetBitContext *gb)
+static int mpeg4_decode_profile_level(MpegEncContext *s, GetBitContext *gb, int *profile, int *level)
{
- s->avctx->profile = get_bits(gb, 4);
- s->avctx->level = get_bits(gb, 4);
+ *profile = get_bits(gb, 4);
+ *level = get_bits(gb, 4);
// for Simple profile, level 0
- if (s->avctx->profile == 0 && s->avctx->level == 8) {
- s->avctx->level = 0;
+ if (*profile == 0 && *level == 8) {
+ *level = 0;
}
return 0;
@@ -2865,11 +2865,13 @@ static int decode_vop_header(Mpeg4DecContext *ctx, GetBitContext *gb)
return 0;
}
-static void read_quant_matrix_ext(MpegEncContext *s, GetBitContext *gb)
+static int read_quant_matrix_ext(MpegEncContext *s, GetBitContext *gb)
{
int i, j, v;
if (get_bits1(gb)) {
+ if (get_bits_left(gb) < 64*8)
+ return AVERROR_INVALIDDATA;
/* intra_quantiser_matrix */
for (i = 0; i < 64; i++) {
v = get_bits(gb, 8);
@@ -2880,6 +2882,8 @@ static void read_quant_matrix_ext(MpegEncContext *s, GetBitContext *gb)
}
if (get_bits1(gb)) {
+ if (get_bits_left(gb) < 64*8)
+ return AVERROR_INVALIDDATA;
/* non_intra_quantiser_matrix */
for (i = 0; i < 64; i++) {
get_bits(gb, 8);
@@ -2887,6 +2891,8 @@ static void read_quant_matrix_ext(MpegEncContext *s, GetBitContext *gb)
}
if (get_bits1(gb)) {
+ if (get_bits_left(gb) < 64*8)
+ return AVERROR_INVALIDDATA;
/* chroma_intra_quantiser_matrix */
for (i = 0; i < 64; i++) {
v = get_bits(gb, 8);
@@ -2896,6 +2902,8 @@ static void read_quant_matrix_ext(MpegEncContext *s, GetBitContext *gb)
}
if (get_bits1(gb)) {
+ if (get_bits_left(gb) < 64*8)
+ return AVERROR_INVALIDDATA;
/* chroma_non_intra_quantiser_matrix */
for (i = 0; i < 64; i++) {
get_bits(gb, 8);
@@ -2903,6 +2911,7 @@ static void read_quant_matrix_ext(MpegEncContext *s, GetBitContext *gb)
}
next_start_code_studio(gb);
+ return 0;
}
static void extension_and_user_data(MpegEncContext *s, GetBitContext *gb, int id)
@@ -3107,6 +3116,12 @@ int ff_mpeg4_decode_picture_header(Mpeg4DecContext *ctx, GetBitContext *gb)
/* search next start code */
align_get_bits(gb);
+ // If we have not switched to studio profile than we also did not switch bps
+ // that means something else (like a previous instance) outside set bps which
+ // would be inconsistant with the currect state, thus reset it
+ if (!s->studio_profile && s->avctx->bits_per_raw_sample != 8)
+ s->avctx->bits_per_raw_sample = 0;
+
if (s->codec_tag == AV_RL32("WV1F") && show_bits(gb, 24) == 0x575630) {
skip_bits(gb, 24);
if (get_bits(gb, 8) == 0xF0)
@@ -3203,13 +3218,19 @@ int ff_mpeg4_decode_picture_header(Mpeg4DecContext *ctx, GetBitContext *gb)
} else if (startcode == GOP_STARTCODE) {
mpeg4_decode_gop_header(s, gb);
} else if (startcode == VOS_STARTCODE) {
- mpeg4_decode_profile_level(s, gb);
- if (s->avctx->profile == FF_PROFILE_MPEG4_SIMPLE_STUDIO &&
- (s->avctx->level > 0 && s->avctx->level < 9)) {
+ int profile, level;
+ mpeg4_decode_profile_level(s, gb, &profile, &level);
+ if (profile == FF_PROFILE_MPEG4_SIMPLE_STUDIO &&
+ (level > 0 && level < 9)) {
s->studio_profile = 1;
next_start_code_studio(gb);
extension_and_user_data(s, gb, 0);
+ } else if (s->studio_profile) {
+ avpriv_request_sample(s->avctx, "Mixes studio and non studio profile\n");
+ return AVERROR_PATCHWELCOME;
}
+ s->avctx->profile = profile;
+ s->avctx->level = level;
} else if (startcode == VISUAL_OBJ_STARTCODE) {
if (s->studio_profile) {
if ((ret = decode_studiovisualobject(ctx, gb)) < 0)
diff --git a/chromium/third_party/ffmpeg/libavcodec/mpegaudiodecheader.h b/chromium/third_party/ffmpeg/libavcodec/mpegaudiodecheader.h
index 1cb9216461a..1da2a4cb6f9 100644
--- a/chromium/third_party/ffmpeg/libavcodec/mpegaudiodecheader.h
+++ b/chromium/third_party/ffmpeg/libavcodec/mpegaudiodecheader.h
@@ -62,6 +62,9 @@ static inline int ff_mpa_check_header(uint32_t header){
/* header */
if ((header & 0xffe00000) != 0xffe00000)
return -1;
+ /* version check */
+ if ((header & (3<<19)) == 1<<19)
+ return -1;
/* layer check */
if ((header & (3<<17)) == 0)
return -1;
diff --git a/chromium/third_party/ffmpeg/libavcodec/nvenc.c b/chromium/third_party/ffmpeg/libavcodec/nvenc.c
index b4186c0bec6..cfa7268a5eb 100644
--- a/chromium/third_party/ffmpeg/libavcodec/nvenc.c
+++ b/chromium/third_party/ffmpeg/libavcodec/nvenc.c
@@ -2051,8 +2051,16 @@ int ff_nvenc_send_frame(AVCodecContext *avctx, const AVFrame *frame)
if ((!ctx->cu_context && !ctx->d3d11_device) || !ctx->nvencoder)
return AVERROR(EINVAL);
- if (ctx->encoder_flushing)
- return AVERROR_EOF;
+ if (ctx->encoder_flushing) {
+ if (avctx->internal->draining)
+ return AVERROR_EOF;
+
+ ctx->encoder_flushing = 0;
+ ctx->first_packet_output = 0;
+ ctx->initial_pts[0] = AV_NOPTS_VALUE;
+ ctx->initial_pts[1] = AV_NOPTS_VALUE;
+ av_fifo_reset(ctx->timestamp_list);
+ }
if (frame) {
in_surf = get_free_frame(ctx);
diff --git a/chromium/third_party/ffmpeg/libavcodec/parser.c b/chromium/third_party/ffmpeg/libavcodec/parser.c
index f43b197d5ea..0a994a3f30b 100644
--- a/chromium/third_party/ffmpeg/libavcodec/parser.c
+++ b/chromium/third_party/ffmpeg/libavcodec/parser.c
@@ -27,95 +27,10 @@
#include "libavutil/avassert.h"
#include "libavutil/internal.h"
#include "libavutil/mem.h"
-#include "libavutil/thread.h"
#include "internal.h"
#include "parser.h"
-/* Parsers */
-extern AVCodecParser ff_aac_parser;
-extern AVCodecParser ff_aac_latm_parser;
-extern AVCodecParser ff_ac3_parser;
-extern AVCodecParser ff_adx_parser;
-extern AVCodecParser ff_bmp_parser;
-extern AVCodecParser ff_cavsvideo_parser;
-extern AVCodecParser ff_cook_parser;
-extern AVCodecParser ff_dca_parser;
-extern AVCodecParser ff_dirac_parser;
-extern AVCodecParser ff_dnxhd_parser;
-extern AVCodecParser ff_dpx_parser;
-extern AVCodecParser ff_dvaudio_parser;
-extern AVCodecParser ff_dvbsub_parser;
-extern AVCodecParser ff_dvdsub_parser;
-extern AVCodecParser ff_dvd_nav_parser;
-extern AVCodecParser ff_flac_parser;
-extern AVCodecParser ff_g729_parser;
-extern AVCodecParser ff_gsm_parser;
-extern AVCodecParser ff_h261_parser;
-extern AVCodecParser ff_h263_parser;
-extern AVCodecParser ff_h264_parser;
-extern AVCodecParser ff_hevc_parser;
-extern AVCodecParser ff_mjpeg_parser;
-extern AVCodecParser ff_mlp_parser;
-extern AVCodecParser ff_mpeg4video_parser;
-extern AVCodecParser ff_mpegaudio_parser;
-extern AVCodecParser ff_mpegvideo_parser;
-extern AVCodecParser ff_opus_parser;
-extern AVCodecParser ff_png_parser;
-extern AVCodecParser ff_pnm_parser;
-extern AVCodecParser ff_rv30_parser;
-extern AVCodecParser ff_rv40_parser;
-extern AVCodecParser ff_sbc_parser;
-extern AVCodecParser ff_sipr_parser;
-extern AVCodecParser ff_tak_parser;
-extern AVCodecParser ff_vc1_parser;
-extern AVCodecParser ff_vorbis_parser;
-extern AVCodecParser ff_vp3_parser;
-extern AVCodecParser ff_vp8_parser;
-extern AVCodecParser ff_vp9_parser;
-extern AVCodecParser ff_xma_parser;
-
-#include "libavcodec/parser_list.c"
-
-static AVOnce av_parser_next_init = AV_ONCE_INIT;
-
-static void av_parser_init_next(void)
-{
- AVCodecParser *prev = NULL, *p;
- int i = 0;
- while ((p = (AVCodecParser*)parser_list[i++])) {
- if (prev)
- prev->next = p;
- prev = p;
- }
-}
-
-AVCodecParser *av_parser_next(const AVCodecParser *p)
-{
- ff_thread_once(&av_parser_next_init, av_parser_init_next);
-
- if (p)
- return p->next;
- else
- return (AVCodecParser*)parser_list[0];
-}
-
-const AVCodecParser *av_parser_iterate(void **opaque)
-{
- uintptr_t i = (uintptr_t)*opaque;
- const AVCodecParser *p = parser_list[i];
-
- if (p)
- *opaque = (void*)(i + 1);
-
- return p;
-}
-
-void av_register_codec_parser(AVCodecParser *parser)
-{
- ff_thread_once(&av_parser_next_init, av_parser_init_next);
-}
-
AVCodecParserContext *av_parser_init(int codec_id)
{
AVCodecParserContext *s = NULL;
diff --git a/chromium/third_party/ffmpeg/libavcodec/parsers.c b/chromium/third_party/ffmpeg/libavcodec/parsers.c
new file mode 100644
index 00000000000..f2886ff45fc
--- /dev/null
+++ b/chromium/third_party/ffmpeg/libavcodec/parsers.c
@@ -0,0 +1,106 @@
+/*
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <stdint.h>
+
+#include "libavutil/thread.h"
+
+#include "avcodec.h"
+
+extern AVCodecParser ff_aac_parser;
+extern AVCodecParser ff_aac_latm_parser;
+extern AVCodecParser ff_ac3_parser;
+extern AVCodecParser ff_adx_parser;
+extern AVCodecParser ff_bmp_parser;
+extern AVCodecParser ff_cavsvideo_parser;
+extern AVCodecParser ff_cook_parser;
+extern AVCodecParser ff_dca_parser;
+extern AVCodecParser ff_dirac_parser;
+extern AVCodecParser ff_dnxhd_parser;
+extern AVCodecParser ff_dpx_parser;
+extern AVCodecParser ff_dvaudio_parser;
+extern AVCodecParser ff_dvbsub_parser;
+extern AVCodecParser ff_dvdsub_parser;
+extern AVCodecParser ff_dvd_nav_parser;
+extern AVCodecParser ff_flac_parser;
+extern AVCodecParser ff_g729_parser;
+extern AVCodecParser ff_gsm_parser;
+extern AVCodecParser ff_h261_parser;
+extern AVCodecParser ff_h263_parser;
+extern AVCodecParser ff_h264_parser;
+extern AVCodecParser ff_hevc_parser;
+extern AVCodecParser ff_mjpeg_parser;
+extern AVCodecParser ff_mlp_parser;
+extern AVCodecParser ff_mpeg4video_parser;
+extern AVCodecParser ff_mpegaudio_parser;
+extern AVCodecParser ff_mpegvideo_parser;
+extern AVCodecParser ff_opus_parser;
+extern AVCodecParser ff_png_parser;
+extern AVCodecParser ff_pnm_parser;
+extern AVCodecParser ff_rv30_parser;
+extern AVCodecParser ff_rv40_parser;
+extern AVCodecParser ff_sbc_parser;
+extern AVCodecParser ff_sipr_parser;
+extern AVCodecParser ff_tak_parser;
+extern AVCodecParser ff_vc1_parser;
+extern AVCodecParser ff_vorbis_parser;
+extern AVCodecParser ff_vp3_parser;
+extern AVCodecParser ff_vp8_parser;
+extern AVCodecParser ff_vp9_parser;
+extern AVCodecParser ff_xma_parser;
+
+#include "libavcodec/parser_list.c"
+
+static AVOnce av_parser_next_init = AV_ONCE_INIT;
+
+static void av_parser_init_next(void)
+{
+ AVCodecParser *prev = NULL, *p;
+ int i = 0;
+ while ((p = (AVCodecParser*)parser_list[i++])) {
+ if (prev)
+ prev->next = p;
+ prev = p;
+ }
+}
+
+AVCodecParser *av_parser_next(const AVCodecParser *p)
+{
+ ff_thread_once(&av_parser_next_init, av_parser_init_next);
+
+ if (p)
+ return p->next;
+ else
+ return (AVCodecParser*)parser_list[0];
+}
+
+const AVCodecParser *av_parser_iterate(void **opaque)
+{
+ uintptr_t i = (uintptr_t)*opaque;
+ const AVCodecParser *p = parser_list[i];
+
+ if (p)
+ *opaque = (void*)(i + 1);
+
+ return p;
+}
+
+void av_register_codec_parser(AVCodecParser *parser)
+{
+ ff_thread_once(&av_parser_next_init, av_parser_init_next);
+}
diff --git a/chromium/third_party/ffmpeg/libavcodec/pngdec.c b/chromium/third_party/ffmpeg/libavcodec/pngdec.c
index f93f200bb15..01144680f20 100644
--- a/chromium/third_party/ffmpeg/libavcodec/pngdec.c
+++ b/chromium/third_party/ffmpeg/libavcodec/pngdec.c
@@ -446,7 +446,7 @@ static int decode_zbuf(AVBPrint *bp, const uint8_t *data,
return AVERROR_EXTERNAL;
zstream.next_in = (unsigned char *)data;
zstream.avail_in = data_end - data;
- av_bprint_init(bp, 0, -1);
+ av_bprint_init(bp, 0, AV_BPRINT_SIZE_UNLIMITED);
while (zstream.avail_in > 0) {
av_bprint_get_buffer(bp, 2, &buf, &buf_size);
@@ -1315,7 +1315,7 @@ static int decode_frame_common(AVCodecContext *avctx, PNGDecContext *s,
char *gamma_str;
int num = bytestream2_get_be32(&s->gb);
- av_bprint_init(&bp, 0, -1);
+ av_bprint_init(&bp, 0, AV_BPRINT_SIZE_UNLIMITED);
av_bprintf(&bp, "%i/%i", num, 100000);
ret = av_bprint_finalize(&bp, &gamma_str);
if (ret < 0)
diff --git a/chromium/third_party/ffmpeg/libavcodec/ppc/hevcdsp.c b/chromium/third_party/ffmpeg/libavcodec/ppc/hevcdsp.c
index 4b1037d792d..dcae43305a6 100644
--- a/chromium/third_party/ffmpeg/libavcodec/ppc/hevcdsp.c
+++ b/chromium/third_party/ffmpeg/libavcodec/ppc/hevcdsp.c
@@ -41,8 +41,9 @@ static const vec_u8 mask[2] = {
{ 0x04, 0x05, 0x0C, 0x0D, 0x14, 0x15, 0x1C, 0x1D, 0x06, 0x07, 0x0E, 0x0F, 0x16, 0x17, 0x1E, 0x1F },
};
-static void transform4x4(vec_s16 src_01, vec_s16 src_23, vec_s32 res[4],
- const int shift, int16_t *coeffs)
+static av_always_inline void transform4x4(vec_s16 src_01, vec_s16 src_23,
+ vec_s32 res[4], const int shift,
+ int16_t *coeffs)
{
vec_s16 src_02, src_13;
vec_s32 zero = vec_splat_s32(0);
@@ -67,7 +68,8 @@ static void transform4x4(vec_s16 src_01, vec_s16 src_23, vec_s32 res[4],
res[3] = vec_sub(e0, o0);
}
-static void scale(vec_s32 res[4], vec_s16 res_packed[2], int shift)
+static av_always_inline void scale(vec_s32 res[4], vec_s16 res_packed[2],
+ const int shift)
{
int i;
vec_u32 v_shift = vec_splat_u32(shift);
diff --git a/chromium/third_party/ffmpeg/libavcodec/qsv.c b/chromium/third_party/ffmpeg/libavcodec/qsv.c
index 3ff4f2c0925..bb0d79588c4 100644
--- a/chromium/third_party/ffmpeg/libavcodec/qsv.c
+++ b/chromium/third_party/ffmpeg/libavcodec/qsv.c
@@ -198,7 +198,7 @@ int ff_qsv_find_surface_idx(QSVFramesContext *ctx, QSVFrame *frame)
enum AVPictureType ff_qsv_map_pictype(int mfx_pic_type)
{
- enum AVPictureType type = AV_PICTURE_TYPE_NONE;
+ enum AVPictureType type;
switch (mfx_pic_type & 0x7) {
case MFX_FRAMETYPE_I:
if (mfx_pic_type & MFX_FRAMETYPE_S)
@@ -215,6 +215,9 @@ enum AVPictureType ff_qsv_map_pictype(int mfx_pic_type)
else
type = AV_PICTURE_TYPE_P;
break;
+ case MFX_FRAMETYPE_UNKNOWN:
+ type = AV_PICTURE_TYPE_NONE;
+ break;
default:
av_assert0(0);
}
diff --git a/chromium/third_party/ffmpeg/libavcodec/qsvenc.h b/chromium/third_party/ffmpeg/libavcodec/qsvenc.h
index d48272224c3..bb175c5df81 100644
--- a/chromium/third_party/ffmpeg/libavcodec/qsvenc.h
+++ b/chromium/third_party/ffmpeg/libavcodec/qsvenc.h
@@ -45,7 +45,7 @@
#define QSV_HAVE_LA_DS QSV_VERSION_ATLEAST(1, 8)
#define QSV_HAVE_LA_HRD QSV_VERSION_ATLEAST(1, 11)
-#if defined(_WIN32)
+#if defined(_WIN32) || defined(__CYGWIN__)
#define QSV_HAVE_AVBR QSV_VERSION_ATLEAST(1, 3)
#define QSV_HAVE_ICQ QSV_VERSION_ATLEAST(1, 8)
#define QSV_HAVE_VCM QSV_VERSION_ATLEAST(1, 8)
diff --git a/chromium/third_party/ffmpeg/libavcodec/ra144.c b/chromium/third_party/ffmpeg/libavcodec/ra144.c
index c077b7b3279..cf8127c2368 100644
--- a/chromium/third_party/ffmpeg/libavcodec/ra144.c
+++ b/chromium/third_party/ffmpeg/libavcodec/ra144.c
@@ -1569,11 +1569,11 @@ int ff_eval_refl(int *refl, const int16_t *coefs, AVCodecContext *avctx)
b = 0x1000000 / b;
for (j=0; j <= i; j++) {
#if CONFIG_FTRAPV
- int a = bp2[j] - ((refl[i+1] * bp2[i-j]) >> 12);
+ int a = bp2[j] - ((int)(refl[i+1] * (unsigned)bp2[i-j]) >> 12);
if((int)(a*(unsigned)b) != a*(int64_t)b)
return 1;
#endif
- bp1[j] = (int)((bp2[j] - ((refl[i+1] * bp2[i-j]) >> 12)) * (unsigned)b) >> 12;
+ bp1[j] = (int)((bp2[j] - ((int)(refl[i+1] * (unsigned)bp2[i-j]) >> 12)) * (unsigned)b) >> 12;
}
if ((unsigned) bp1[i] + 0x1000 > 0x1fff)
diff --git a/chromium/third_party/ffmpeg/libavcodec/shorten.c b/chromium/third_party/ffmpeg/libavcodec/shorten.c
index 18a12d0b973..0f491090fdc 100644
--- a/chromium/third_party/ffmpeg/libavcodec/shorten.c
+++ b/chromium/third_party/ffmpeg/libavcodec/shorten.c
@@ -177,7 +177,7 @@ static void fix_bitshift(ShortenContext *s, int32_t *buffer)
buffer[i] = 0;
} else if (s->bitshift != 0) {
for (i = 0; i < s->blocksize; i++)
- buffer[i] *= 1 << s->bitshift;
+ buffer[i] *= 1U << s->bitshift;
}
}
@@ -682,7 +682,7 @@ static int shorten_decode_frame(AVCodecContext *avctx, void *data,
else {
int32_t sum = (s->version < 2) ? 0 : s->nmean / 2;
for (i = 0; i < s->nmean; i++)
- sum += s->offset[channel][i];
+ sum += (unsigned)s->offset[channel][i];
coffset = sum / s->nmean;
if (s->version >= 2)
coffset = s->bitshift == 0 ? coffset : coffset >> s->bitshift - 1 >> 1;
diff --git a/chromium/third_party/ffmpeg/libavcodec/truemotion2.c b/chromium/third_party/ffmpeg/libavcodec/truemotion2.c
index b689efdb993..58a577f53c7 100644
--- a/chromium/third_party/ffmpeg/libavcodec/truemotion2.c
+++ b/chromium/third_party/ffmpeg/libavcodec/truemotion2.c
@@ -377,6 +377,10 @@ static int tm2_read_stream(TM2Context *ctx, const uint8_t *buf, int stream_id, i
}
}
} else {
+ if (len < 0) {
+ ret = AVERROR_INVALIDDATA;
+ goto end;
+ }
for (i = 0; i < toks; i++) {
ctx->tokens[stream_id][i] = codes.recode[0];
if (stream_id <= TM2_MOT && ctx->tokens[stream_id][i] >= TM2_DELTAS) {
diff --git a/chromium/third_party/ffmpeg/libavcodec/tscc.c b/chromium/third_party/ffmpeg/libavcodec/tscc.c
index cb86b584c1d..31e7caeeebe 100644
--- a/chromium/third_party/ffmpeg/libavcodec/tscc.c
+++ b/chromium/third_party/ffmpeg/libavcodec/tscc.c
@@ -69,9 +69,19 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
CamtasiaContext * const c = avctx->priv_data;
AVFrame *frame = c->frame;
int ret;
+ int palette_has_changed = 0;
- if ((ret = ff_reget_buffer(avctx, frame)) < 0)
- return ret;
+ if (c->avctx->pix_fmt == AV_PIX_FMT_PAL8) {
+ int size;
+ const uint8_t *pal = av_packet_get_side_data(avpkt, AV_PKT_DATA_PALETTE, &size);
+
+ if (pal && size == AVPALETTE_SIZE) {
+ palette_has_changed = 1;
+ memcpy(c->pal, pal, AVPALETTE_SIZE);
+ } else if (pal) {
+ av_log(avctx, AV_LOG_ERROR, "Palette size %d is wrong\n", size);
+ }
+ }
ret = inflateReset(&c->zstream);
if (ret != Z_OK) {
@@ -84,11 +94,17 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
c->zstream.avail_out = c->decomp_size;
ret = inflate(&c->zstream, Z_FINISH);
// Z_DATA_ERROR means empty picture
+ if (ret == Z_DATA_ERROR && !palette_has_changed) {
+ return buf_size;
+ }
+
if ((ret != Z_OK) && (ret != Z_STREAM_END) && (ret != Z_DATA_ERROR)) {
av_log(avctx, AV_LOG_ERROR, "Inflate error: %d\n", ret);
return AVERROR_UNKNOWN;
}
+ if ((ret = ff_reget_buffer(avctx, frame)) < 0)
+ return ret;
if (ret != Z_DATA_ERROR) {
bytestream2_init(&c->gb, c->decomp_buf,
@@ -98,15 +114,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
/* make the palette available on the way out */
if (c->avctx->pix_fmt == AV_PIX_FMT_PAL8) {
- int size;
- const uint8_t *pal = av_packet_get_side_data(avpkt, AV_PKT_DATA_PALETTE, &size);
-
- if (pal && size == AVPALETTE_SIZE) {
- frame->palette_has_changed = 1;
- memcpy(c->pal, pal, AVPALETTE_SIZE);
- } else if (pal) {
- av_log(avctx, AV_LOG_ERROR, "Palette size %d is wrong\n", size);
- }
+ frame->palette_has_changed = palette_has_changed;
memcpy(frame->data[1], c->pal, AVPALETTE_SIZE);
}
diff --git a/chromium/third_party/ffmpeg/libavcodec/utils.c b/chromium/third_party/ffmpeg/libavcodec/utils.c
index 59d41ccbb64..4f9a2b76efa 100644
--- a/chromium/third_party/ffmpeg/libavcodec/utils.c
+++ b/chromium/third_party/ffmpeg/libavcodec/utils.c
@@ -674,6 +674,7 @@ int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *code
av_freep(&avctx->subtitle_header);
if (avctx->channels > FF_SANE_NB_CHANNELS) {
+ av_log(avctx, AV_LOG_ERROR, "Too many channels: %d\n", avctx->channels);
ret = AVERROR(EINVAL);
goto free_and_end;
}
@@ -1536,6 +1537,7 @@ static int get_audio_frame_duration(enum AVCodecID id, int sr, int ch, int ba,
case AV_CODEC_ID_GSM_MS: return 320;
case AV_CODEC_ID_MP1: return 384;
case AV_CODEC_ID_ATRAC1: return 512;
+ case AV_CODEC_ID_ATRAC9:
case AV_CODEC_ID_ATRAC3: return 1024 * framecount;
case AV_CODEC_ID_ATRAC3P: return 2048;
case AV_CODEC_ID_MP2:
diff --git a/chromium/third_party/ffmpeg/libavcodec/v4l2_m2m_dec.c b/chromium/third_party/ffmpeg/libavcodec/v4l2_m2m_dec.c
index 598dc107810..710e40efd81 100644
--- a/chromium/third_party/ffmpeg/libavcodec/v4l2_m2m_dec.c
+++ b/chromium/third_party/ffmpeg/libavcodec/v4l2_m2m_dec.c
@@ -149,11 +149,14 @@ static int v4l2_receive_frame(AVCodecContext *avctx, AVFrame *frame)
if (avpkt.size) {
ret = v4l2_try_start(avctx);
- if (ret)
+ if (ret) {
+ av_packet_unref(&avpkt);
return 0;
+ }
}
dequeue:
+ av_packet_unref(&avpkt);
return ff_v4l2_context_dequeue_frame(capture, frame);
}
diff --git a/chromium/third_party/ffmpeg/libavcodec/vaapi_vc1.c b/chromium/third_party/ffmpeg/libavcodec/vaapi_vc1.c
index bdb5e24cc59..921ca6391b6 100644
--- a/chromium/third_party/ffmpeg/libavcodec/vaapi_vc1.c
+++ b/chromium/third_party/ffmpeg/libavcodec/vaapi_vc1.c
@@ -467,6 +467,7 @@ static int vaapi_vc1_decode_slice(AVCodecContext *avctx, const uint8_t *buffer,
const MpegEncContext *s = &v->s;
VAAPIDecodePicture *pic = s->current_picture_ptr->hwaccel_picture_private;
VASliceParameterBufferVC1 slice_param;
+ int mb_height;
int err;
/* Current bit buffer is beyond any marker for VC-1, so skip it */
@@ -475,12 +476,17 @@ static int vaapi_vc1_decode_slice(AVCodecContext *avctx, const uint8_t *buffer,
size -= 4;
}
+ if (v->fcm == ILACE_FIELD)
+ mb_height = avctx->coded_height + 31 >> 5;
+ else
+ mb_height = avctx->coded_height + 15 >> 4;
+
slice_param = (VASliceParameterBufferVC1) {
.slice_data_size = size,
.slice_data_offset = 0,
.slice_data_flag = VA_SLICE_DATA_FLAG_ALL,
.macroblock_offset = get_bits_count(&s->gb),
- .slice_vertical_position = s->mb_y,
+ .slice_vertical_position = s->mb_y % mb_height,
};
err = ff_vaapi_decode_make_slice_buffer(avctx, pic,
diff --git a/chromium/third_party/ffmpeg/libavcodec/vc1.h b/chromium/third_party/ffmpeg/libavcodec/vc1.h
index 1d283f85895..69f6ca9e4d7 100644
--- a/chromium/third_party/ffmpeg/libavcodec/vc1.h
+++ b/chromium/third_party/ffmpeg/libavcodec/vc1.h
@@ -422,7 +422,6 @@ void ff_vc1_init_transposed_scantables(VC1Context *v);
int ff_vc1_decode_end(AVCodecContext *avctx);
void ff_vc1_decode_blocks(VC1Context *v);
-void ff_vc1_loop_filter_iblk(VC1Context *v, int pq);
void ff_vc1_i_overlap_filter(VC1Context *v);
void ff_vc1_p_overlap_filter(VC1Context *v);
void ff_vc1_i_loop_filter(VC1Context *v);
diff --git a/chromium/third_party/ffmpeg/libavcodec/vc1_block.c b/chromium/third_party/ffmpeg/libavcodec/vc1_block.c
index 0160095c6cf..86320db959a 100644
--- a/chromium/third_party/ffmpeg/libavcodec/vc1_block.c
+++ b/chromium/third_party/ffmpeg/libavcodec/vc1_block.c
@@ -45,6 +45,9 @@ static const uint8_t offset_table[2][9] = {
{ 0, 1, 3, 7, 15, 31, 63, 127, 255 },
};
+// mapping table for internal block representation
+static const int block_map[6] = {0, 2, 1, 3, 4, 5};
+
/***********************************************************************/
/**
* @name VC-1 Bitplane decoding
@@ -66,7 +69,7 @@ static inline void init_block_index(VC1Context *v)
/** @} */ //Bitplane group
-static void vc1_put_signed_blocks_clamped(VC1Context *v)
+static void vc1_put_blocks_clamped(VC1Context *v, int put_signed)
{
MpegEncContext *s = &v->s;
uint8_t *dest;
@@ -85,20 +88,30 @@ static void vc1_put_signed_blocks_clamped(VC1Context *v)
if (i > 3 ? v->mb_type[0][s->block_index[i] - s->block_wrap[i] - 1] :
v->mb_type[0][s->block_index[i] - 2 * s->block_wrap[i] - 2]) {
dest = s->dest[0] + ((i & 2) - 4) * 4 * s->linesize + ((i & 1) - 2) * 8;
- s->idsp.put_signed_pixels_clamped(v->block[v->topleft_blk_idx][i],
- i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize - 8 : dest,
- i > 3 ? s->uvlinesize : s->linesize);
+ if (put_signed)
+ s->idsp.put_signed_pixels_clamped(v->block[v->topleft_blk_idx][block_map[i]],
+ i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize - 8 : dest,
+ i > 3 ? s->uvlinesize : s->linesize);
+ else
+ s->idsp.put_pixels_clamped(v->block[v->topleft_blk_idx][block_map[i]],
+ i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize - 8 : dest,
+ i > 3 ? s->uvlinesize : s->linesize);
}
}
}
- if (s->mb_x == s->mb_width - 1) {
+ if (s->mb_x == v->end_mb_x - 1) {
for (i = 0; i < block_count; i++) {
if (i > 3 ? v->mb_type[0][s->block_index[i] - s->block_wrap[i]] :
v->mb_type[0][s->block_index[i] - 2 * s->block_wrap[i]]) {
dest = s->dest[0] + ((i & 2) - 4) * 4 * s->linesize + (i & 1) * 8;
- s->idsp.put_signed_pixels_clamped(v->block[v->top_blk_idx][i],
- i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize : dest,
- i > 3 ? s->uvlinesize : s->linesize);
+ if (put_signed)
+ s->idsp.put_signed_pixels_clamped(v->block[v->top_blk_idx][block_map[i]],
+ i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize : dest,
+ i > 3 ? s->uvlinesize : s->linesize);
+ else
+ s->idsp.put_pixels_clamped(v->block[v->top_blk_idx][block_map[i]],
+ i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize : dest,
+ i > 3 ? s->uvlinesize : s->linesize);
}
}
}
@@ -114,13 +127,18 @@ static void vc1_put_signed_blocks_clamped(VC1Context *v)
dest = s->dest[0] + ((i & 2) >> 1) * s->linesize + ((i & 1) - 2) * 8;
else
dest = s->dest[0] + (i & 2) * 4 * s->linesize + ((i & 1) - 2) * 8;
- s->idsp.put_signed_pixels_clamped(v->block[v->left_blk_idx][i],
- i > 3 ? s->dest[i - 3] - 8 : dest,
- i > 3 ? s->uvlinesize : s->linesize << fieldtx);
+ if (put_signed)
+ s->idsp.put_signed_pixels_clamped(v->block[v->left_blk_idx][block_map[i]],
+ i > 3 ? s->dest[i - 3] - 8 : dest,
+ i > 3 ? s->uvlinesize : s->linesize << fieldtx);
+ else
+ s->idsp.put_pixels_clamped(v->block[v->left_blk_idx][block_map[i]],
+ i > 3 ? s->dest[i - 3] - 8 : dest,
+ i > 3 ? s->uvlinesize : s->linesize << fieldtx);
}
}
}
- if (s->mb_x == s->mb_width - 1) {
+ if (s->mb_x == v->end_mb_x - 1) {
if (v->fcm == ILACE_FRAME)
fieldtx = v->fieldtx_plane[s->mb_y * s->mb_stride + s->mb_x];
for (i = 0; i < block_count; i++) {
@@ -129,9 +147,14 @@ static void vc1_put_signed_blocks_clamped(VC1Context *v)
dest = s->dest[0] + ((i & 2) >> 1) * s->linesize + (i & 1) * 8;
else
dest = s->dest[0] + (i & 2) * 4 * s->linesize + (i & 1) * 8;
- s->idsp.put_signed_pixels_clamped(v->block[v->cur_blk_idx][i],
- i > 3 ? s->dest[i - 3] : dest,
- i > 3 ? s->uvlinesize : s->linesize << fieldtx);
+ if (put_signed)
+ s->idsp.put_signed_pixels_clamped(v->block[v->cur_blk_idx][block_map[i]],
+ i > 3 ? s->dest[i - 3] : dest,
+ i > 3 ? s->uvlinesize : s->linesize << fieldtx);
+ else
+ s->idsp.put_pixels_clamped(v->block[v->cur_blk_idx][block_map[i]],
+ i > 3 ? s->dest[i - 3] : dest,
+ i > 3 ? s->uvlinesize : s->linesize << fieldtx);
}
}
}
@@ -184,7 +207,7 @@ static void vc1_put_signed_blocks_clamped(VC1Context *v)
if ((edges&8) && \
s->mb_y == ((s->mb_height >> v->field_mode) - 1)) \
mquant = -v->altpq; \
- if (!mquant || mquant > 31) { \
+ if (!mquant || mquant > 31 || mquant < -31) { \
av_log(v->s.avctx, AV_LOG_ERROR, \
"Overriding invalid mquant %d\n", mquant); \
mquant = 1; \
@@ -1328,18 +1351,18 @@ static int vc1_decode_p_mb(VC1Context *v)
if (i == 1 || i == 3 || s->mb_x)
v->c_avail = v->mb_type[0][s->block_index[i] - 1];
- vc1_decode_intra_block(v, v->block[v->cur_blk_idx][i], i, val, mquant,
+ vc1_decode_intra_block(v, v->block[v->cur_blk_idx][block_map[i]], i, val, mquant,
(i & 4) ? v->codingset2 : v->codingset);
if (CONFIG_GRAY && (i > 3) && (s->avctx->flags & AV_CODEC_FLAG_GRAY))
continue;
- v->vc1dsp.vc1_inv_trans_8x8(v->block[v->cur_blk_idx][i]);
+ v->vc1dsp.vc1_inv_trans_8x8(v->block[v->cur_blk_idx][block_map[i]]);
if (v->rangeredfrm)
for (j = 0; j < 64; j++)
- v->block[v->cur_blk_idx][i][j] <<= 1;
+ v->block[v->cur_blk_idx][block_map[i]][j] <<= 1;
block_cbp |= 0xF << (i << 2);
block_intra |= 1 << i;
} else if (val) {
- pat = vc1_decode_p_block(v, v->block[v->cur_blk_idx][i], i, mquant, ttmb, first_block,
+ pat = vc1_decode_p_block(v, v->block[v->cur_blk_idx][block_map[i]], i, mquant, ttmb, first_block,
s->dest[dst_idx] + off, (i & 4) ? s->uvlinesize : s->linesize,
CONFIG_GRAY && (i & 4) && (s->avctx->flags & AV_CODEC_FLAG_GRAY), &block_tt);
block_cbp |= pat << (i << 2);
@@ -1429,18 +1452,18 @@ static int vc1_decode_p_mb(VC1Context *v)
if (i == 1 || i == 3 || s->mb_x)
v->c_avail = v->mb_type[0][s->block_index[i] - 1];
- vc1_decode_intra_block(v, v->block[v->cur_blk_idx][i], i, is_coded[i], mquant,
+ vc1_decode_intra_block(v, v->block[v->cur_blk_idx][block_map[i]], i, is_coded[i], mquant,
(i & 4) ? v->codingset2 : v->codingset);
if (CONFIG_GRAY && (i > 3) && (s->avctx->flags & AV_CODEC_FLAG_GRAY))
continue;
- v->vc1dsp.vc1_inv_trans_8x8(v->block[v->cur_blk_idx][i]);
+ v->vc1dsp.vc1_inv_trans_8x8(v->block[v->cur_blk_idx][block_map[i]]);
if (v->rangeredfrm)
for (j = 0; j < 64; j++)
- v->block[v->cur_blk_idx][i][j] <<= 1;
+ v->block[v->cur_blk_idx][block_map[i]][j] <<= 1;
block_cbp |= 0xF << (i << 2);
block_intra |= 1 << i;
} else if (is_coded[i]) {
- pat = vc1_decode_p_block(v, v->block[v->cur_blk_idx][i], i, mquant, ttmb,
+ pat = vc1_decode_p_block(v, v->block[v->cur_blk_idx][block_map[i]], i, mquant, ttmb,
first_block, s->dest[dst_idx] + off,
(i & 4) ? s->uvlinesize : s->linesize,
CONFIG_GRAY && (i & 4) && (s->avctx->flags & AV_CODEC_FLAG_GRAY),
@@ -1469,7 +1492,7 @@ static int vc1_decode_p_mb(VC1Context *v)
end:
if (v->overlap && v->pq >= 9)
ff_vc1_p_overlap_filter(v);
- vc1_put_signed_blocks_clamped(v);
+ vc1_put_blocks_clamped(v, 1);
v->cbp[s->mb_x] = block_cbp;
v->ttblk[s->mb_x] = block_tt;
@@ -1571,11 +1594,11 @@ static int vc1_decode_p_mb_intfr(VC1Context *v)
if (i == 1 || i == 3 || s->mb_x)
v->c_avail = v->mb_type[0][s->block_index[i] - 1];
- vc1_decode_intra_block(v, v->block[v->cur_blk_idx][i], i, val, mquant,
+ vc1_decode_intra_block(v, v->block[v->cur_blk_idx][block_map[i]], i, val, mquant,
(i & 4) ? v->codingset2 : v->codingset);
if (CONFIG_GRAY && (i > 3) && (s->avctx->flags & AV_CODEC_FLAG_GRAY))
continue;
- v->vc1dsp.vc1_inv_trans_8x8(v->block[v->cur_blk_idx][i]);
+ v->vc1dsp.vc1_inv_trans_8x8(v->block[v->cur_blk_idx][block_map[i]]);
if (i < 4)
off = (fieldtx) ? ((i & 1) * 8) + ((i & 2) >> 1) * s->linesize : (i & 1) * 8 + 4 * (i & 2) * s->linesize;
else
@@ -1651,7 +1674,7 @@ static int vc1_decode_p_mb_intfr(VC1Context *v)
else
off = (i & 4) ? 0 : ((i & 1) * 8 + ((i > 1) * s->linesize));
if (val) {
- pat = vc1_decode_p_block(v, v->block[v->cur_blk_idx][i], i, mquant, ttmb,
+ pat = vc1_decode_p_block(v, v->block[v->cur_blk_idx][block_map[i]], i, mquant, ttmb,
first_block, s->dest[dst_idx] + off,
(i & 4) ? s->uvlinesize : (s->linesize << fieldtx),
CONFIG_GRAY && (i & 4) && (s->avctx->flags & AV_CODEC_FLAG_GRAY), &block_tt);
@@ -1680,7 +1703,7 @@ static int vc1_decode_p_mb_intfr(VC1Context *v)
}
if (v->overlap && v->pq >= 9)
ff_vc1_p_overlap_filter(v);
- vc1_put_signed_blocks_clamped(v);
+ vc1_put_blocks_clamped(v, 1);
v->cbp[s->mb_x] = block_cbp;
v->ttblk[s->mb_x] = block_tt;
@@ -1737,11 +1760,11 @@ static int vc1_decode_p_mb_intfi(VC1Context *v)
if (i == 1 || i == 3 || s->mb_x)
v->c_avail = v->mb_type[0][s->block_index[i] - 1];
- vc1_decode_intra_block(v, v->block[v->cur_blk_idx][i], i, val, mquant,
+ vc1_decode_intra_block(v, v->block[v->cur_blk_idx][block_map[i]], i, val, mquant,
(i & 4) ? v->codingset2 : v->codingset);
if (CONFIG_GRAY && (i > 3) && (s->avctx->flags & AV_CODEC_FLAG_GRAY))
continue;
- v->vc1dsp.vc1_inv_trans_8x8(v->block[v->cur_blk_idx][i]);
+ v->vc1dsp.vc1_inv_trans_8x8(v->block[v->cur_blk_idx][block_map[i]]);
off = (i & 4) ? 0 : ((i & 1) * 8 + (i & 2) * 4 * s->linesize);
block_cbp |= 0xf << (i << 2);
}
@@ -1786,7 +1809,7 @@ static int vc1_decode_p_mb_intfi(VC1Context *v)
val = ((cbp >> (5 - i)) & 1);
off = (i & 4) ? 0 : (i & 1) * 8 + (i & 2) * 4 * s->linesize;
if (val) {
- pat = vc1_decode_p_block(v, v->block[v->cur_blk_idx][i], i, mquant, ttmb,
+ pat = vc1_decode_p_block(v, v->block[v->cur_blk_idx][block_map[i]], i, mquant, ttmb,
first_block, s->dest[dst_idx] + off,
(i & 4) ? s->uvlinesize : s->linesize,
CONFIG_GRAY && (i & 4) && (s->avctx->flags & AV_CODEC_FLAG_GRAY),
@@ -1800,7 +1823,7 @@ static int vc1_decode_p_mb_intfi(VC1Context *v)
}
if (v->overlap && v->pq >= 9)
ff_vc1_p_overlap_filter(v);
- vc1_put_signed_blocks_clamped(v);
+ vc1_put_blocks_clamped(v, 1);
v->cbp[s->mb_x] = block_cbp;
v->ttblk[s->mb_x] = block_tt;
@@ -2517,30 +2540,27 @@ static void vc1_decode_i_blocks(VC1Context *v)
s->mb_x = s->mb_y = 0;
s->mb_intra = 1;
s->first_slice_line = 1;
- for (s->mb_y = 0; s->mb_y < s->end_mb_y; s->mb_y++) {
+ for (s->mb_y = s->start_mb_y; s->mb_y < s->end_mb_y; s->mb_y++) {
s->mb_x = 0;
init_block_index(v);
for (; s->mb_x < v->end_mb_x; s->mb_x++) {
- uint8_t *dst[6];
ff_update_block_index(s);
- dst[0] = s->dest[0];
- dst[1] = dst[0] + 8;
- dst[2] = s->dest[0] + s->linesize * 8;
- dst[3] = dst[2] + 8;
- dst[4] = s->dest[1];
- dst[5] = s->dest[2];
- s->bdsp.clear_blocks(s->block[0]);
+ s->bdsp.clear_blocks(v->block[v->cur_blk_idx][0]);
mb_pos = s->mb_x + s->mb_y * s->mb_width;
s->current_picture.mb_type[mb_pos] = MB_TYPE_INTRA;
s->current_picture.qscale_table[mb_pos] = v->pq;
- s->current_picture.motion_val[1][s->block_index[0]][0] = 0;
- s->current_picture.motion_val[1][s->block_index[0]][1] = 0;
+ for (int i = 0; i < 4; i++) {
+ s->current_picture.motion_val[1][s->block_index[i]][0] = 0;
+ s->current_picture.motion_val[1][s->block_index[i]][1] = 0;
+ }
// do actual MB decoding and displaying
cbp = get_vlc2(&v->s.gb, ff_msmp4_mb_i_vlc.table, MB_INTRA_VLC_BITS, 2);
v->s.ac_pred = get_bits1(&v->s.gb);
for (k = 0; k < 6; k++) {
+ v->mb_type[0][s->block_index[k]] = 1;
+
val = ((cbp >> (5 - k)) & 1);
if (k < 4) {
@@ -2550,52 +2570,30 @@ static void vc1_decode_i_blocks(VC1Context *v)
}
cbp |= val << (5 - k);
- vc1_decode_i_block(v, s->block[k], k, val, (k < 4) ? v->codingset : v->codingset2);
+ vc1_decode_i_block(v, v->block[v->cur_blk_idx][block_map[k]], k, val, (k < 4) ? v->codingset : v->codingset2);
if (CONFIG_GRAY && k > 3 && (s->avctx->flags & AV_CODEC_FLAG_GRAY))
continue;
- v->vc1dsp.vc1_inv_trans_8x8(s->block[k]);
- if (v->pq >= 9 && v->overlap) {
- if (v->rangeredfrm)
+ v->vc1dsp.vc1_inv_trans_8x8(v->block[v->cur_blk_idx][block_map[k]]);
+ }
+
+ if (v->overlap && v->pq >= 9) {
+ ff_vc1_i_overlap_filter(v);
+ if (v->rangeredfrm)
+ for (k = 0; k < 6; k++)
for (j = 0; j < 64; j++)
- s->block[k][j] <<= 1;
- s->idsp.put_signed_pixels_clamped(s->block[k], dst[k],
- k & 4 ? s->uvlinesize
- : s->linesize);
- } else {
- if (v->rangeredfrm)
+ v->block[v->cur_blk_idx][block_map[k]][j] <<= 1;
+ vc1_put_blocks_clamped(v, 1);
+ } else {
+ if (v->rangeredfrm)
+ for (k = 0; k < 6; k++)
for (j = 0; j < 64; j++)
- s->block[k][j] = (s->block[k][j] - 64) << 1;
- s->idsp.put_pixels_clamped(s->block[k], dst[k],
- k & 4 ? s->uvlinesize
- : s->linesize);
- }
+ v->block[v->cur_blk_idx][block_map[k]][j] = (v->block[v->cur_blk_idx][block_map[k]][j] - 64) << 1;
+ vc1_put_blocks_clamped(v, 0);
}
- if (v->pq >= 9 && v->overlap) {
- if (s->mb_x) {
- v->vc1dsp.vc1_h_overlap(s->dest[0], s->linesize);
- v->vc1dsp.vc1_h_overlap(s->dest[0] + 8 * s->linesize, s->linesize);
- if (!CONFIG_GRAY || !(s->avctx->flags & AV_CODEC_FLAG_GRAY)) {
- v->vc1dsp.vc1_h_overlap(s->dest[1], s->uvlinesize);
- v->vc1dsp.vc1_h_overlap(s->dest[2], s->uvlinesize);
- }
- }
- v->vc1dsp.vc1_h_overlap(s->dest[0] + 8, s->linesize);
- v->vc1dsp.vc1_h_overlap(s->dest[0] + 8 * s->linesize + 8, s->linesize);
- if (!s->first_slice_line) {
- v->vc1dsp.vc1_v_overlap(s->dest[0], s->linesize);
- v->vc1dsp.vc1_v_overlap(s->dest[0] + 8, s->linesize);
- if (!CONFIG_GRAY || !(s->avctx->flags & AV_CODEC_FLAG_GRAY)) {
- v->vc1dsp.vc1_v_overlap(s->dest[1], s->uvlinesize);
- v->vc1dsp.vc1_v_overlap(s->dest[2], s->uvlinesize);
- }
- }
- v->vc1dsp.vc1_v_overlap(s->dest[0] + 8 * s->linesize, s->linesize);
- v->vc1dsp.vc1_v_overlap(s->dest[0] + 8 * s->linesize + 8, s->linesize);
- }
if (v->s.loop_filter)
- ff_vc1_loop_filter_iblk(v, v->pq);
+ ff_vc1_i_loop_filter(v);
if (get_bits_count(&s->gb) > v->bits) {
ff_er_add_slice(&s->er, 0, 0, s->mb_x, s->mb_y, ER_MB_ERROR);
@@ -2603,6 +2601,11 @@ static void vc1_decode_i_blocks(VC1Context *v)
get_bits_count(&s->gb), v->bits);
return;
}
+
+ v->topleft_blk_idx = (v->topleft_blk_idx + 1) % (v->end_mb_x + 2);
+ v->top_blk_idx = (v->top_blk_idx + 1) % (v->end_mb_x + 2);
+ v->left_blk_idx = (v->left_blk_idx + 1) % (v->end_mb_x + 2);
+ v->cur_blk_idx = (v->cur_blk_idx + 1) % (v->end_mb_x + 2);
}
if (!v->s.loop_filter)
ff_mpeg_draw_horiz_band(s, s->mb_y * 16, 16);
@@ -2672,10 +2675,9 @@ static void vc1_decode_i_blocks_adv(VC1Context *v)
s->mb_x = 0;
init_block_index(v);
for (;s->mb_x < s->mb_width; s->mb_x++) {
- int16_t (*block)[64] = v->block[v->cur_blk_idx];
mquant = v->pq;
ff_update_block_index(s);
- s->bdsp.clear_blocks(block[0]);
+ s->bdsp.clear_blocks(v->block[v->cur_blk_idx][0]);
mb_pos = s->mb_x + s->mb_y * s->mb_stride;
s->current_picture.mb_type[mb_pos + v->mb_off] = MB_TYPE_INTRA;
for (int i = 0; i < 4; i++) {
@@ -2717,17 +2719,17 @@ static void vc1_decode_i_blocks_adv(VC1Context *v)
v->a_avail = !s->first_slice_line || (k == 2 || k == 3);
v->c_avail = !!s->mb_x || (k == 1 || k == 3);
- vc1_decode_i_block_adv(v, block[k], k, val,
+ vc1_decode_i_block_adv(v, v->block[v->cur_blk_idx][block_map[k]], k, val,
(k < 4) ? v->codingset : v->codingset2, mquant);
if (CONFIG_GRAY && k > 3 && (s->avctx->flags & AV_CODEC_FLAG_GRAY))
continue;
- v->vc1dsp.vc1_inv_trans_8x8(block[k]);
+ v->vc1dsp.vc1_inv_trans_8x8(v->block[v->cur_blk_idx][block_map[k]]);
}
- if (v->overlap && v->condover != CONDOVER_NONE)
+ if (v->overlap && (v->pq >= 9 || v->condover != CONDOVER_NONE))
ff_vc1_i_overlap_filter(v);
- vc1_put_signed_blocks_clamped(v);
+ vc1_put_blocks_clamped(v, 1);
if (v->s.loop_filter)
ff_vc1_i_loop_filter(v);
diff --git a/chromium/third_party/ffmpeg/libavcodec/vc1_loopfilter.c b/chromium/third_party/ffmpeg/libavcodec/vc1_loopfilter.c
index 4c0de7c0255..d43fa5b3aea 100644
--- a/chromium/third_party/ffmpeg/libavcodec/vc1_loopfilter.c
+++ b/chromium/third_party/ffmpeg/libavcodec/vc1_loopfilter.c
@@ -31,59 +31,74 @@
#include "vc1.h"
#include "vc1dsp.h"
-void ff_vc1_loop_filter_iblk(VC1Context *v, int pq)
+static av_always_inline void vc1_h_overlap_filter(VC1Context *v, int16_t (*left_block)[64],
+ int16_t (*right_block)[64], int left_fieldtx,
+ int right_fieldtx, int block_num)
{
- MpegEncContext *s = &v->s;
- int j;
- if (!s->first_slice_line) {
- v->vc1dsp.vc1_v_loop_filter16(s->dest[0], s->linesize, pq);
- if (s->mb_x)
- v->vc1dsp.vc1_h_loop_filter16(s->dest[0] - 16 * s->linesize, s->linesize, pq);
- v->vc1dsp.vc1_h_loop_filter16(s->dest[0] - 16 * s->linesize + 8, s->linesize, pq);
- if (!CONFIG_GRAY || !(s->avctx->flags & AV_CODEC_FLAG_GRAY))
- for (j = 0; j < 2; j++) {
- v->vc1dsp.vc1_v_loop_filter8(s->dest[j + 1], s->uvlinesize, pq);
- if (s->mb_x)
- v->vc1dsp.vc1_h_loop_filter8(s->dest[j + 1] - 8 * s->uvlinesize, s->uvlinesize, pq);
- }
- }
- v->vc1dsp.vc1_v_loop_filter16(s->dest[0] + 8 * s->linesize, s->linesize, pq);
+ switch (block_num) {
+ case 0:
+ v->vc1dsp.vc1_h_s_overlap(left_block[2],
+ right_block[0],
+ left_fieldtx ^ right_fieldtx ? 16 - 8 * left_fieldtx : 8,
+ left_fieldtx ^ right_fieldtx ? 16 - 8 * right_fieldtx : 8,
+ left_fieldtx || right_fieldtx ? 0 : 1);
+ break;
- if (s->mb_y == s->end_mb_y - 1) {
- if (s->mb_x) {
- v->vc1dsp.vc1_h_loop_filter16(s->dest[0], s->linesize, pq);
- if (!CONFIG_GRAY || !(s->avctx->flags & AV_CODEC_FLAG_GRAY)) {
- v->vc1dsp.vc1_h_loop_filter8(s->dest[1], s->uvlinesize, pq);
- v->vc1dsp.vc1_h_loop_filter8(s->dest[2], s->uvlinesize, pq);
- }
- }
- v->vc1dsp.vc1_h_loop_filter16(s->dest[0] + 8, s->linesize, pq);
- }
-}
+ case 1:
+ v->vc1dsp.vc1_h_s_overlap(right_block[0],
+ right_block[2],
+ 8,
+ 8,
+ right_fieldtx ? 0 : 1);
+ break;
-static av_always_inline void vc1_h_overlap_filter(VC1Context *v, int16_t (*left_block)[64],
- int16_t (*right_block)[64], int block_num)
-{
- if (left_block != right_block || (block_num & 5) == 1) {
- if (block_num > 3)
- v->vc1dsp.vc1_h_s_overlap(left_block[block_num], right_block[block_num]);
- else if (block_num & 1)
- v->vc1dsp.vc1_h_s_overlap(right_block[block_num - 1], right_block[block_num]);
- else
- v->vc1dsp.vc1_h_s_overlap(left_block[block_num + 1], right_block[block_num]);
+ case 2:
+ v->vc1dsp.vc1_h_s_overlap(!left_fieldtx && right_fieldtx ? left_block[2] + 8 : left_block[3],
+ left_fieldtx && !right_fieldtx ? right_block[0] + 8 : right_block[1],
+ left_fieldtx ^ right_fieldtx ? 16 - 8 * left_fieldtx : 8,
+ left_fieldtx ^ right_fieldtx ? 16 - 8 * right_fieldtx : 8,
+ left_fieldtx || right_fieldtx ? 2 : 1);
+ break;
+
+ case 3:
+ v->vc1dsp.vc1_h_s_overlap(right_block[1],
+ right_block[3],
+ 8,
+ 8,
+ right_fieldtx ? 2 : 1);
+ break;
+
+ case 4:
+ case 5:
+ v->vc1dsp.vc1_h_s_overlap(left_block[block_num], right_block[block_num], 8, 8, 1);
+ break;
}
}
static av_always_inline void vc1_v_overlap_filter(VC1Context *v, int16_t (*top_block)[64],
int16_t (*bottom_block)[64], int block_num)
{
- if (top_block != bottom_block || block_num & 2) {
- if (block_num > 3)
- v->vc1dsp.vc1_v_s_overlap(top_block[block_num], bottom_block[block_num]);
- else if (block_num & 2)
- v->vc1dsp.vc1_v_s_overlap(bottom_block[block_num - 2], bottom_block[block_num]);
- else
- v->vc1dsp.vc1_v_s_overlap(top_block[block_num + 2], bottom_block[block_num]);
+ switch (block_num) {
+ case 0:
+ v->vc1dsp.vc1_v_s_overlap(top_block[1], bottom_block[0]);
+ break;
+
+ case 1:
+ v->vc1dsp.vc1_v_s_overlap(top_block[3], bottom_block[2]);
+ break;
+
+ case 2:
+ v->vc1dsp.vc1_v_s_overlap(bottom_block[0], bottom_block[1]);
+ break;
+
+ case 3:
+ v->vc1dsp.vc1_v_s_overlap(bottom_block[2], bottom_block[3]);
+ break;
+
+ case 4:
+ case 5:
+ v->vc1dsp.vc1_v_s_overlap(top_block[block_num], bottom_block[block_num]);
+ break;
}
}
@@ -108,22 +123,38 @@ void ff_vc1_i_overlap_filter(VC1Context *v)
* borders. Therefore, the H overlap trails by one MB col and the
* V overlap trails by one MB row. This is reflected in the time at which
* we run the put_pixels loop, i.e. delayed by one row and one column. */
- for (i = 0; i < block_count; i++)
- if (v->pq >= 9 || v->condover == CONDOVER_ALL ||
- (v->over_flags_plane[mb_pos] && ((i & 5) == 1 || (s->mb_x && v->over_flags_plane[mb_pos - 1]))))
- vc1_h_overlap_filter(v, s->mb_x ? left_blk : cur_blk, cur_blk, i);
+ for (i = 0; i < block_count; i++) {
+ if (s->mb_x == 0 && (i & 5) != 1)
+ continue;
+
+ if (v->pq >= 9 || (v->profile == PROFILE_ADVANCED &&
+ (v->condover == CONDOVER_ALL ||
+ (v->over_flags_plane[mb_pos] &&
+ ((i & 5) == 1 || v->over_flags_plane[mb_pos - 1])))))
+ vc1_h_overlap_filter(v,
+ s->mb_x ? left_blk : cur_blk, cur_blk,
+ v->fcm == ILACE_FRAME && s->mb_x && v->fieldtx_plane[mb_pos - 1],
+ v->fcm == ILACE_FRAME && v->fieldtx_plane[mb_pos],
+ i);
+ }
if (v->fcm != ILACE_FRAME)
for (i = 0; i < block_count; i++) {
- if (s->mb_x && (v->pq >= 9 || v->condover == CONDOVER_ALL ||
- (v->over_flags_plane[mb_pos - 1] &&
- ((i & 2) || (!s->first_slice_line && v->over_flags_plane[mb_pos - 1 - s->mb_stride])))))
+ if (s->first_slice_line && !(i & 2))
+ continue;
+
+ if (s->mb_x &&
+ (v->pq >= 9 || (v->profile == PROFILE_ADVANCED &&
+ (v->condover == CONDOVER_ALL ||
+ (v->over_flags_plane[mb_pos - 1] &&
+ ((i & 2) || v->over_flags_plane[mb_pos - 1 - s->mb_stride]))))))
vc1_v_overlap_filter(v, s->first_slice_line ? left_blk : topleft_blk, left_blk, i);
- if (s->mb_x == s->mb_width - 1)
- if (v->pq >= 9 || v->condover == CONDOVER_ALL ||
- (v->over_flags_plane[mb_pos] &&
- ((i & 2) || (!s->first_slice_line && v->over_flags_plane[mb_pos - s->mb_stride]))))
- vc1_v_overlap_filter(v, s->first_slice_line ? cur_blk : top_blk, cur_blk, i);
+ if (s->mb_x == s->mb_width - 1 &&
+ (v->pq >= 9 || (v->profile == PROFILE_ADVANCED &&
+ (v->condover == CONDOVER_ALL ||
+ (v->over_flags_plane[mb_pos] &&
+ ((i & 2) || v->over_flags_plane[mb_pos - s->mb_stride]))))))
+ vc1_v_overlap_filter(v, s->first_slice_line ? cur_blk : top_blk, cur_blk, i);
}
}
@@ -132,6 +163,7 @@ void ff_vc1_p_overlap_filter(VC1Context *v)
MpegEncContext *s = &v->s;
int16_t (*topleft_blk)[64], (*top_blk)[64], (*left_blk)[64], (*cur_blk)[64];
int block_count = CONFIG_GRAY && (s->avctx->flags & AV_CODEC_FLAG_GRAY) ? 4 : 6;
+ int mb_pos = s->mb_x + s->mb_y * s->mb_stride;
int i;
topleft_blk = v->block[v->topleft_blk_idx];
@@ -139,18 +171,29 @@ void ff_vc1_p_overlap_filter(VC1Context *v)
left_blk = v->block[v->left_blk_idx];
cur_blk = v->block[v->cur_blk_idx];
- for (i = 0; i < block_count; i++)
- if (v->mb_type[0][s->block_index[i]] && (s->mb_x == 0 || v->mb_type[0][s->block_index[i] - 1]))
- vc1_h_overlap_filter(v, s->mb_x ? left_blk : cur_blk, cur_blk, i);
+ for (i = 0; i < block_count; i++) {
+ if (s->mb_x == 0 && (i & 5) != 1)
+ continue;
+
+ if (v->mb_type[0][s->block_index[i]] && v->mb_type[0][s->block_index[i] - 1])
+ vc1_h_overlap_filter(v,
+ s->mb_x ? left_blk : cur_blk, cur_blk,
+ v->fcm == ILACE_FRAME && s->mb_x && v->fieldtx_plane[mb_pos - 1],
+ v->fcm == ILACE_FRAME && v->fieldtx_plane[mb_pos],
+ i);
+ }
if (v->fcm != ILACE_FRAME)
for (i = 0; i < block_count; i++) {
- if (s->mb_x && v->mb_type[0][s->block_index[i] - 1] &&
- (s->first_slice_line || v->mb_type[0][s->block_index[i] - s->block_wrap[i] - 1]))
+ if (s->first_slice_line && !(i & 2))
+ continue;
+
+ if (s->mb_x && v->mb_type[0][s->block_index[i] - 2 + (i > 3)] &&
+ v->mb_type[0][s->block_index[i] - s->block_wrap[i] - 2 + (i > 3)])
vc1_v_overlap_filter(v, s->first_slice_line ? left_blk : topleft_blk, left_blk, i);
if (s->mb_x == s->mb_width - 1)
if (v->mb_type[0][s->block_index[i]] &&
- (s->first_slice_line || v->mb_type[0][s->block_index[i] - s->block_wrap[i]]))
+ v->mb_type[0][s->block_index[i] - s->block_wrap[i]])
vc1_v_overlap_filter(v, s->first_slice_line ? cur_blk : top_blk, cur_blk, i);
}
}
@@ -250,7 +293,7 @@ void ff_vc1_i_loop_filter(VC1Context *v)
for (i = 0; i < block_count; i++)
vc1_i_v_loop_filter(v, i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize - 8 : dest, flags, fieldtx, i);
}
- if (s->mb_x == s->mb_width - 1) {
+ if (s->mb_x == v->end_mb_x - 1) {
dest += 16;
fieldtx = v->fieldtx_plane[mb_pos - s->mb_stride];
for (i = 0; i < block_count; i++)
@@ -265,7 +308,7 @@ void ff_vc1_i_loop_filter(VC1Context *v)
for (i = 0; i < block_count; i++)
vc1_i_v_loop_filter(v, i > 3 ? s->dest[i - 3] - 8 : dest, flags, fieldtx, i);
}
- if (s->mb_x == s->mb_width - 1) {
+ if (s->mb_x == v->end_mb_x - 1) {
dest += 16;
fieldtx = v->fieldtx_plane[mb_pos];
for (i = 0; i < block_count; i++)
@@ -280,7 +323,7 @@ void ff_vc1_i_loop_filter(VC1Context *v)
for (i = 0; i < block_count; i++)
vc1_i_h_loop_filter(v, i > 3 ? s->dest[i - 3] - 16 * s->uvlinesize - 8 : dest, flags, i);
}
- if (s->mb_x == s->mb_width - 1) {
+ if (s->mb_x == v->end_mb_x - 1) {
dest += 16;
flags = s->mb_x == 0 ? LEFT_EDGE | RIGHT_EDGE : RIGHT_EDGE;
for (i = 0; i < block_count; i++)
@@ -295,7 +338,7 @@ void ff_vc1_i_loop_filter(VC1Context *v)
for (i = 0; i < block_count; i++)
vc1_i_h_loop_filter(v, i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize - 8 : dest, flags, i);
}
- if (s->mb_x == s->mb_width - 1) {
+ if (s->mb_x == v->end_mb_x - 1) {
flags = s->mb_x == 0 ? LEFT_EDGE | RIGHT_EDGE : RIGHT_EDGE;
dest += 16;
for (i = 0; i < block_count; i++)
@@ -308,7 +351,7 @@ void ff_vc1_i_loop_filter(VC1Context *v)
for (i = 0; i < block_count; i++)
vc1_i_h_loop_filter(v, i > 3 ? s->dest[i - 3] - 8 : dest, flags, i);
}
- if (s->mb_x == s->mb_width - 1) {
+ if (s->mb_x == v->end_mb_x - 1) {
dest += 16;
flags = s->mb_x == 0 ? LEFT_EDGE | RIGHT_EDGE : RIGHT_EDGE;
for (i = 0; i < block_count; i++)
diff --git a/chromium/third_party/ffmpeg/libavcodec/vc1dec.c b/chromium/third_party/ffmpeg/libavcodec/vc1dec.c
index 4f7b20a4a45..9519864c558 100644
--- a/chromium/third_party/ffmpeg/libavcodec/vc1dec.c
+++ b/chromium/third_party/ffmpeg/libavcodec/vc1dec.c
@@ -698,9 +698,7 @@ static int vc1_decode_frame(AVCodecContext *avctx, void *data,
slices[n_slices].buf);
init_get_bits(&slices[n_slices].gb, slices[n_slices].buf,
buf_size3 << 3);
- /* assuming that the field marker is at the exact middle,
- hope it's correct */
- slices[n_slices].mby_start = s->mb_height + 1 >> 1;
+ slices[n_slices].mby_start = avctx->coded_height + 31 >> 5;
slices[n_slices].rawbuf = start;
slices[n_slices].raw_size = size + 4;
n_slices1 = n_slices - 1; // index of the last slice of the first field
@@ -903,13 +901,41 @@ static int vc1_decode_frame(AVCodecContext *avctx, void *data,
s->picture_structure = PICT_BOTTOM_FIELD - v->tff;
if ((ret = avctx->hwaccel->start_frame(avctx, buf_start, buf_start_second_field - buf_start)) < 0)
goto err;
- if ((ret = avctx->hwaccel->decode_slice(avctx, buf_start, buf_start_second_field - buf_start)) < 0)
- goto err;
+
+ if (n_slices1 == -1) {
+ // no slices, decode the field as-is
+ if ((ret = avctx->hwaccel->decode_slice(avctx, buf_start, buf_start_second_field - buf_start)) < 0)
+ goto err;
+ } else {
+ if ((ret = avctx->hwaccel->decode_slice(avctx, buf_start, slices[0].rawbuf - buf_start)) < 0)
+ goto err;
+
+ for (i = 0 ; i < n_slices1 + 1; i++) {
+ s->gb = slices[i].gb;
+ s->mb_y = slices[i].mby_start;
+
+ v->pic_header_flag = get_bits1(&s->gb);
+ if (v->pic_header_flag) {
+ if (ff_vc1_parse_frame_header_adv(v, &s->gb) < 0) {
+ av_log(v->s.avctx, AV_LOG_ERROR, "Slice header damaged\n");
+ ret = AVERROR_INVALIDDATA;
+ if (avctx->err_recognition & AV_EF_EXPLODE)
+ goto err;
+ continue;
+ }
+ }
+
+ if ((ret = avctx->hwaccel->decode_slice(avctx, slices[i].rawbuf, slices[i].raw_size)) < 0)
+ goto err;
+ }
+ }
+
if ((ret = avctx->hwaccel->end_frame(avctx)) < 0)
goto err;
// decode second field
s->gb = slices[n_slices1 + 1].gb;
+ s->mb_y = slices[n_slices1 + 1].mby_start;
s->picture_structure = PICT_TOP_FIELD + v->tff;
v->second_field = 1;
v->pic_header_flag = 0;
@@ -922,8 +948,35 @@ static int vc1_decode_frame(AVCodecContext *avctx, void *data,
if ((ret = avctx->hwaccel->start_frame(avctx, buf_start_second_field, (buf + buf_size) - buf_start_second_field)) < 0)
goto err;
- if ((ret = avctx->hwaccel->decode_slice(avctx, buf_start_second_field, (buf + buf_size) - buf_start_second_field)) < 0)
- goto err;
+
+ if (n_slices - n_slices1 == 2) {
+ // no slices, decode the field as-is
+ if ((ret = avctx->hwaccel->decode_slice(avctx, buf_start_second_field, (buf + buf_size) - buf_start_second_field)) < 0)
+ goto err;
+ } else {
+ if ((ret = avctx->hwaccel->decode_slice(avctx, buf_start_second_field, slices[n_slices1 + 2].rawbuf - buf_start_second_field)) < 0)
+ goto err;
+
+ for (i = n_slices1 + 2; i < n_slices; i++) {
+ s->gb = slices[i].gb;
+ s->mb_y = slices[i].mby_start;
+
+ v->pic_header_flag = get_bits1(&s->gb);
+ if (v->pic_header_flag) {
+ if (ff_vc1_parse_frame_header_adv(v, &s->gb) < 0) {
+ av_log(v->s.avctx, AV_LOG_ERROR, "Slice header damaged\n");
+ ret = AVERROR_INVALIDDATA;
+ if (avctx->err_recognition & AV_EF_EXPLODE)
+ goto err;
+ continue;
+ }
+ }
+
+ if ((ret = avctx->hwaccel->decode_slice(avctx, slices[i].rawbuf, slices[i].raw_size)) < 0)
+ goto err;
+ }
+ }
+
if ((ret = avctx->hwaccel->end_frame(avctx)) < 0)
goto err;
} else {
@@ -1035,7 +1088,9 @@ static int vc1_decode_frame(AVCodecContext *avctx, void *data,
av_log(v->s.avctx, AV_LOG_ERROR, "end mb y %d %d invalid\n", s->end_mb_y, s->start_mb_y);
continue;
}
- if (!v->p_frame_skipped && s->pict_type != AV_PICTURE_TYPE_I && !v->cbpcy_vlc) {
+ if (((s->pict_type == AV_PICTURE_TYPE_P && !v->p_frame_skipped) ||
+ (s->pict_type == AV_PICTURE_TYPE_B && !v->bi_type)) &&
+ !v->cbpcy_vlc) {
av_log(v->s.avctx, AV_LOG_ERROR, "missing cbpcy_vlc\n");
continue;
}
diff --git a/chromium/third_party/ffmpeg/libavcodec/vc1dsp.c b/chromium/third_party/ffmpeg/libavcodec/vc1dsp.c
index 9239a4a1f5b..778b811f1ae 100644
--- a/chromium/third_party/ffmpeg/libavcodec/vc1dsp.c
+++ b/chromium/third_party/ffmpeg/libavcodec/vc1dsp.c
@@ -107,12 +107,13 @@ static void vc1_v_s_overlap_c(int16_t *top, int16_t *bottom)
}
}
-static void vc1_h_s_overlap_c(int16_t *left, int16_t *right)
+static void vc1_h_s_overlap_c(int16_t *left, int16_t *right, int left_stride, int right_stride, int flags)
{
int i;
int a, b, c, d;
int d1, d2;
- int rnd1 = 4, rnd2 = 3;
+ int rnd1 = flags & 2 ? 3 : 4;
+ int rnd2 = 7 - rnd1;
for (i = 0; i < 8; i++) {
a = left[6];
b = left[7];
@@ -126,10 +127,12 @@ static void vc1_h_s_overlap_c(int16_t *left, int16_t *right)
right[0] = ((c << 3) + d2 + rnd1) >> 3;
right[1] = ((d << 3) + d1 + rnd2) >> 3;
- right += 8;
- left += 8;
- rnd2 = 7 - rnd2;
- rnd1 = 7 - rnd1;
+ right += right_stride;
+ left += left_stride;
+ if (flags & 1) {
+ rnd2 = 7 - rnd2;
+ rnd1 = 7 - rnd1;
+ }
}
}
diff --git a/chromium/third_party/ffmpeg/libavcodec/vc1dsp.h b/chromium/third_party/ffmpeg/libavcodec/vc1dsp.h
index 16b3528a75c..75db62b1b42 100644
--- a/chromium/third_party/ffmpeg/libavcodec/vc1dsp.h
+++ b/chromium/third_party/ffmpeg/libavcodec/vc1dsp.h
@@ -45,7 +45,7 @@ typedef struct VC1DSPContext {
void (*vc1_v_overlap)(uint8_t *src, int stride);
void (*vc1_h_overlap)(uint8_t *src, int stride);
void (*vc1_v_s_overlap)(int16_t *top, int16_t *bottom);
- void (*vc1_h_s_overlap)(int16_t *left, int16_t *right);
+ void (*vc1_h_s_overlap)(int16_t *left, int16_t *right, int left_stride, int right_stride, int flags);
void (*vc1_v_loop_filter4)(uint8_t *src, int stride, int pq);
void (*vc1_h_loop_filter4)(uint8_t *src, int stride, int pq);
void (*vc1_v_loop_filter8)(uint8_t *src, int stride, int pq);
diff --git a/chromium/third_party/ffmpeg/libavcodec/version.h b/chromium/third_party/ffmpeg/libavcodec/version.h
index 5e71b488165..72e70945f7f 100644
--- a/chromium/third_party/ffmpeg/libavcodec/version.h
+++ b/chromium/third_party/ffmpeg/libavcodec/version.h
@@ -28,8 +28,8 @@
#include "libavutil/version.h"
#define LIBAVCODEC_VERSION_MAJOR 58
-#define LIBAVCODEC_VERSION_MINOR 20
-#define LIBAVCODEC_VERSION_MICRO 101
+#define LIBAVCODEC_VERSION_MINOR 21
+#define LIBAVCODEC_VERSION_MICRO 106
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \
diff --git a/chromium/third_party/ffmpeg/libavcodec/videotoolboxenc.c b/chromium/third_party/ffmpeg/libavcodec/videotoolboxenc.c
index 7796a685c25..f311149e40b 100644
--- a/chromium/third_party/ffmpeg/libavcodec/videotoolboxenc.c
+++ b/chromium/third_party/ffmpeg/libavcodec/videotoolboxenc.c
@@ -1017,7 +1017,7 @@ static int vtenc_create_encoder(AVCodecContext *avctx,
return AVERROR_EXTERNAL;
}
- if (vtctx->codec_id == AV_CODEC_ID_H264) {
+ if (vtctx->codec_id == AV_CODEC_ID_H264 && max_rate > 0) {
// kVTCompressionPropertyKey_DataRateLimits is not available for HEVC
bytes_per_second_value = max_rate >> 3;
bytes_per_second = CFNumberCreate(kCFAllocatorDefault,
@@ -1058,7 +1058,10 @@ static int vtenc_create_encoder(AVCodecContext *avctx,
av_log(avctx, AV_LOG_ERROR, "Error setting max bitrate property: %d\n", status);
return AVERROR_EXTERNAL;
}
+ }
+ if (vtctx->codec_id == AV_CODEC_ID_H264) {
+ // kVTCompressionPropertyKey_ProfileLevel is not available for HEVC
if (profile_level) {
status = VTSessionSetProperty(vtctx->session,
kVTCompressionPropertyKey_ProfileLevel,
@@ -1262,19 +1265,16 @@ static int vtenc_create_encoder(AVCodecContext *avctx,
return 0;
}
-static av_cold int vtenc_init(AVCodecContext *avctx)
+static int vtenc_configure_encoder(AVCodecContext *avctx)
{
CFMutableDictionaryRef enc_info;
CFMutableDictionaryRef pixel_buffer_info;
CMVideoCodecType codec_type;
VTEncContext *vtctx = avctx->priv_data;
CFStringRef profile_level;
- CFBooleanRef has_b_frames_cfbool;
CFNumberRef gamma_level = NULL;
int status;
- pthread_once(&once_ctrl, loadVTEncSymbols);
-
codec_type = get_cm_codec_type(avctx->codec_id);
if (!codec_type) {
av_log(avctx, AV_LOG_ERROR, "Error: no mapping for AVCodecID %d\n", avctx->codec_id);
@@ -1304,8 +1304,6 @@ static av_cold int vtenc_init(AVCodecContext *avctx)
if (!get_vt_hevc_profile_level(avctx, &profile_level)) return AVERROR(EINVAL);
}
- vtctx->session = NULL;
-
enc_info = CFDictionaryCreateMutable(
kCFAllocatorDefault,
20,
@@ -1335,8 +1333,6 @@ static av_cold int vtenc_init(AVCodecContext *avctx)
pixel_buffer_info = NULL;
}
- pthread_mutex_init(&vtctx->lock, NULL);
- pthread_cond_init(&vtctx->cv_sample_sent, NULL);
vtctx->dts_delta = vtctx->has_b_frames ? -1 : 0;
get_cv_transfer_function(avctx, &vtctx->transfer_function, &gamma_level);
@@ -1363,8 +1359,32 @@ static av_cold int vtenc_init(AVCodecContext *avctx)
pixel_buffer_info,
&vtctx->session);
- if (status < 0)
- goto init_cleanup;
+init_cleanup:
+ if (gamma_level)
+ CFRelease(gamma_level);
+
+ if (pixel_buffer_info)
+ CFRelease(pixel_buffer_info);
+
+ CFRelease(enc_info);
+
+ return status;
+}
+
+static av_cold int vtenc_init(AVCodecContext *avctx)
+{
+ VTEncContext *vtctx = avctx->priv_data;
+ CFBooleanRef has_b_frames_cfbool;
+ int status;
+
+ pthread_once(&once_ctrl, loadVTEncSymbols);
+
+ pthread_mutex_init(&vtctx->lock, NULL);
+ pthread_cond_init(&vtctx->cv_sample_sent, NULL);
+
+ vtctx->session = NULL;
+ status = vtenc_configure_encoder(avctx);
+ if (status) return status;
status = VTSessionCopyProperty(vtctx->session,
kVTCompressionPropertyKey_AllowFrameReordering,
@@ -1378,16 +1398,7 @@ static av_cold int vtenc_init(AVCodecContext *avctx)
}
avctx->has_b_frames = vtctx->has_b_frames;
-init_cleanup:
- if (gamma_level)
- CFRelease(gamma_level);
-
- if (pixel_buffer_info)
- CFRelease(pixel_buffer_info);
-
- CFRelease(enc_info);
-
- return status;
+ return 0;
}
static void vtenc_get_frame_info(CMSampleBufferRef buffer, bool *is_key_frame)
@@ -2167,8 +2178,27 @@ static int create_cv_pixel_buffer(AVCodecContext *avctx,
#if TARGET_OS_IPHONE
pix_buf_pool = VTCompressionSessionGetPixelBufferPool(vtctx->session);
if (!pix_buf_pool) {
- av_log(avctx, AV_LOG_ERROR, "Could not get pixel buffer pool.\n");
- return AVERROR_EXTERNAL;
+ /* On iOS, the VT session is invalidated when the APP switches from
+ * foreground to background and vice versa. Fetch the actual error code
+ * of the VT session to detect that case and restart the VT session
+ * accordingly. */
+ OSStatus vtstatus;
+
+ vtstatus = VTCompressionSessionPrepareToEncodeFrames(vtctx->session);
+ if (vtstatus == kVTInvalidSessionErr) {
+ CFRelease(vtctx->session);
+ vtctx->session = NULL;
+ status = vtenc_configure_encoder(avctx);
+ if (status == 0)
+ pix_buf_pool = VTCompressionSessionGetPixelBufferPool(vtctx->session);
+ }
+ if (!pix_buf_pool) {
+ av_log(avctx, AV_LOG_ERROR, "Could not get pixel buffer pool.\n");
+ return AVERROR_EXTERNAL;
+ }
+ else
+ av_log(avctx, AV_LOG_WARNING, "VT session restarted because of a "
+ "kVTInvalidSessionErr error.\n");
}
status = CVPixelBufferPoolCreatePixelBuffer(NULL,
@@ -2473,13 +2503,14 @@ static av_cold int vtenc_close(AVCodecContext *avctx)
{
VTEncContext *vtctx = avctx->priv_data;
+ pthread_cond_destroy(&vtctx->cv_sample_sent);
+ pthread_mutex_destroy(&vtctx->lock);
+
if(!vtctx->session) return 0;
VTCompressionSessionCompleteFrames(vtctx->session,
kCMTimeIndefinite);
clear_frame_queue(vtctx);
- pthread_cond_destroy(&vtctx->cv_sample_sent);
- pthread_mutex_destroy(&vtctx->lock);
CFRelease(vtctx->session);
vtctx->session = NULL;
diff --git a/chromium/third_party/ffmpeg/libavcodec/vp8.c b/chromium/third_party/ffmpeg/libavcodec/vp8.c
index 62b9f8bc2da..3adfeac3d94 100644
--- a/chromium/third_party/ffmpeg/libavcodec/vp8.c
+++ b/chromium/third_party/ffmpeg/libavcodec/vp8.c
@@ -492,9 +492,11 @@ static void fade(uint8_t *dst, ptrdiff_t dst_linesize,
{
int i, j;
for (j = 0; j < height; j++) {
+ const uint8_t *src2 = src + j * src_linesize;
+ uint8_t *dst2 = dst + j * dst_linesize;
for (i = 0; i < width; i++) {
- uint8_t y = src[j * src_linesize + i];
- dst[j * dst_linesize + i] = av_clip_uint8(y + ((y * beta) >> 8) + alpha);
+ uint8_t y = src2[i];
+ dst2[i] = av_clip_uint8(y + ((y * beta) >> 8) + alpha);
}
}
}
diff --git a/chromium/third_party/ffmpeg/libavcodec/vp8_parser.c b/chromium/third_party/ffmpeg/libavcodec/vp8_parser.c
index 609f5077d1a..7ce35e7535c 100644
--- a/chromium/third_party/ffmpeg/libavcodec/vp8_parser.c
+++ b/chromium/third_party/ffmpeg/libavcodec/vp8_parser.c
@@ -28,6 +28,9 @@ static int parse(AVCodecParserContext *s,
unsigned int frame_type;
unsigned int profile;
+ *poutbuf = buf;
+ *poutbuf_size = buf_size;
+
if (buf_size < 3)
return buf_size;
@@ -67,8 +70,6 @@ static int parse(AVCodecParserContext *s,
s->coded_height = FFALIGN(height, 16);
}
- *poutbuf = buf;
- *poutbuf_size = buf_size;
return buf_size;
}
diff --git a/chromium/third_party/ffmpeg/libavdevice/decklink_common.cpp b/chromium/third_party/ffmpeg/libavdevice/decklink_common.cpp
index d8cced7c740..aab9d85b940 100644
--- a/chromium/third_party/ffmpeg/libavdevice/decklink_common.cpp
+++ b/chromium/third_party/ffmpeg/libavdevice/decklink_common.cpp
@@ -77,36 +77,6 @@ static IDeckLinkIterator *decklink_create_iterator(AVFormatContext *avctx)
return iter;
}
-#ifdef _WIN32
-static char *dup_wchar_to_utf8(wchar_t *w)
-{
- char *s = NULL;
- int l = WideCharToMultiByte(CP_UTF8, 0, w, -1, 0, 0, 0, 0);
- s = (char *) av_malloc(l);
- if (s)
- WideCharToMultiByte(CP_UTF8, 0, w, -1, s, l, 0, 0);
- return s;
-}
-#define DECKLINK_STR OLECHAR *
-#define DECKLINK_STRDUP dup_wchar_to_utf8
-#define DECKLINK_FREE(s) SysFreeString(s)
-#elif defined(__APPLE__)
-static char *dup_cfstring_to_utf8(CFStringRef w)
-{
- char s[256];
- CFStringGetCString(w, s, 255, kCFStringEncodingUTF8);
- return av_strdup(s);
-}
-#define DECKLINK_STR const __CFString *
-#define DECKLINK_STRDUP dup_cfstring_to_utf8
-#define DECKLINK_FREE(s) CFRelease(s)
-#else
-#define DECKLINK_STR const char *
-#define DECKLINK_STRDUP av_strdup
-/* free() is needed for a string returned by the DeckLink SDL. */
-#define DECKLINK_FREE(s) free((void *) s)
-#endif
-
HRESULT ff_decklink_get_display_name(IDeckLink *This, const char **displayName)
{
DECKLINK_STR tmpDisplayName;
diff --git a/chromium/third_party/ffmpeg/libavdevice/decklink_common.h b/chromium/third_party/ffmpeg/libavdevice/decklink_common.h
index 57ee7d1d689..96b001c2d88 100644
--- a/chromium/third_party/ffmpeg/libavdevice/decklink_common.h
+++ b/chromium/third_party/ffmpeg/libavdevice/decklink_common.h
@@ -34,6 +34,36 @@
#define DECKLINK_BOOL bool
#endif
+#ifdef _WIN32
+static char *dup_wchar_to_utf8(wchar_t *w)
+{
+ char *s = NULL;
+ int l = WideCharToMultiByte(CP_UTF8, 0, w, -1, 0, 0, 0, 0);
+ s = (char *) av_malloc(l);
+ if (s)
+ WideCharToMultiByte(CP_UTF8, 0, w, -1, s, l, 0, 0);
+ return s;
+}
+#define DECKLINK_STR OLECHAR *
+#define DECKLINK_STRDUP dup_wchar_to_utf8
+#define DECKLINK_FREE(s) SysFreeString(s)
+#elif defined(__APPLE__)
+static char *dup_cfstring_to_utf8(CFStringRef w)
+{
+ char s[256];
+ CFStringGetCString(w, s, 255, kCFStringEncodingUTF8);
+ return av_strdup(s);
+}
+#define DECKLINK_STR const __CFString *
+#define DECKLINK_STRDUP dup_cfstring_to_utf8
+#define DECKLINK_FREE(s) CFRelease(s)
+#else
+#define DECKLINK_STR const char *
+#define DECKLINK_STRDUP av_strdup
+/* free() is needed for a string returned by the DeckLink SDL. */
+#define DECKLINK_FREE(s) free((void *) s)
+#endif
+
class decklink_output_callback;
class decklink_input_callback;
@@ -56,7 +86,6 @@ struct decklink_ctx {
IDeckLinkConfiguration *cfg;
IDeckLinkAttributes *attr;
decklink_output_callback *output_callback;
- decklink_input_callback *input_callback;
/* DeckLink mode information */
BMDTimeValue bmd_tb_den;
@@ -64,6 +93,7 @@ struct decklink_ctx {
BMDDisplayMode bmd_mode;
BMDVideoConnection video_input;
BMDAudioConnection audio_input;
+ BMDTimecodeFormat tc_format;
int bmd_width;
int bmd_height;
int bmd_field_dominance;
@@ -140,6 +170,17 @@ static const BMDVideoConnection decklink_video_connection_map[] = {
bmdVideoConnectionSVideo,
};
+static const BMDTimecodeFormat decklink_timecode_format_map[] = {
+ (BMDTimecodeFormat)0,
+ bmdTimecodeRP188VITC1,
+ bmdTimecodeRP188VITC2,
+ bmdTimecodeRP188LTC,
+ bmdTimecodeRP188Any,
+ bmdTimecodeVITC,
+ bmdTimecodeVITCField2,
+ bmdTimecodeSerial,
+};
+
HRESULT ff_decklink_get_display_name(IDeckLink *This, const char **displayName);
int ff_decklink_set_configs(AVFormatContext *avctx, decklink_direction_t direction);
int ff_decklink_set_format(AVFormatContext *avctx, int width, int height, int tb_num, int tb_den, enum AVFieldOrder field_order, decklink_direction_t direction = DIRECTION_OUT, int num = 0);
diff --git a/chromium/third_party/ffmpeg/libavdevice/decklink_common_c.h b/chromium/third_party/ffmpeg/libavdevice/decklink_common_c.h
index 08e9f9bbd5e..32a5d70ee19 100644
--- a/chromium/third_party/ffmpeg/libavdevice/decklink_common_c.h
+++ b/chromium/third_party/ffmpeg/libavdevice/decklink_common_c.h
@@ -50,6 +50,7 @@ struct decklink_cctx {
DecklinkPtsSource video_pts_source;
int audio_input;
int video_input;
+ int tc_format;
int draw_bars;
char *format_code;
int raw_format;
diff --git a/chromium/third_party/ffmpeg/libavdevice/decklink_dec.cpp b/chromium/third_party/ffmpeg/libavdevice/decklink_dec.cpp
index 510637676c5..7fabef231c7 100644
--- a/chromium/third_party/ffmpeg/libavdevice/decklink_dec.cpp
+++ b/chromium/third_party/ffmpeg/libavdevice/decklink_dec.cpp
@@ -21,6 +21,9 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include <atomic>
+using std::atomic;
+
/* Include internal.h first to avoid conflict between winsock.h (used by
* DeckLink headers) and winsock2.h (used by libavformat) in MSVC++ builds */
extern "C" {
@@ -98,6 +101,44 @@ static VANCLineNumber vanc_line_numbers[] = {
{bmdModeUnknown, 0, -1, -1, -1}
};
+class decklink_allocator : public IDeckLinkMemoryAllocator
+{
+public:
+ decklink_allocator(): _refs(1) { }
+ virtual ~decklink_allocator() { }
+
+ // IDeckLinkMemoryAllocator methods
+ virtual HRESULT STDMETHODCALLTYPE AllocateBuffer(unsigned int bufferSize, void* *allocatedBuffer)
+ {
+ void *buf = av_malloc(bufferSize + AV_INPUT_BUFFER_PADDING_SIZE);
+ if (!buf)
+ return E_OUTOFMEMORY;
+ *allocatedBuffer = buf;
+ return S_OK;
+ }
+ virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer(void* buffer)
+ {
+ av_free(buffer);
+ return S_OK;
+ }
+ virtual HRESULT STDMETHODCALLTYPE Commit() { return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE Decommit() { return S_OK; }
+
+ // IUnknown methods
+ virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) { return E_NOINTERFACE; }
+ virtual ULONG STDMETHODCALLTYPE AddRef(void) { return ++_refs; }
+ virtual ULONG STDMETHODCALLTYPE Release(void)
+ {
+ int ret = --_refs;
+ if (!ret)
+ delete this;
+ return ret;
+ }
+
+private:
+ std::atomic<int> _refs;
+};
+
extern "C" {
static void decklink_object_free(void *opaque, uint8_t *data)
{
@@ -555,8 +596,7 @@ public:
virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived(IDeckLinkVideoInputFrame*, IDeckLinkAudioInputPacket*);
private:
- ULONG m_refCount;
- pthread_mutex_t m_mutex;
+ std::atomic<int> _refs;
AVFormatContext *avctx;
decklink_ctx *ctx;
int no_video;
@@ -564,42 +604,30 @@ private:
int64_t initial_audio_pts;
};
-decklink_input_callback::decklink_input_callback(AVFormatContext *_avctx) : m_refCount(0)
+decklink_input_callback::decklink_input_callback(AVFormatContext *_avctx) : _refs(1)
{
avctx = _avctx;
decklink_cctx *cctx = (struct decklink_cctx *)avctx->priv_data;
ctx = (struct decklink_ctx *)cctx->ctx;
no_video = 0;
initial_audio_pts = initial_video_pts = AV_NOPTS_VALUE;
- pthread_mutex_init(&m_mutex, NULL);
}
decklink_input_callback::~decklink_input_callback()
{
- pthread_mutex_destroy(&m_mutex);
}
ULONG decklink_input_callback::AddRef(void)
{
- pthread_mutex_lock(&m_mutex);
- m_refCount++;
- pthread_mutex_unlock(&m_mutex);
-
- return (ULONG)m_refCount;
+ return ++_refs;
}
ULONG decklink_input_callback::Release(void)
{
- pthread_mutex_lock(&m_mutex);
- m_refCount--;
- pthread_mutex_unlock(&m_mutex);
-
- if (m_refCount == 0) {
+ int ret = --_refs;
+ if (!ret)
delete this;
- return 0;
- }
-
- return (ULONG)m_refCount;
+ return ret;
}
static int64_t get_pkt_pts(IDeckLinkVideoInputFrame *videoFrame,
@@ -724,6 +752,35 @@ HRESULT decklink_input_callback::VideoInputFrameArrived(
"- Frames dropped %u\n", ctx->frameCount, ++ctx->dropped);
}
no_video = 0;
+
+ // Handle Timecode (if requested)
+ if (ctx->tc_format) {
+ IDeckLinkTimecode *timecode;
+ if (videoFrame->GetTimecode(ctx->tc_format, &timecode) == S_OK) {
+ const char *tc = NULL;
+ DECKLINK_STR decklink_tc;
+ if (timecode->GetString(&decklink_tc) == S_OK) {
+ tc = DECKLINK_STRDUP(decklink_tc);
+ DECKLINK_FREE(decklink_tc);
+ }
+ timecode->Release();
+ if (tc) {
+ AVDictionary* metadata_dict = NULL;
+ int metadata_len;
+ uint8_t* packed_metadata;
+ if (av_dict_set(&metadata_dict, "timecode", tc, AV_DICT_DONT_STRDUP_VAL) >= 0) {
+ packed_metadata = av_packet_pack_dictionary(metadata_dict, &metadata_len);
+ av_dict_free(&metadata_dict);
+ if (packed_metadata) {
+ if (av_packet_add_side_data(&pkt, AV_PKT_DATA_STRINGS_METADATA, packed_metadata, metadata_len) < 0)
+ av_freep(&packed_metadata);
+ }
+ }
+ }
+ } else {
+ av_log(avctx, AV_LOG_DEBUG, "Unable to find timecode.\n");
+ }
+ }
}
pkt.pts = get_pkt_pts(videoFrame, audioFrame, wallclock, abs_wallclock, ctx->video_pts_source, ctx->video_st->time_base, &initial_video_pts, cctx->copyts);
@@ -924,6 +981,8 @@ av_cold int ff_decklink_read_header(AVFormatContext *avctx)
{
struct decklink_cctx *cctx = (struct decklink_cctx *)avctx->priv_data;
struct decklink_ctx *ctx;
+ class decklink_allocator *allocator;
+ class decklink_input_callback *input_callback;
AVStream *st;
HRESULT result;
char fname[1024];
@@ -939,6 +998,8 @@ av_cold int ff_decklink_read_header(AVFormatContext *avctx)
ctx->teletext_lines = cctx->teletext_lines;
ctx->preroll = cctx->preroll;
ctx->duplex_mode = cctx->duplex_mode;
+ if (cctx->tc_format > 0 && (unsigned int)cctx->tc_format < FF_ARRAY_ELEMS(decklink_timecode_format_map))
+ ctx->tc_format = decklink_timecode_format_map[cctx->tc_format];
if (cctx->video_input > 0 && (unsigned int)cctx->video_input < FF_ARRAY_ELEMS(decklink_video_connection_map))
ctx->video_input = decklink_video_connection_map[cctx->video_input];
if (cctx->audio_input > 0 && (unsigned int)cctx->audio_input < FF_ARRAY_ELEMS(decklink_audio_connection_map))
@@ -1014,8 +1075,21 @@ av_cold int ff_decklink_read_header(AVFormatContext *avctx)
goto error;
}
- ctx->input_callback = new decklink_input_callback(avctx);
- ctx->dli->SetCallback(ctx->input_callback);
+ input_callback = new decklink_input_callback(avctx);
+ ret = (ctx->dli->SetCallback(input_callback) == S_OK ? 0 : AVERROR_EXTERNAL);
+ input_callback->Release();
+ if (ret < 0) {
+ av_log(avctx, AV_LOG_ERROR, "Cannot set input callback\n");
+ goto error;
+ }
+
+ allocator = new decklink_allocator();
+ ret = (ctx->dli->SetVideoInputFrameMemoryAllocator(allocator) == S_OK ? 0 : AVERROR_EXTERNAL);
+ allocator->Release();
+ if (ret < 0) {
+ av_log(avctx, AV_LOG_ERROR, "Cannot set custom memory allocator\n");
+ goto error;
+ }
if (mode_num == 0 && !cctx->format_code) {
if (decklink_autodetect(cctx) < 0) {
@@ -1179,6 +1253,15 @@ int ff_decklink_read_packet(AVFormatContext *avctx, AVPacket *pkt)
avpacket_queue_get(&ctx->queue, pkt, 1);
+ if (ctx->tc_format && !(av_dict_get(ctx->video_st->metadata, "timecode", NULL, 0))) {
+ int size;
+ const uint8_t *side_metadata = av_packet_get_side_data(pkt, AV_PKT_DATA_STRINGS_METADATA, &size);
+ if (side_metadata) {
+ if (av_packet_unpack_dictionary(side_metadata, size, &ctx->video_st->metadata) < 0)
+ av_log(avctx, AV_LOG_ERROR, "Unable to set timecode\n");
+ }
+ }
+
return 0;
}
diff --git a/chromium/third_party/ffmpeg/libavdevice/decklink_dec_c.c b/chromium/third_party/ffmpeg/libavdevice/decklink_dec_c.c
index 47018dc681a..6ab3819375b 100644
--- a/chromium/third_party/ffmpeg/libavdevice/decklink_dec_c.c
+++ b/chromium/third_party/ffmpeg/libavdevice/decklink_dec_c.c
@@ -48,6 +48,15 @@ static const AVOption options[] = {
{ "unset", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 0}, 0, 0, DEC, "duplex_mode"},
{ "half", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 1}, 0, 0, DEC, "duplex_mode"},
{ "full", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 2}, 0, 0, DEC, "duplex_mode"},
+ { "timecode_format", "timecode format", OFFSET(tc_format), AV_OPT_TYPE_INT, { .i64 = 0}, 0, 7, DEC, "tc_format"},
+ { "none", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 0}, 0, 0, DEC, "tc_format"},
+ { "rp188vitc", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 1}, 0, 0, DEC, "tc_format"},
+ { "rp188vitc2", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 2}, 0, 0, DEC, "tc_format"},
+ { "rp188ltc", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 3}, 0, 0, DEC, "tc_format"},
+ { "rp188any", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 4}, 0, 0, DEC, "tc_format"},
+ { "vitc", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 5}, 0, 0, DEC, "tc_format"},
+ { "vitc2", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 6}, 0, 0, DEC, "tc_format"},
+ { "serial", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 7}, 0, 0, DEC, "tc_format"},
{ "video_input", "video input", OFFSET(video_input), AV_OPT_TYPE_INT, { .i64 = 0}, 0, 6, DEC, "video_input"},
{ "unset", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 0}, 0, 0, DEC, "video_input"},
{ "sdi", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 1}, 0, 0, DEC, "video_input"},
diff --git a/chromium/third_party/ffmpeg/libavdevice/v4l2enc.c b/chromium/third_party/ffmpeg/libavdevice/v4l2enc.c
index 85200d0a363..1c36f81f90b 100644
--- a/chromium/third_party/ffmpeg/libavdevice/v4l2enc.c
+++ b/chromium/third_party/ffmpeg/libavdevice/v4l2enc.c
@@ -106,7 +106,7 @@ static const AVClass v4l2_class = {
};
AVOutputFormat ff_v4l2_muxer = {
- .name = "v4l2",
+ .name = "video4linux2,v4l2",
.long_name = NULL_IF_CONFIG_SMALL("Video4Linux2 output device"),
.priv_data_size = sizeof(V4L2Context),
.audio_codec = AV_CODEC_ID_NONE,
diff --git a/chromium/third_party/ffmpeg/libavdevice/version.h b/chromium/third_party/ffmpeg/libavdevice/version.h
index 38d3d6ac78e..99041492887 100644
--- a/chromium/third_party/ffmpeg/libavdevice/version.h
+++ b/chromium/third_party/ffmpeg/libavdevice/version.h
@@ -29,7 +29,7 @@
#define LIBAVDEVICE_VERSION_MAJOR 58
#define LIBAVDEVICE_VERSION_MINOR 4
-#define LIBAVDEVICE_VERSION_MICRO 100
+#define LIBAVDEVICE_VERSION_MICRO 101
#define LIBAVDEVICE_VERSION_INT AV_VERSION_INT(LIBAVDEVICE_VERSION_MAJOR, \
LIBAVDEVICE_VERSION_MINOR, \
diff --git a/chromium/third_party/ffmpeg/libavfilter/Makefile b/chromium/third_party/ffmpeg/libavfilter/Makefile
index 5b4be4966c9..86b04e3efba 100644
--- a/chromium/third_party/ffmpeg/libavfilter/Makefile
+++ b/chromium/third_party/ffmpeg/libavfilter/Makefile
@@ -149,14 +149,16 @@ OBJS-$(CONFIG_ASS_FILTER) += vf_subtitles.o
OBJS-$(CONFIG_ATADENOISE_FILTER) += vf_atadenoise.o
OBJS-$(CONFIG_AVGBLUR_FILTER) += vf_avgblur.o
OBJS-$(CONFIG_AVGBLUR_OPENCL_FILTER) += vf_avgblur_opencl.o opencl.o \
- opencl/avgblur.o
+ opencl/avgblur.o boxblur.o
OBJS-$(CONFIG_BBOX_FILTER) += bbox.o vf_bbox.o
OBJS-$(CONFIG_BENCH_FILTER) += f_bench.o
OBJS-$(CONFIG_BITPLANENOISE_FILTER) += vf_bitplanenoise.o
OBJS-$(CONFIG_BLACKDETECT_FILTER) += vf_blackdetect.o
OBJS-$(CONFIG_BLACKFRAME_FILTER) += vf_blackframe.o
OBJS-$(CONFIG_BLEND_FILTER) += vf_blend.o framesync.o
-OBJS-$(CONFIG_BOXBLUR_FILTER) += vf_boxblur.o
+OBJS-$(CONFIG_BOXBLUR_FILTER) += vf_boxblur.o boxblur.o
+OBJS-$(CONFIG_BOXBLUR_OPENCL_FILTER) += vf_avgblur_opencl.o opencl.o \
+ opencl/avgblur.o boxblur.o
OBJS-$(CONFIG_BWDIF_FILTER) += vf_bwdif.o
OBJS-$(CONFIG_CHROMAKEY_FILTER) += vf_chromakey.o
OBJS-$(CONFIG_CIESCOPE_FILTER) += vf_ciescope.o
@@ -166,10 +168,10 @@ OBJS-$(CONFIG_COLORCHANNELMIXER_FILTER) += vf_colorchannelmixer.o
OBJS-$(CONFIG_COLORKEY_FILTER) += vf_colorkey.o
OBJS-$(CONFIG_COLORLEVELS_FILTER) += vf_colorlevels.o
OBJS-$(CONFIG_COLORMATRIX_FILTER) += vf_colormatrix.o
-OBJS-$(CONFIG_COLORSPACE_FILTER) += vf_colorspace.o colorspacedsp.o
+OBJS-$(CONFIG_COLORSPACE_FILTER) += vf_colorspace.o colorspace.o colorspacedsp.o
OBJS-$(CONFIG_CONVOLUTION_FILTER) += vf_convolution.o
OBJS-$(CONFIG_CONVOLUTION_OPENCL_FILTER) += vf_convolution_opencl.o opencl.o \
- opencl/convolution.o
+ opencl/convolution.o
OBJS-$(CONFIG_CONVOLVE_FILTER) += vf_convolve.o framesync.o
OBJS-$(CONFIG_COPY_FILTER) += vf_copy.o
OBJS-$(CONFIG_COREIMAGE_FILTER) += vf_coreimage.o
@@ -226,6 +228,7 @@ OBJS-$(CONFIG_FSPP_FILTER) += vf_fspp.o
OBJS-$(CONFIG_GBLUR_FILTER) += vf_gblur.o
OBJS-$(CONFIG_GEQ_FILTER) += vf_geq.o
OBJS-$(CONFIG_GRADFUN_FILTER) += vf_gradfun.o
+OBJS-$(CONFIG_GREYEDGE_FILTER) += vf_colorconstancy.o
OBJS-$(CONFIG_HALDCLUT_FILTER) += vf_lut3d.o framesync.o
OBJS-$(CONFIG_HFLIP_FILTER) += vf_hflip.o
OBJS-$(CONFIG_HISTEQ_FILTER) += vf_histeq.o
@@ -246,6 +249,7 @@ OBJS-$(CONFIG_INTERLACE_FILTER) += vf_tinterlace.o
OBJS-$(CONFIG_INTERLEAVE_FILTER) += f_interleave.o
OBJS-$(CONFIG_KERNDEINT_FILTER) += vf_kerndeint.o
OBJS-$(CONFIG_LENSCORRECTION_FILTER) += vf_lenscorrection.o
+OBJS-$(CONFIG_LENSFUN_FILTER) += vf_lensfun.o
OBJS-$(CONFIG_LIBVMAF_FILTER) += vf_libvmaf.o framesync.o
OBJS-$(CONFIG_LIMITER_FILTER) += vf_limiter.o
OBJS-$(CONFIG_LOOP_FILTER) += f_loop.o
@@ -292,6 +296,8 @@ OBJS-$(CONFIG_PP_FILTER) += vf_pp.o
OBJS-$(CONFIG_PP7_FILTER) += vf_pp7.o
OBJS-$(CONFIG_PREMULTIPLY_FILTER) += vf_premultiply.o framesync.o
OBJS-$(CONFIG_PREWITT_FILTER) += vf_convolution.o
+OBJS-$(CONFIG_PREWITT_OPENCL_FILTER) += vf_convolution_opencl.o opencl.o \
+ opencl/convolution.o
OBJS-$(CONFIG_PROCAMP_VAAPI_FILTER) += vf_procamp_vaapi.o vaapi_vpp.o
OBJS-$(CONFIG_PROGRAM_OPENCL_FILTER) += vf_program_opencl.o opencl.o framesync.o
OBJS-$(CONFIG_PSEUDOCOLOR_FILTER) += vf_pseudocolor.o
@@ -308,6 +314,8 @@ OBJS-$(CONFIG_REMOVELOGO_FILTER) += bbox.o lswsutils.o lavfutils.o v
OBJS-$(CONFIG_REPEATFIELDS_FILTER) += vf_repeatfields.o
OBJS-$(CONFIG_REVERSE_FILTER) += f_reverse.o
OBJS-$(CONFIG_ROBERTS_FILTER) += vf_convolution.o
+OBJS-$(CONFIG_ROBERTS_OPENCL_FILTER) += vf_convolution_opencl.o opencl.o \
+ opencl/convolution.o
OBJS-$(CONFIG_ROTATE_FILTER) += vf_rotate.o
OBJS-$(CONFIG_SAB_FILTER) += vf_sab.o
OBJS-$(CONFIG_SCALE_FILTER) += vf_scale.o scale.o
@@ -336,9 +344,11 @@ OBJS-$(CONFIG_SIGNALSTATS_FILTER) += vf_signalstats.o
OBJS-$(CONFIG_SIGNATURE_FILTER) += vf_signature.o
OBJS-$(CONFIG_SMARTBLUR_FILTER) += vf_smartblur.o
OBJS-$(CONFIG_SOBEL_FILTER) += vf_convolution.o
+OBJS-$(CONFIG_SOBEL_OPENCL_FILTER) += vf_convolution_opencl.o opencl.o \
+ opencl/convolution.o
OBJS-$(CONFIG_SPLIT_FILTER) += split.o
OBJS-$(CONFIG_SPP_FILTER) += vf_spp.o
-OBJS-$(CONFIG_SRCNN_FILTER) += vf_srcnn.o
+OBJS-$(CONFIG_SR_FILTER) += vf_sr.o
OBJS-$(CONFIG_SSIM_FILTER) += vf_ssim.o framesync.o
OBJS-$(CONFIG_STEREO3D_FILTER) += vf_stereo3d.o
OBJS-$(CONFIG_STREAMSELECT_FILTER) += f_streamselect.o framesync.o
@@ -356,6 +366,8 @@ OBJS-$(CONFIG_TINTERLACE_FILTER) += vf_tinterlace.o
OBJS-$(CONFIG_TLUT2_FILTER) += vf_lut2.o framesync.o
OBJS-$(CONFIG_TMIX_FILTER) += vf_mix.o framesync.o
OBJS-$(CONFIG_TONEMAP_FILTER) += vf_tonemap.o
+OBJS-$(CONFIG_TONEMAP_OPENCL_FILTER) += vf_tonemap_opencl.o colorspace.o opencl.o \
+ opencl/tonemap.o opencl/colorspace_common.o
OBJS-$(CONFIG_TRANSPOSE_FILTER) += vf_transpose.o
OBJS-$(CONFIG_TRIM_FILTER) += trim.o
OBJS-$(CONFIG_UNPREMULTIPLY_FILTER) += vf_premultiply.o framesync.o
diff --git a/chromium/third_party/ffmpeg/libavfilter/af_afir.c b/chromium/third_party/ffmpeg/libavfilter/af_afir.c
index 75de14729da..a4a7160de17 100644
--- a/chromium/third_party/ffmpeg/libavfilter/af_afir.c
+++ b/chromium/third_party/ffmpeg/libavfilter/af_afir.c
@@ -191,7 +191,7 @@ static void drawtext(AVFrame *pic, int x, int y, const char *txt, uint32_t color
static void draw_line(AVFrame *out, int x0, int y0, int x1, int y1, uint32_t color)
{
- int dx = FFABS(x1-x0), sx = x0 < x1 ? 1 : -1;
+ int dx = FFABS(x1-x0);
int dy = FFABS(y1-y0), sy = y0 < y1 ? 1 : -1;
int err = (dx>dy ? dx : -dy) / 2, e2;
@@ -205,7 +205,7 @@ static void draw_line(AVFrame *out, int x0, int y0, int x1, int y1, uint32_t col
if (e2 >-dx) {
err -= dy;
- x0 += sx;
+ x0--;
}
if (e2 < dy) {
diff --git a/chromium/third_party/ffmpeg/libavfilter/af_aiir.c b/chromium/third_party/ffmpeg/libavfilter/af_aiir.c
index 65c82011374..9a4769c25f8 100644
--- a/chromium/third_party/ffmpeg/libavfilter/af_aiir.c
+++ b/chromium/third_party/ffmpeg/libavfilter/af_aiir.c
@@ -686,7 +686,7 @@ static void drawtext(AVFrame *pic, int x, int y, const char *txt, uint32_t color
static void draw_line(AVFrame *out, int x0, int y0, int x1, int y1, uint32_t color)
{
- int dx = FFABS(x1-x0), sx = x0 < x1 ? 1 : -1;
+ int dx = FFABS(x1-x0);
int dy = FFABS(y1-y0), sy = y0 < y1 ? 1 : -1;
int err = (dx>dy ? dx : -dy) / 2, e2;
@@ -700,7 +700,7 @@ static void draw_line(AVFrame *out, int x0, int y0, int x1, int y1, uint32_t col
if (e2 >-dx) {
err -= dy;
- x0 += sx;
+ x0--;
}
if (e2 < dy) {
diff --git a/chromium/third_party/ffmpeg/libavfilter/af_amerge.c b/chromium/third_party/ffmpeg/libavfilter/af_amerge.c
index 9bed8e71279..3961c90701d 100644
--- a/chromium/third_party/ffmpeg/libavfilter/af_amerge.c
+++ b/chromium/third_party/ffmpeg/libavfilter/af_amerge.c
@@ -166,7 +166,7 @@ static int config_output(AVFilterLink *outlink)
outlink->sample_rate = ctx->inputs[0]->sample_rate;
outlink->time_base = ctx->inputs[0]->time_base;
- av_bprint_init(&bp, 0, 1);
+ av_bprint_init(&bp, 0, AV_BPRINT_SIZE_AUTOMATIC);
for (i = 0; i < s->nb_inputs; i++) {
av_bprintf(&bp, "%sin%d:", i ? " + " : "", i);
av_bprint_channel_layout(&bp, -1, ctx->inputs[i]->channel_layout);
diff --git a/chromium/third_party/ffmpeg/libavfilter/af_atempo.c b/chromium/third_party/ffmpeg/libavfilter/af_atempo.c
index 8b214bccd7b..52f15f2769b 100644
--- a/chromium/third_party/ffmpeg/libavfilter/af_atempo.c
+++ b/chromium/third_party/ffmpeg/libavfilter/af_atempo.c
@@ -153,7 +153,7 @@ typedef struct ATempoContext {
static const AVOption atempo_options[] = {
{ "tempo", "set tempo scale factor",
- OFFSET(tempo), AV_OPT_TYPE_DOUBLE, { .dbl = 1.0 }, 0.5, 2.0,
+ OFFSET(tempo), AV_OPT_TYPE_DOUBLE, { .dbl = 1.0 }, 0.5, 100.0,
AV_OPT_FLAG_AUDIO_PARAM | AV_OPT_FLAG_FILTERING_PARAM },
{ NULL }
};
@@ -439,8 +439,8 @@ static int yae_load_data(ATempoContext *atempo,
return 0;
}
- // samples are not expected to be skipped:
- av_assert0(read_size <= atempo->ring);
+ // samples are not expected to be skipped, unless tempo is greater than 2:
+ av_assert0(read_size <= atempo->ring || atempo->tempo > 2.0);
while (atempo->position[0] < stop_here && src < src_end) {
int src_samples = (src_end - src) / atempo->stride;
diff --git a/chromium/third_party/ffmpeg/libavfilter/allfilters.c b/chromium/third_party/ffmpeg/libavfilter/allfilters.c
index f2d27d24241..2d19929bdc8 100644
--- a/chromium/third_party/ffmpeg/libavfilter/allfilters.c
+++ b/chromium/third_party/ffmpeg/libavfilter/allfilters.c
@@ -148,6 +148,7 @@ extern AVFilter ff_vf_blackdetect;
extern AVFilter ff_vf_blackframe;
extern AVFilter ff_vf_blend;
extern AVFilter ff_vf_boxblur;
+extern AVFilter ff_vf_boxblur_opencl;
extern AVFilter ff_vf_bwdif;
extern AVFilter ff_vf_chromakey;
extern AVFilter ff_vf_ciescope;
@@ -216,6 +217,7 @@ extern AVFilter ff_vf_fspp;
extern AVFilter ff_vf_gblur;
extern AVFilter ff_vf_geq;
extern AVFilter ff_vf_gradfun;
+extern AVFilter ff_vf_greyedge;
extern AVFilter ff_vf_haldclut;
extern AVFilter ff_vf_hflip;
extern AVFilter ff_vf_histeq;
@@ -236,6 +238,7 @@ extern AVFilter ff_vf_interlace;
extern AVFilter ff_vf_interleave;
extern AVFilter ff_vf_kerndeint;
extern AVFilter ff_vf_lenscorrection;
+extern AVFilter ff_vf_lensfun;
extern AVFilter ff_vf_libvmaf;
extern AVFilter ff_vf_limiter;
extern AVFilter ff_vf_loop;
@@ -281,6 +284,7 @@ extern AVFilter ff_vf_pp;
extern AVFilter ff_vf_pp7;
extern AVFilter ff_vf_premultiply;
extern AVFilter ff_vf_prewitt;
+extern AVFilter ff_vf_prewitt_opencl;
extern AVFilter ff_vf_procamp_vaapi;
extern AVFilter ff_vf_program_opencl;
extern AVFilter ff_vf_pseudocolor;
@@ -297,6 +301,7 @@ extern AVFilter ff_vf_removelogo;
extern AVFilter ff_vf_repeatfields;
extern AVFilter ff_vf_reverse;
extern AVFilter ff_vf_roberts;
+extern AVFilter ff_vf_roberts_opencl;
extern AVFilter ff_vf_rotate;
extern AVFilter ff_vf_sab;
extern AVFilter ff_vf_scale;
@@ -325,9 +330,10 @@ extern AVFilter ff_vf_signalstats;
extern AVFilter ff_vf_signature;
extern AVFilter ff_vf_smartblur;
extern AVFilter ff_vf_sobel;
+extern AVFilter ff_vf_sobel_opencl;
extern AVFilter ff_vf_split;
extern AVFilter ff_vf_spp;
-extern AVFilter ff_vf_srcnn;
+extern AVFilter ff_vf_sr;
extern AVFilter ff_vf_ssim;
extern AVFilter ff_vf_stereo3d;
extern AVFilter ff_vf_streamselect;
@@ -345,6 +351,7 @@ extern AVFilter ff_vf_tinterlace;
extern AVFilter ff_vf_tlut2;
extern AVFilter ff_vf_tmix;
extern AVFilter ff_vf_tonemap;
+extern AVFilter ff_vf_tonemap_opencl;
extern AVFilter ff_vf_transpose;
extern AVFilter ff_vf_trim;
extern AVFilter ff_vf_unpremultiply;
diff --git a/chromium/third_party/ffmpeg/libavfilter/boxblur.c b/chromium/third_party/ffmpeg/libavfilter/boxblur.c
new file mode 100644
index 00000000000..4534b456d97
--- /dev/null
+++ b/chromium/third_party/ffmpeg/libavfilter/boxblur.c
@@ -0,0 +1,127 @@
+/*
+ * Copyright (c) 2002 Michael Niedermayer <michaelni@gmx.at>
+ * Copyright (c) 2011 Stefano Sabatini
+ * Copyright (c) 2018 Danil Iashchenko
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include "boxblur.h"
+
+static const char *const var_names[] = {
+ "w",
+ "h",
+ "cw",
+ "ch",
+ "hsub",
+ "vsub",
+ NULL
+};
+
+enum var_name {
+ VAR_W,
+ VAR_H,
+ VAR_CW,
+ VAR_CH,
+ VAR_HSUB,
+ VAR_VSUB,
+ VARS_NB
+};
+
+
+int ff_boxblur_eval_filter_params(AVFilterLink *inlink,
+ FilterParam *luma_param,
+ FilterParam *chroma_param,
+ FilterParam *alpha_param)
+{
+ const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(inlink->format);
+ AVFilterContext *ctx = inlink->dst;
+ int w = inlink->w, h = inlink->h;
+ int cw, ch;
+ double var_values[VARS_NB], res;
+ char *expr;
+ int ret;
+
+ if (!luma_param->radius_expr) {
+ av_log(ctx, AV_LOG_ERROR, "Luma radius expression is not set.\n");
+ return AVERROR(EINVAL);
+ }
+
+ /* fill missing params */
+ if (!chroma_param->radius_expr) {
+ chroma_param->radius_expr = av_strdup(luma_param->radius_expr);
+ if (!chroma_param->radius_expr)
+ return AVERROR(ENOMEM);
+ }
+ if (chroma_param->power < 0)
+ chroma_param->power = luma_param->power;
+
+ if (!alpha_param->radius_expr) {
+ alpha_param->radius_expr = av_strdup(luma_param->radius_expr);
+ if (!alpha_param->radius_expr)
+ return AVERROR(ENOMEM);
+ }
+ if (alpha_param->power < 0)
+ alpha_param->power = luma_param->power;
+
+ var_values[VAR_W] = inlink->w;
+ var_values[VAR_H] = inlink->h;
+ var_values[VAR_CW] = cw = w>>(desc->log2_chroma_w);
+ var_values[VAR_CH] = ch = h>>(desc->log2_chroma_h);
+ var_values[VAR_HSUB] = 1<<(desc->log2_chroma_w);
+ var_values[VAR_VSUB] = 1<<(desc->log2_chroma_h);
+
+#define EVAL_RADIUS_EXPR(comp) \
+ expr = comp->radius_expr; \
+ ret = av_expr_parse_and_eval(&res, expr, var_names, var_values, \
+ NULL, NULL, NULL, NULL, NULL, 0, ctx); \
+ comp->radius = res; \
+ if (ret < 0) { \
+ av_log(NULL, AV_LOG_ERROR, \
+ "Error when evaluating " #comp " radius expression '%s'\n", expr); \
+ return ret; \
+ }
+
+ EVAL_RADIUS_EXPR(luma_param);
+ EVAL_RADIUS_EXPR(chroma_param);
+ EVAL_RADIUS_EXPR(alpha_param);
+
+ av_log(ctx, AV_LOG_VERBOSE,
+ "luma_radius:%d luma_power:%d "
+ "chroma_radius:%d chroma_power:%d "
+ "alpha_radius:%d alpha_power:%d "
+ "w:%d chroma_w:%d h:%d chroma_h:%d\n",
+ luma_param ->radius, luma_param ->power,
+ chroma_param->radius, chroma_param->power,
+ alpha_param ->radius, alpha_param ->power,
+ w, cw, h, ch);
+
+
+#define CHECK_RADIUS_VAL(w_, h_, comp) \
+ if (comp->radius < 0 || \
+ 2*comp->radius > FFMIN(w_, h_)) { \
+ av_log(ctx, AV_LOG_ERROR, \
+ "Invalid " #comp " radius value %d, must be >= 0 and <= %d\n", \
+ comp->radius, FFMIN(w_, h_)/2); \
+ return AVERROR(EINVAL); \
+ }
+ CHECK_RADIUS_VAL(w, h, luma_param);
+ CHECK_RADIUS_VAL(cw, ch, chroma_param);
+ CHECK_RADIUS_VAL(w, h, alpha_param);
+
+ return 0;
+}
diff --git a/chromium/third_party/ffmpeg/libavfilter/boxblur.h b/chromium/third_party/ffmpeg/libavfilter/boxblur.h
new file mode 100644
index 00000000000..5694722a9d9
--- /dev/null
+++ b/chromium/third_party/ffmpeg/libavfilter/boxblur.h
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2002 Michael Niedermayer <michaelni@gmx.at>
+ * Copyright (c) 2011 Stefano Sabatini
+ * Copyright (c) 2018 Danil Iashchenko
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef AVFILTER_BOXBLUR_H
+#define AVFILTER_BOXBLUR_H
+
+#include "libavutil/eval.h"
+#include "libavutil/pixdesc.h"
+#include "libavutil/mem.h"
+
+#include "avfilter.h"
+
+typedef struct FilterParam {
+ int radius;
+ int power;
+ char *radius_expr;
+} FilterParam;
+
+#define Y 0
+#define U 1
+#define V 2
+#define A 3
+
+int ff_boxblur_eval_filter_params(AVFilterLink *inlink,
+ FilterParam *luma_param,
+ FilterParam *chroma_param,
+ FilterParam *alpha_param);
+
+#endif // AVFILTER_BOXBLUR_H
diff --git a/chromium/third_party/ffmpeg/libavfilter/colorspace.c b/chromium/third_party/ffmpeg/libavfilter/colorspace.c
new file mode 100644
index 00000000000..45da1dd1244
--- /dev/null
+++ b/chromium/third_party/ffmpeg/libavfilter/colorspace.c
@@ -0,0 +1,91 @@
+/*
+ * Copyright (c) 2016 Ronald S. Bultje <rsbultje@gmail.com>
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include "colorspace.h"
+
+
+void ff_matrix_invert_3x3(const double in[3][3], double out[3][3])
+{
+ double m00 = in[0][0], m01 = in[0][1], m02 = in[0][2],
+ m10 = in[1][0], m11 = in[1][1], m12 = in[1][2],
+ m20 = in[2][0], m21 = in[2][1], m22 = in[2][2];
+ int i, j;
+ double det;
+
+ out[0][0] = (m11 * m22 - m21 * m12);
+ out[0][1] = -(m01 * m22 - m21 * m02);
+ out[0][2] = (m01 * m12 - m11 * m02);
+ out[1][0] = -(m10 * m22 - m20 * m12);
+ out[1][1] = (m00 * m22 - m20 * m02);
+ out[1][2] = -(m00 * m12 - m10 * m02);
+ out[2][0] = (m10 * m21 - m20 * m11);
+ out[2][1] = -(m00 * m21 - m20 * m01);
+ out[2][2] = (m00 * m11 - m10 * m01);
+
+ det = m00 * out[0][0] + m10 * out[0][1] + m20 * out[0][2];
+ det = 1.0 / det;
+
+ for (i = 0; i < 3; i++) {
+ for (j = 0; j < 3; j++)
+ out[i][j] *= det;
+ }
+}
+
+void ff_matrix_mul_3x3(double dst[3][3],
+ const double src1[3][3], const double src2[3][3])
+{
+ int m, n;
+
+ for (m = 0; m < 3; m++)
+ for (n = 0; n < 3; n++)
+ dst[m][n] = src2[m][0] * src1[0][n] +
+ src2[m][1] * src1[1][n] +
+ src2[m][2] * src1[2][n];
+}
+/*
+ * see e.g. http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html
+ */
+void ff_fill_rgb2xyz_table(const struct PrimaryCoefficients *coeffs,
+ const struct WhitepointCoefficients *wp,
+ double rgb2xyz[3][3])
+{
+ double i[3][3], sr, sg, sb, zw;
+
+ rgb2xyz[0][0] = coeffs->xr / coeffs->yr;
+ rgb2xyz[0][1] = coeffs->xg / coeffs->yg;
+ rgb2xyz[0][2] = coeffs->xb / coeffs->yb;
+ rgb2xyz[1][0] = rgb2xyz[1][1] = rgb2xyz[1][2] = 1.0;
+ rgb2xyz[2][0] = (1.0 - coeffs->xr - coeffs->yr) / coeffs->yr;
+ rgb2xyz[2][1] = (1.0 - coeffs->xg - coeffs->yg) / coeffs->yg;
+ rgb2xyz[2][2] = (1.0 - coeffs->xb - coeffs->yb) / coeffs->yb;
+ ff_matrix_invert_3x3(rgb2xyz, i);
+ zw = 1.0 - wp->xw - wp->yw;
+ sr = i[0][0] * wp->xw + i[0][1] * wp->yw + i[0][2] * zw;
+ sg = i[1][0] * wp->xw + i[1][1] * wp->yw + i[1][2] * zw;
+ sb = i[2][0] * wp->xw + i[2][1] * wp->yw + i[2][2] * zw;
+ rgb2xyz[0][0] *= sr;
+ rgb2xyz[0][1] *= sg;
+ rgb2xyz[0][2] *= sb;
+ rgb2xyz[1][0] *= sr;
+ rgb2xyz[1][1] *= sg;
+ rgb2xyz[1][2] *= sb;
+ rgb2xyz[2][0] *= sr;
+ rgb2xyz[2][1] *= sg;
+ rgb2xyz[2][2] *= sb;
+}
diff --git a/chromium/third_party/ffmpeg/libavfilter/colorspace.h b/chromium/third_party/ffmpeg/libavfilter/colorspace.h
new file mode 100644
index 00000000000..9d45ee23660
--- /dev/null
+++ b/chromium/third_party/ffmpeg/libavfilter/colorspace.h
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2016 Ronald S. Bultje <rsbultje@gmail.com>
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef AVFILTER_COLORSPACE_H
+#define AVFILTER_COLORSPACE_H
+
+#include "libavutil/common.h"
+
+struct LumaCoefficients {
+ double cr, cg, cb;
+};
+
+struct PrimaryCoefficients {
+ double xr, yr, xg, yg, xb, yb;
+};
+
+struct WhitepointCoefficients {
+ double xw, yw;
+};
+
+void ff_matrix_invert_3x3(const double in[3][3], double out[3][3]);
+void ff_matrix_mul_3x3(double dst[3][3],
+ const double src1[3][3], const double src2[3][3]);
+void ff_fill_rgb2xyz_table(const struct PrimaryCoefficients *coeffs,
+ const struct WhitepointCoefficients *wp,
+ double rgb2xyz[3][3]);
+#endif
diff --git a/chromium/third_party/ffmpeg/libavfilter/dnn_backend_native.c b/chromium/third_party/ffmpeg/libavfilter/dnn_backend_native.c
index 6e80dd36637..02b174a0548 100644
--- a/chromium/third_party/ffmpeg/libavfilter/dnn_backend_native.c
+++ b/chromium/third_party/ffmpeg/libavfilter/dnn_backend_native.c
@@ -25,9 +25,12 @@
#include "dnn_backend_native.h"
#include "dnn_srcnn.h"
+#include "dnn_espcn.h"
#include "libavformat/avio.h"
-typedef enum {INPUT, CONV} LayerType;
+typedef enum {INPUT, CONV, DEPTH_TO_SPACE} LayerType;
+
+typedef enum {RELU, TANH, SIGMOID} ActivationFunc;
typedef struct Layer{
LayerType type;
@@ -37,6 +40,7 @@ typedef struct Layer{
typedef struct ConvolutionalParams{
int32_t input_num, output_num, kernel_size;
+ ActivationFunc activation;
float* kernel;
float* biases;
} ConvolutionalParams;
@@ -45,17 +49,22 @@ typedef struct InputParams{
int height, width, channels;
} InputParams;
+typedef struct DepthToSpaceParams{
+ int block_size;
+} DepthToSpaceParams;
+
// Represents simple feed-forward convolutional network.
typedef struct ConvolutionalNetwork{
Layer* layers;
int32_t layers_num;
} ConvolutionalNetwork;
-static DNNReturnType set_input_output_native(void* model, const DNNData* input, const DNNData* output)
+static DNNReturnType set_input_output_native(void* model, DNNData* input, DNNData* output)
{
ConvolutionalNetwork* network = (ConvolutionalNetwork*)model;
InputParams* input_params;
ConvolutionalParams* conv_params;
+ DepthToSpaceParams* depth_to_space_params;
int cur_width, cur_height, cur_channels;
int32_t layer;
@@ -63,11 +72,17 @@ static DNNReturnType set_input_output_native(void* model, const DNNData* input,
return DNN_ERROR;
}
else{
- network->layers[0].output = input->data;
input_params = (InputParams*)network->layers[0].params;
input_params->width = cur_width = input->width;
input_params->height = cur_height = input->height;
input_params->channels = cur_channels = input->channels;
+ if (input->data){
+ av_freep(&input->data);
+ }
+ network->layers[0].output = input->data = av_malloc(cur_height * cur_width * cur_channels * sizeof(float));
+ if (!network->layers[0].output){
+ return DNN_ERROR;
+ }
}
for (layer = 1; layer < network->layers_num; ++layer){
@@ -78,32 +93,40 @@ static DNNReturnType set_input_output_native(void* model, const DNNData* input,
return DNN_ERROR;
}
cur_channels = conv_params->output_num;
- if (layer < network->layers_num - 1){
- if (!network->layers[layer].output){
- av_freep(&network->layers[layer].output);
- }
- network->layers[layer].output = av_malloc(cur_height * cur_width * cur_channels * sizeof(float));
- if (!network->layers[layer].output){
- return DNN_ERROR;
- }
- }
- else{
- network->layers[layer].output = output->data;
- if (output->width != cur_width || output->height != cur_height || output->channels != cur_channels){
- return DNN_ERROR;
- }
+ break;
+ case DEPTH_TO_SPACE:
+ depth_to_space_params = (DepthToSpaceParams*)network->layers[layer].params;
+ if (cur_channels % (depth_to_space_params->block_size * depth_to_space_params->block_size) != 0){
+ return DNN_ERROR;
}
+ cur_channels = cur_channels / (depth_to_space_params->block_size * depth_to_space_params->block_size);
+ cur_height *= depth_to_space_params->block_size;
+ cur_width *= depth_to_space_params->block_size;
break;
default:
return DNN_ERROR;
}
+ if (network->layers[layer].output){
+ av_freep(&network->layers[layer].output);
+ }
+ network->layers[layer].output = av_malloc(cur_height * cur_width * cur_channels * sizeof(float));
+ if (!network->layers[layer].output){
+ return DNN_ERROR;
+ }
}
+ output->data = network->layers[network->layers_num - 1].output;
+ output->height = cur_height;
+ output->width = cur_width;
+ output->channels = cur_channels;
+
return DNN_SUCCESS;
}
// Loads model and its parameters that are stored in a binary file with following structure:
-// layers_num,conv_input_num,conv_output_num,conv_kernel_size,conv_kernel,conv_biases,conv_input_num...
+// layers_num,layer_type,layer_parameterss,layer_type,layer_parameters...
+// For CONV layer: activation_function, input_num, output_num, kernel_size, kernel, biases
+// For DEPTH_TO_SPACE layer: block_size
DNNModel* ff_dnn_load_model_native(const char* model_filename)
{
DNNModel* model = NULL;
@@ -111,7 +134,9 @@ DNNModel* ff_dnn_load_model_native(const char* model_filename)
AVIOContext* model_file_context;
int file_size, dnn_size, kernel_size, i;
int32_t layer;
+ LayerType layer_type;
ConvolutionalParams* conv_params;
+ DepthToSpaceParams* depth_to_space_params;
model = av_malloc(sizeof(DNNModel));
if (!model){
@@ -156,39 +181,62 @@ DNNModel* ff_dnn_load_model_native(const char* model_filename)
}
for (layer = 1; layer < network->layers_num; ++layer){
- conv_params = av_malloc(sizeof(ConvolutionalParams));
- if (!conv_params){
- avio_closep(&model_file_context);
- ff_dnn_free_model_native(&model);
- return NULL;
- }
- conv_params->input_num = (int32_t)avio_rl32(model_file_context);
- conv_params->output_num = (int32_t)avio_rl32(model_file_context);
- conv_params->kernel_size = (int32_t)avio_rl32(model_file_context);
- kernel_size = conv_params->input_num * conv_params->output_num *
- conv_params->kernel_size * conv_params->kernel_size;
- dnn_size += 12 + (kernel_size + conv_params->output_num << 2);
- if (dnn_size > file_size || conv_params->input_num <= 0 ||
- conv_params->output_num <= 0 || conv_params->kernel_size <= 0){
- avio_closep(&model_file_context);
- ff_dnn_free_model_native(&model);
- return NULL;
- }
- conv_params->kernel = av_malloc(kernel_size * sizeof(float));
- conv_params->biases = av_malloc(conv_params->output_num * sizeof(float));
- if (!conv_params->kernel || !conv_params->biases){
+ layer_type = (int32_t)avio_rl32(model_file_context);
+ dnn_size += 4;
+ switch (layer_type){
+ case CONV:
+ conv_params = av_malloc(sizeof(ConvolutionalParams));
+ if (!conv_params){
+ avio_closep(&model_file_context);
+ ff_dnn_free_model_native(&model);
+ return NULL;
+ }
+ conv_params->activation = (int32_t)avio_rl32(model_file_context);
+ conv_params->input_num = (int32_t)avio_rl32(model_file_context);
+ conv_params->output_num = (int32_t)avio_rl32(model_file_context);
+ conv_params->kernel_size = (int32_t)avio_rl32(model_file_context);
+ kernel_size = conv_params->input_num * conv_params->output_num *
+ conv_params->kernel_size * conv_params->kernel_size;
+ dnn_size += 16 + (kernel_size + conv_params->output_num << 2);
+ if (dnn_size > file_size || conv_params->input_num <= 0 ||
+ conv_params->output_num <= 0 || conv_params->kernel_size <= 0){
+ avio_closep(&model_file_context);
+ ff_dnn_free_model_native(&model);
+ return NULL;
+ }
+ conv_params->kernel = av_malloc(kernel_size * sizeof(float));
+ conv_params->biases = av_malloc(conv_params->output_num * sizeof(float));
+ if (!conv_params->kernel || !conv_params->biases){
+ avio_closep(&model_file_context);
+ ff_dnn_free_model_native(&model);
+ return NULL;
+ }
+ for (i = 0; i < kernel_size; ++i){
+ conv_params->kernel[i] = av_int2float(avio_rl32(model_file_context));
+ }
+ for (i = 0; i < conv_params->output_num; ++i){
+ conv_params->biases[i] = av_int2float(avio_rl32(model_file_context));
+ }
+ network->layers[layer].type = CONV;
+ network->layers[layer].params = conv_params;
+ break;
+ case DEPTH_TO_SPACE:
+ depth_to_space_params = av_malloc(sizeof(DepthToSpaceParams));
+ if (!depth_to_space_params){
+ avio_closep(&model_file_context);
+ ff_dnn_free_model_native(&model);
+ return NULL;
+ }
+ depth_to_space_params->block_size = (int32_t)avio_rl32(model_file_context);
+ dnn_size += 4;
+ network->layers[layer].type = DEPTH_TO_SPACE;
+ network->layers[layer].params = depth_to_space_params;
+ break;
+ default:
avio_closep(&model_file_context);
ff_dnn_free_model_native(&model);
return NULL;
}
- for (i = 0; i < kernel_size; ++i){
- conv_params->kernel[i] = av_int2float(avio_rl32(model_file_context));
- }
- for (i = 0; i < conv_params->output_num; ++i){
- conv_params->biases[i] = av_int2float(avio_rl32(model_file_context));
- }
- network->layers[layer].type = CONV;
- network->layers[layer].params = conv_params;
}
avio_closep(&model_file_context);
@@ -203,7 +251,8 @@ DNNModel* ff_dnn_load_model_native(const char* model_filename)
return model;
}
-static int set_up_conv_layer(Layer* layer, const float* kernel, const float* biases, int32_t input_num, int32_t output_num, int32_t size)
+static int set_up_conv_layer(Layer* layer, const float* kernel, const float* biases, ActivationFunc activation,
+ int32_t input_num, int32_t output_num, int32_t size)
{
ConvolutionalParams* conv_params;
int kernel_size;
@@ -212,6 +261,7 @@ static int set_up_conv_layer(Layer* layer, const float* kernel, const float* bia
if (!conv_params){
return DNN_ERROR;
}
+ conv_params->activation = activation;
conv_params->input_num = input_num;
conv_params->output_num = output_num;
conv_params->kernel_size = size;
@@ -236,6 +286,7 @@ DNNModel* ff_dnn_load_default_model_native(DNNDefaultModel model_type)
{
DNNModel* model = NULL;
ConvolutionalNetwork* network = NULL;
+ DepthToSpaceParams* depth_to_space_params;
int32_t layer;
model = av_malloc(sizeof(DNNModel));
@@ -253,45 +304,68 @@ DNNModel* ff_dnn_load_default_model_native(DNNDefaultModel model_type)
switch (model_type){
case DNN_SRCNN:
network->layers_num = 4;
+ break;
+ case DNN_ESPCN:
+ network->layers_num = 5;
+ break;
+ default:
+ av_freep(&network);
+ av_freep(&model);
+ return NULL;
+ }
- network->layers = av_malloc(network->layers_num * sizeof(Layer));
- if (!network->layers){
- av_freep(&network);
- av_freep(&model);
- return NULL;
- }
+ network->layers = av_malloc(network->layers_num * sizeof(Layer));
+ if (!network->layers){
+ av_freep(&network);
+ av_freep(&model);
+ return NULL;
+ }
- for (layer = 0; layer < network->layers_num; ++layer){
- network->layers[layer].output = NULL;
- network->layers[layer].params = NULL;
+ for (layer = 0; layer < network->layers_num; ++layer){
+ network->layers[layer].output = NULL;
+ network->layers[layer].params = NULL;
+ }
+ network->layers[0].type = INPUT;
+ network->layers[0].params = av_malloc(sizeof(InputParams));
+ if (!network->layers[0].params){
+ ff_dnn_free_model_native(&model);
+ return NULL;
+ }
+
+ switch (model_type){
+ case DNN_SRCNN:
+ if (set_up_conv_layer(network->layers + 1, srcnn_conv1_kernel, srcnn_conv1_biases, RELU, 1, 64, 9) != DNN_SUCCESS ||
+ set_up_conv_layer(network->layers + 2, srcnn_conv2_kernel, srcnn_conv2_biases, RELU, 64, 32, 1) != DNN_SUCCESS ||
+ set_up_conv_layer(network->layers + 3, srcnn_conv3_kernel, srcnn_conv3_biases, RELU, 32, 1, 5) != DNN_SUCCESS){
+ ff_dnn_free_model_native(&model);
+ return NULL;
}
- network->layers[0].type = INPUT;
- network->layers[0].params = av_malloc(sizeof(InputParams));
- if (!network->layers[0].params){
+ break;
+ case DNN_ESPCN:
+ if (set_up_conv_layer(network->layers + 1, espcn_conv1_kernel, espcn_conv1_biases, TANH, 1, 64, 5) != DNN_SUCCESS ||
+ set_up_conv_layer(network->layers + 2, espcn_conv2_kernel, espcn_conv2_biases, TANH, 64, 32, 3) != DNN_SUCCESS ||
+ set_up_conv_layer(network->layers + 3, espcn_conv3_kernel, espcn_conv3_biases, SIGMOID, 32, 4, 3) != DNN_SUCCESS){
ff_dnn_free_model_native(&model);
return NULL;
}
-
- if (set_up_conv_layer(network->layers + 1, conv1_kernel, conv1_biases, 1, 64, 9) != DNN_SUCCESS ||
- set_up_conv_layer(network->layers + 2, conv2_kernel, conv2_biases, 64, 32, 1) != DNN_SUCCESS ||
- set_up_conv_layer(network->layers + 3, conv3_kernel, conv3_biases, 32, 1, 5) != DNN_SUCCESS){
+ network->layers[4].type = DEPTH_TO_SPACE;
+ depth_to_space_params = av_malloc(sizeof(DepthToSpaceParams));
+ if (!depth_to_space_params){
ff_dnn_free_model_native(&model);
return NULL;
}
+ depth_to_space_params->block_size = 2;
+ network->layers[4].params = depth_to_space_params;
+ }
- model->set_input_output = &set_input_output_native;
+ model->set_input_output = &set_input_output_native;
- return model;
- default:
- av_freep(&network);
- av_freep(&model);
- return NULL;
- }
+ return model;
}
#define CLAMP_TO_EDGE(x, w) ((x) < 0 ? 0 : ((x) >= (w) ? (w - 1) : (x)))
-static void convolve(const float* input, float* output, const ConvolutionalParams* conv_params, int32_t width, int32_t height)
+static void convolve(const float* input, float* output, const ConvolutionalParams* conv_params, int width, int height)
{
int y, x, n_filter, ch, kernel_y, kernel_x;
int radius = conv_params->kernel_size >> 1;
@@ -313,19 +387,53 @@ static void convolve(const float* input, float* output, const ConvolutionalParam
}
}
}
- output[n_filter] = FFMAX(output[n_filter], 0.0);
+ switch (conv_params->activation){
+ case RELU:
+ output[n_filter] = FFMAX(output[n_filter], 0.0);
+ break;
+ case TANH:
+ output[n_filter] = 2.0f / (1.0f + exp(-2.0f * output[n_filter])) - 1.0f;
+ break;
+ case SIGMOID:
+ output[n_filter] = 1.0f / (1.0f + exp(-output[n_filter]));
+ }
}
output += conv_params->output_num;
}
}
}
+static void depth_to_space(const float* input, float* output, int block_size, int width, int height, int channels)
+{
+ int y, x, by, bx, ch;
+ int new_channels = channels / (block_size * block_size);
+ int output_linesize = width * channels;
+ int by_linesize = output_linesize / block_size;
+ int x_linesize = new_channels * block_size;
+
+ for (y = 0; y < height; ++y){
+ for (x = 0; x < width; ++x){
+ for (by = 0; by < block_size; ++by){
+ for (bx = 0; bx < block_size; ++bx){
+ for (ch = 0; ch < new_channels; ++ch){
+ output[by * by_linesize + x * x_linesize + bx * new_channels + ch] = input[ch];
+ }
+ input += new_channels;
+ }
+ }
+ }
+ output += output_linesize;
+ }
+}
+
DNNReturnType ff_dnn_execute_model_native(const DNNModel* model)
{
ConvolutionalNetwork* network = (ConvolutionalNetwork*)model->model;
- InputParams* input_params;
- int cur_width, cur_height;
+ int cur_width, cur_height, cur_channels;
int32_t layer;
+ InputParams* input_params;
+ ConvolutionalParams* conv_params;
+ DepthToSpaceParams* depth_to_space_params;
if (network->layers_num <= 0 || network->layers[0].type != INPUT || !network->layers[0].output){
return DNN_ERROR;
@@ -334,6 +442,7 @@ DNNReturnType ff_dnn_execute_model_native(const DNNModel* model)
input_params = (InputParams*)network->layers[0].params;
cur_width = input_params->width;
cur_height = input_params->height;
+ cur_channels = input_params->channels;
}
for (layer = 1; layer < network->layers_num; ++layer){
@@ -342,7 +451,17 @@ DNNReturnType ff_dnn_execute_model_native(const DNNModel* model)
}
switch (network->layers[layer].type){
case CONV:
- convolve(network->layers[layer - 1].output, network->layers[layer].output, (ConvolutionalParams*)network->layers[layer].params, cur_width, cur_height);
+ conv_params = (ConvolutionalParams*)network->layers[layer].params;
+ convolve(network->layers[layer - 1].output, network->layers[layer].output, conv_params, cur_width, cur_height);
+ cur_channels = conv_params->output_num;
+ break;
+ case DEPTH_TO_SPACE:
+ depth_to_space_params = (DepthToSpaceParams*)network->layers[layer].params;
+ depth_to_space(network->layers[layer - 1].output, network->layers[layer].output,
+ depth_to_space_params->block_size, cur_width, cur_height, cur_channels);
+ cur_height *= depth_to_space_params->block_size;
+ cur_width *= depth_to_space_params->block_size;
+ cur_channels /= depth_to_space_params->block_size * depth_to_space_params->block_size;
break;
case INPUT:
return DNN_ERROR;
@@ -362,19 +481,13 @@ void ff_dnn_free_model_native(DNNModel** model)
{
network = (ConvolutionalNetwork*)(*model)->model;
for (layer = 0; layer < network->layers_num; ++layer){
- switch (network->layers[layer].type){
- case CONV:
- if (layer < network->layers_num - 1){
- av_freep(&network->layers[layer].output);
- }
+ av_freep(&network->layers[layer].output);
+ if (network->layers[layer].type == CONV){
conv_params = (ConvolutionalParams*)network->layers[layer].params;
av_freep(&conv_params->kernel);
av_freep(&conv_params->biases);
- av_freep(&conv_params);
- break;
- case INPUT:
- av_freep(&network->layers[layer].params);
}
+ av_freep(&network->layers[layer].params);
}
av_freep(network);
av_freep(model);
diff --git a/chromium/third_party/ffmpeg/libavfilter/dnn_backend_tf.c b/chromium/third_party/ffmpeg/libavfilter/dnn_backend_tf.c
index e46b1ad1402..302ff9e4e11 100644
--- a/chromium/third_party/ffmpeg/libavfilter/dnn_backend_tf.c
+++ b/chromium/third_party/ffmpeg/libavfilter/dnn_backend_tf.c
@@ -25,6 +25,7 @@
#include "dnn_backend_tf.h"
#include "dnn_srcnn.h"
+#include "dnn_espcn.h"
#include "libavformat/avio.h"
#include <tensorflow/c/c_api.h>
@@ -35,9 +36,7 @@ typedef struct TFModel{
TF_Status* status;
TF_Output input, output;
TF_Tensor* input_tensor;
- TF_Tensor* output_tensor;
- const DNNData* input_data;
- const DNNData* output_data;
+ DNNData* output_data;
} TFModel;
static void free_buffer(void* data, size_t length)
@@ -78,13 +77,13 @@ static TF_Buffer* read_graph(const char* model_filename)
return graph_buf;
}
-static DNNReturnType set_input_output_tf(void* model, const DNNData* input, const DNNData* output)
+static DNNReturnType set_input_output_tf(void* model, DNNData* input, DNNData* output)
{
TFModel* tf_model = (TFModel*)model;
int64_t input_dims[] = {1, input->height, input->width, input->channels};
- int64_t output_dims[] = {1, output->height, output->width, output->channels};
TF_SessionOptions* sess_opts;
const TF_Operation* init_op = TF_GraphOperationByName(tf_model->graph, "init");
+ TF_Tensor* output_tensor;
// Input operation should be named 'x'
tf_model->input.oper = TF_GraphOperationByName(tf_model->graph, "x");
@@ -100,6 +99,7 @@ static DNNReturnType set_input_output_tf(void* model, const DNNData* input, cons
if (!tf_model->input_tensor){
return DNN_ERROR;
}
+ input->data = (float*)TF_TensorData(tf_model->input_tensor);
// Output operation should be named 'y'
tf_model->output.oper = TF_GraphOperationByName(tf_model->graph, "y");
@@ -107,17 +107,6 @@ static DNNReturnType set_input_output_tf(void* model, const DNNData* input, cons
return DNN_ERROR;
}
tf_model->output.index = 0;
- if (tf_model->output_tensor){
- TF_DeleteTensor(tf_model->output_tensor);
- }
- tf_model->output_tensor = TF_AllocateTensor(TF_FLOAT, output_dims, 4,
- output_dims[1] * output_dims[2] * output_dims[3] * sizeof(float));
- if (!tf_model->output_tensor){
- return DNN_ERROR;
- }
-
- tf_model->input_data = input;
- tf_model->output_data = output;
if (tf_model->session){
TF_CloseSession(tf_model->session, tf_model->status);
@@ -144,6 +133,26 @@ static DNNReturnType set_input_output_tf(void* model, const DNNData* input, cons
}
}
+ // Execute network to get output height, width and number of channels
+ TF_SessionRun(tf_model->session, NULL,
+ &tf_model->input, &tf_model->input_tensor, 1,
+ &tf_model->output, &output_tensor, 1,
+ NULL, 0, NULL, tf_model->status);
+ if (TF_GetCode(tf_model->status) != TF_OK){
+ return DNN_ERROR;
+ }
+ else{
+ output->height = TF_Dim(output_tensor, 1);
+ output->width = TF_Dim(output_tensor, 2);
+ output->channels = TF_Dim(output_tensor, 3);
+ output->data = av_malloc(output->height * output->width * output->channels * sizeof(float));
+ if (!output->data){
+ return DNN_ERROR;
+ }
+ tf_model->output_data = output;
+ TF_DeleteTensor(output_tensor);
+ }
+
return DNN_SUCCESS;
}
@@ -166,7 +175,7 @@ DNNModel* ff_dnn_load_model_tf(const char* model_filename)
}
tf_model->session = NULL;
tf_model->input_tensor = NULL;
- tf_model->output_tensor = NULL;
+ tf_model->output_data = NULL;
graph_def = read_graph(model_filename);
if (!graph_def){
@@ -215,6 +224,17 @@ DNNModel* ff_dnn_load_default_model_tf(DNNDefaultModel model_type)
graph_def->length = srcnn_tf_size;
graph_def->data_deallocator = free_buffer;
break;
+ case DNN_ESPCN:
+ graph_data = av_malloc(espcn_tf_size);
+ if (!graph_data){
+ TF_DeleteBuffer(graph_def);
+ return NULL;
+ }
+ memcpy(graph_data, espcn_tf_model, espcn_tf_size);
+ graph_def->data = (void*)graph_data;
+ graph_def->length = espcn_tf_size;
+ graph_def->data_deallocator = free_buffer;
+ break;
default:
TF_DeleteBuffer(graph_def);
return NULL;
@@ -234,7 +254,7 @@ DNNModel* ff_dnn_load_default_model_tf(DNNDefaultModel model_type)
}
tf_model->session = NULL;
tf_model->input_tensor = NULL;
- tf_model->output_tensor = NULL;
+ tf_model->output_data = NULL;
tf_model->graph = TF_NewGraph();
tf_model->status = TF_NewStatus();
@@ -259,23 +279,21 @@ DNNModel* ff_dnn_load_default_model_tf(DNNDefaultModel model_type)
DNNReturnType ff_dnn_execute_model_tf(const DNNModel* model)
{
TFModel* tf_model = (TFModel*)model->model;
-
- memcpy(TF_TensorData(tf_model->input_tensor), tf_model->input_data->data,
- tf_model->input_data->height * tf_model->input_data->width *
- tf_model->input_data->channels * sizeof(float));
+ TF_Tensor* output_tensor;
TF_SessionRun(tf_model->session, NULL,
&tf_model->input, &tf_model->input_tensor, 1,
- &tf_model->output, &tf_model->output_tensor, 1,
+ &tf_model->output, &output_tensor, 1,
NULL, 0, NULL, tf_model->status);
if (TF_GetCode(tf_model->status) != TF_OK){
return DNN_ERROR;
}
else{
- memcpy(tf_model->output_data->data, TF_TensorData(tf_model->output_tensor),
- tf_model->output_data->height * tf_model->output_data->width *
- tf_model->output_data->channels * sizeof(float));
+ memcpy(tf_model->output_data->data, TF_TensorData(output_tensor),
+ tf_model->output_data->height * tf_model->output_data->width *
+ tf_model->output_data->channels * sizeof(float));
+ TF_DeleteTensor(output_tensor);
return DNN_SUCCESS;
}
@@ -300,9 +318,7 @@ void ff_dnn_free_model_tf(DNNModel** model)
if (tf_model->input_tensor){
TF_DeleteTensor(tf_model->input_tensor);
}
- if (tf_model->output_tensor){
- TF_DeleteTensor(tf_model->output_tensor);
- }
+ av_freep(&tf_model->output_data->data);
av_freep(&tf_model);
av_freep(model);
}
diff --git a/chromium/third_party/ffmpeg/libavfilter/dnn_espcn.h b/chromium/third_party/ffmpeg/libavfilter/dnn_espcn.h
new file mode 100644
index 00000000000..0bd3132ba65
--- /dev/null
+++ b/chromium/third_party/ffmpeg/libavfilter/dnn_espcn.h
@@ -0,0 +1,12637 @@
+/*
+ * Copyright (c) 2018 Sergey Lavrushkin
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/**
+ * @file
+ * Default cnn weights for x2 upsampling with espcn model.
+ */
+
+#ifndef AVFILTER_DNN_ESPCN_H
+#define AVFILTER_DNN_ESPCN_H
+
+
+static const float espcn_conv1_kernel[] = {
+ -0.033651225f, 0.08141546f, -0.028117338f, 0.1370229f,
+ 0.21719787f, 0.0018106321f, -0.21415733f, 0.08370989f,
+ 0.04526427f, 0.13084698f, -0.016193666f, 0.048420854f,
+ -0.043297544f, -0.010689146f, -0.15213025f, 0.12779328f,
+ -0.12508103f, -0.03025096f, 0.050621416f, 0.06129373f,
+ -0.31008086f, 0.090241484f, 0.11289834f, 0.024204707f,
+ -0.15997766f, -0.4491874f, 1.7992994f, -2.2776546f,
+ 0.92356527f, -0.22333145f, -0.3484276f, -0.30224112f,
+ 2.6481814f, -3.5702555f, 1.6448367f, 0.821054f,
+ -2.194776f, 2.9794505f, -0.74629736f, -0.71420956f,
+ -0.19285335f, 0.45863184f, -1.3390704f, 1.9217515f,
+ -0.9752292f, 0.17233354f, -0.42186308f, 0.0067120134f,
+ 0.15278922f, 0.25349525f, 0.04239441f, 0.32368666f,
+ -0.32882598f, -0.09148329f, 0.13972661f, -0.33373186f,
+ 1.3149962f, -1.3097465f, -1.0351702f, 0.5667829f,
+ 0.28915232f, -0.12594104f, 0.19577143f, -0.010226973f,
+ 0.27975535f, 0.08592676f, -0.3827023f, 0.28327408f,
+ 0.2345602f, -0.28909206f, -0.01707916f, 0.02990479f,
+ 0.029567802f, 0.16850159f, 0.03417645f, -0.089996934f,
+ 0.059985105f, -0.15995955f, -0.17444675f, -0.059467997f,
+ 0.08160676f, 0.26426318f, 1.01275f, 0.8737046f,
+ 0.10697361f, 0.37341496f, 0.34371883f, 2.3972206f,
+ 0.3797688f, 0.32201457f, -0.15579607f, 0.004243462f,
+ -0.9925481f, -0.08061044f, -0.06980977f, 0.004541201f,
+ 0.04380443f, 0.35560706f, -0.00929085f, 0.09188179f,
+ 0.0667816f, -0.13034518f, 0.14290251f, -0.104175836f,
+ 0.0013874007f, -0.21087192f, 0.33723673f, -0.81895316f,
+ 0.2068736f, -0.024198757f, 0.20320402f, -0.9201378f,
+ -22.43354f, -0.55837536f, -0.18251857f, -0.06481952f,
+ 0.13386513f, -0.92357135f, 0.12469517f, 0.07433132f,
+ -0.019609528f, 0.020879095f, -0.037496805f, -0.020767067f,
+ -0.023763046f, 0.014306224f, -0.21043892f, 0.16374084f,
+ 0.060567956f, -0.13136876f, -0.24900316f, 0.35642996f,
+ -0.39053982f, 0.006153686f, 0.10833906f, -0.109700225f,
+ 0.16616625f, 0.0967383f, 0.26237366f, -0.18988574f,
+ 0.23701477f, -0.4337045f, 0.1442159f, -0.3304001f,
+ 0.12143453f, 0.069193594f, 0.1799313f, -0.05647911f,
+ -0.017935714f, 0.043117225f, 0.06470898f, -0.004627622f,
+ -0.019676162f, 0.012499647f, 0.016022062f, 0.042290222f,
+ -0.02982633f, -0.037106734f, 0.039087374f, 0.00029811377f,
+ -0.15740614f, 0.13884911f, -0.06417996f, -0.102875255f,
+ 0.17561884f, -0.046311516f, -0.10099872f, 0.17903659f,
+ -0.055862334f, 0.059019238f, 0.11083021f, -0.015236638f,
+ -0.06907288f, 0.09691499f, -0.22299959f, 0.010823794f,
+ 0.010635834f, -0.0023554056f, -0.012515517f, 0.029083649f,
+ -0.0041044154f, 0.039968647f, -0.036370832f, -0.056957614f,
+ 0.06255996f, 0.035850722f, -0.055701878f, 0.06230328f,
+ -0.080863565f, 0.035210107f, 0.015096615f, -0.04939917f,
+ 0.011800731f, 0.07148536f, -0.047290847f, -0.06091541f,
+ 0.113620274f, -0.080722176f, 0.056476723f, -0.066667825f,
+ -0.14979011f, 0.15063208f, -0.11805492f, -0.138875f,
+ 0.14232866f, -0.03414186f, 0.47239187f, 0.009407899f,
+ 0.01444684f, -0.10259039f, -0.07597026f, 0.12913887f,
+ -0.67652786f, 0.49300277f, -0.15496327f, 0.11434867f,
+ 0.0086330585f, 0.0016397188f, -0.093785115f, 0.12697084f,
+ 0.09329895f, -0.098265454f, 0.015779398f, 0.024828607f,
+ -0.20260698f, -0.0043203263f, 0.008699304f, -0.0068465173f,
+ 0.002962457f, 0.007240551f, 0.006284914f, -0.018137073f,
+ -0.009959204f, 0.041471813f, -0.018904453f, -0.042574976f,
+ 0.024426522f, 0.018850524f, -0.035666943f, 0.012505667f,
+ -0.014740345f, 0.0039879885f, 0.015514583f, 0.0046489495f,
+ -0.007373316f, 0.039615016f, -0.04171012f, -0.0011046156f,
+ -0.013045653f, 0.027342325f, 0.034585696f, -0.025510559f,
+ -0.0030336082f, 0.000485477f, -0.007296067f, -0.027812503f,
+ 0.025867466f, -0.011391817f, 0.018295178f, -0.00917634f,
+ -0.040564276f, 0.018141888f, -0.00067481253f, -0.022856772f,
+ 0.02692952f, 0.015732365f, -0.027582686f, 0.0110019455f,
+ -0.01288451f, -0.0003018919f, 0.019714799f, 0.01728935f,
+ -0.002913521f, 0.008114081f, 0.0027821003f, 0.4531545f,
+ 0.053950854f, -0.6977125f, 0.2064479f, -0.109914035f,
+ 0.1841823f, -0.13620034f, 0.27128533f, -0.0609876f,
+ 0.003371579f, 0.1930245f, 2.4499261f, -4.972192f,
+ 1.2972376f, -0.14015496f, 0.2681309f, 4.5717506f,
+ -4.222891f, 0.28777757f, -0.47991228f, 0.030688927f,
+ 0.24025695f, -0.010329718f, 0.22207767f, -0.106166996f,
+ -0.005659934f, -0.012544079f, -0.01702093f, -0.000517936f,
+ 0.012638107f, -0.0033698415f, 0.007970288f, -0.011309287f,
+ 0.022607557f, -0.01640778f, -0.014023224f, -0.008556073f,
+ 0.04318879f, -0.03346796f, 0.014410724f, -0.00046621874f,
+ 0.007378614f, -0.0073061357f, 0.0042915936f, -0.004515676f,
+ 0.024914468f, -0.008171752f, -0.0017248475f, -0.0059723468f,
+ 0.010641572f, -0.25384668f, 0.16646713f, 0.06976762f,
+ 0.132991f, -0.11862378f, 0.3204264f, -0.2161517f,
+ -0.15423734f, -0.1217866f, 0.04545744f, -0.18977062f,
+ 0.03121648f, 0.28215134f, -0.05836171f, 0.19382347f,
+ 0.06683978f, 0.07896366f, -0.26435596f, 0.019489296f,
+ 0.008891515f, 0.08911816f, -0.08334369f, 0.07251963f,
+ -0.02495827f, -0.17624144f, -0.0600965f, -0.11753576f,
+ 0.15228821f, -0.15012947f, -0.102076195f, 0.07920336f,
+ 0.35360602f, -0.43018606f, -0.015259097f, 0.25731575f,
+ -0.027296295f, -0.40447804f, -0.2375002f, -0.25029674f,
+ 0.15262108f, 0.297686f, 0.13268502f, -0.44820413f,
+ -0.37434947f, 0.1261727f, 0.15368667f, -0.37884322f,
+ 0.21143666f, 0.004934576f, 0.03484901f, -0.0062802057f,
+ 0.011079838f, 0.013925544f, -0.07367002f, -0.00024836176f,
+ -0.020962216f, 0.042730514f, -0.03942212f, 0.08173478f,
+ -0.06545684f, 0.04225348f, -0.033619102f, 0.122894906f,
+ -0.09198154f, 0.005074649f, 0.020633776f, 0.0038829045f,
+ -0.12776504f, 0.1464373f, -0.040253535f, -0.034283984f,
+ -0.05876475f, 0.06889128f, -0.09487612f, 0.12700228f,
+ -0.015016703f, 0.02545879f, -0.009468004f, -0.00097389973f,
+ 0.0061884173f, 0.018115327f, -0.03235417f, 0.010192787f,
+ 0.010647744f, -0.006882341f, 0.00641248f, 0.0062712007f,
+ -0.016744254f, 0.0058270027f, -0.012694194f, -0.022825575f,
+ 0.018078726f, 0.013505268f, -0.02376646f, 0.022100678f,
+ 0.022399256f, -0.024491498f, 0.003643337f, 0.0073666316f,
+ -0.011214707f, 0.042343896f, 1.1964284f, 1.1262068f,
+ -0.0125066f, 0.13206916f, -1.3212638f, -1.72202f,
+ -1.7712481f, 0.39054653f, 0.115705706f, 1.4770936f,
+ 0.9925719f, 0.77947533f, -0.68878996f, -1.4571657f,
+ -0.3137554f, -0.3995305f, 0.097454146f, 1.0607964f,
+ 1.258041f, 0.017379453f, 0.030014992f, -0.09101157f,
+ -0.73976797f, -0.21007289f, -0.058368642f, 0.08423641f,
+ -0.06387555f, -0.18031077f, -0.024950154f, -0.42568955f,
+ 0.22135833f, -0.02566547f, 0.26769084f, -0.011800038f,
+ -0.025906863f, -0.66306657f, -0.37567604f, -0.28611735f,
+ 0.43021184f, 0.09991237f, 0.79288036f, 0.5373436f,
+ 0.7736879f, 0.025644226f, 0.34796628f, -0.3276089f,
+ -0.26382548f, -0.44874048f, -0.25642022f, 0.032270946f,
+ -0.022875438f, 0.57005584f, -0.103805095f, -0.027593944f,
+ -0.10354166f, 0.8457833f, -1.3360838f, 0.42011598f,
+ 0.11129376f, 0.18282677f, -0.7165381f, -3.611883f,
+ 0.48547474f, 0.1206109f, 0.0791582f, 0.5717829f,
+ 1.4082952f, -0.13747625f, 0.028161597f, -0.05371877f,
+ 0.026620565f, -0.27406257f, 0.06475868f, 0.10684791f,
+ 0.07656841f, 0.11414447f, -0.18679783f, 0.3174631f,
+ -0.3324665f, -0.054792285f, 0.015518165f, 0.2820419f,
+ -0.3405606f, 0.11497142f, -0.034227278f, -0.15895344f,
+ -0.027250698f, 0.26229578f, -0.029106213f, 0.07658948f,
+ 0.055758134f, -0.04704797f, -0.09523118f, -0.01786842f,
+ -0.24532066f, -0.10276325f, 0.04712425f, -0.0014071283f,
+ 0.26272595f, -0.12238576f, 0.04811111f, 0.04746326f,
+ 0.06720963f, -0.045621894f, 0.037144933f, -0.057428807f,
+ 0.0074382615f, -0.006663423f, 0.008955534f, -0.0017526702f,
+ 0.068258256f, -0.014245306f, 0.012218727f, -0.06978347f,
+ 0.0045066467f, -0.05709926f, -0.028024383f, 0.1313973f,
+ -0.08620281f, 0.0014925577f, -0.04540824f, 0.009461808f,
+ -0.085372925f, 0.15996909f, -0.032260284f, -0.067303635f,
+ -0.009071448f, 0.05536098f, 0.046731256f, 0.005596734f,
+ 0.050206613f, 0.0077225636f, -0.10998435f, 0.013611023f,
+ 0.065691985f, -0.050880555f, 0.090820104f, 0.048506916f,
+ -0.123054065f, -0.027516266f, -0.075243846f, -0.13243125f,
+ 0.13891536f, 0.048725024f, -0.037174966f, 0.16769321f,
+ 0.050089728f, -0.12838423f, 0.002787225f, 0.07988778f,
+ -0.0053280047f, -0.056187253f, -0.011433725f, 0.016641367f,
+ 0.08536485f, -0.06201575f, 0.0035803248f, 0.028980076f,
+ -0.048863932f, -0.11342622f, 0.13643155f, -0.08830679f,
+ -0.02103459f, 0.09369883f, -0.006806451f, -0.012497092f,
+ 0.094690606f, -0.050089475f, -0.013550645f, -0.0060583195f,
+ -0.040357545f, -0.007459913f, 0.058476903f, -0.070549786f,
+ 0.0007626135f, -0.012492823f, -0.00510646f, 0.013715168f,
+ -0.009291373f, 0.008988795f, 0.013655029f, 0.027690958f,
+ -0.05720208f, 0.013017537f, 0.040551037f, -0.0059102485f,
+ -0.047496248f, 0.07378406f, -0.03411246f, 0.032498203f,
+ 0.0007936657f, -0.031725146f, -0.0489591f, 0.04632291f,
+ -0.06077211f, 0.019726476f, 0.032194573f, 0.02347913f,
+ -0.030544575f, -0.0039228355f, 0.01824424f, -0.025985759f,
+ -0.04485126f, 0.034144726f, 0.0048262817f, -0.016245268f,
+ 0.03092239f, 0.05255696f, -0.0527505f, 0.036376152f,
+ 0.010774665f, -0.04255956f, -0.019309435f, 0.03162172f,
+ -0.05954396f, 0.047493123f, 0.0021444375f, -0.031325057f,
+ 0.041758582f, 0.03128625f, -0.08789106f, 0.042219453f,
+ 0.018610658f, -0.02827738f, 0.035746276f, -0.9474874f,
+ 2.0469842f, -1.321167f, 0.2543833f, -1.2119492f,
+ 4.2701416f, -3.0788984f, -0.22463766f, 0.4665166f,
+ 1.4026526f, -1.1010966f, -2.6380749f, 2.6244087f,
+ -0.7884985f, 0.29131767f, -1.738198f, 2.2840524f,
+ -0.9478553f, 0.23109299f, -0.27683294f, 0.32805127f,
+ -0.3203711f, 0.261952f, 0.050106455f, 0.04158691f,
+ -0.023125503f, -0.03719599f, -0.056111246f, 0.05282794f,
+ -0.021825556f, 0.006073163f, -0.018821497f, 0.12478096f,
+ -0.07695036f, -0.025720906f, 0.029763224f, 0.053414855f,
+ -0.113284856f, 0.0674048f, -0.055122614f, 0.0593638f,
+ 0.035032593f, -0.04542647f, 0.0038384513f, 0.081376925f,
+ -0.09966911f, -0.040397853f, 0.049806096f, 0.0008625808f,
+ 0.009346304f, -0.016910354f, -0.0061955294f, 0.00075164373f,
+ 0.017360615f, 0.014771159f, 0.020654095f, -0.0060036047f,
+ -0.024364313f, -0.0064911875f, -0.0035039433f, -0.017624265f,
+ 0.011326905f, 0.034578107f, -0.031880025f, 0.01818495f,
+ -0.0018683636f, -0.013890168f, 0.00048885506f, -0.0049361764f,
+ -0.029021565f, 0.043846432f, -0.0085247345f, 0.006515423f,
+ -0.0072788447f, -0.22348252f, -0.32035953f, -0.17488877f,
+ -0.12534964f, 0.05155121f, -0.25779155f, 0.17713468f,
+ 0.4386189f, -0.04552404f, -0.12387897f, 0.50271976f,
+ 0.2873703f, 0.2634686f, 0.04795615f, -0.008180651f,
+ -0.22767483f, 0.18837523f, 0.4473208f, 0.047504447f,
+ -0.03341417f, -0.025862379f, -0.034787036f, -0.11211656f,
+ 0.09060133f, 0.14062718f, -0.11936079f, -0.15965782f,
+ 0.31821185f, 0.5182185f, -0.3406504f, 0.2403372f,
+ -1.7994181f, -6.015933f, -0.22330882f, -0.023098761f,
+ -0.0795721f, 2.4078753f, 1.8562393f, 0.22230634f,
+ 0.0073212096f, -0.3555047f, 0.59674025f, 2.190251f,
+ -0.62903965f, 0.2844899f, 0.41804186f, -0.5471097f,
+ 0.47739178f, -0.261793f, 0.17756975f, 0.049934085f,
+ 0.007851809f, -0.0122786295f, -0.013898886f, -0.0041208738f,
+ -0.041106824f, -0.030471098f, 0.078186445f, 0.0620147f,
+ -0.09604734f, 0.0030226242f, 0.053262204f, -0.05892392f,
+ -0.01313975f, 0.088094994f, -0.029207155f, -0.073151454f,
+ 0.027125567f, 0.0018934088f, 0.096658505f, -0.014958196f,
+ 0.036345955f, -0.007185197f, -0.017472142f, -0.1481408f,
+ -0.041528292f, 0.07346612f, -0.074839324f, 0.07964649f,
+ -0.025005175f, -0.11541149f, 0.2657465f, -0.2514277f,
+ 0.10952359f, -0.09074946f, -0.030426346f, -0.12749483f,
+ 0.43572408f, -0.37397367f, 0.06997134f, -0.19125696f,
+ 0.5404963f, 1.1268033f, 0.50891066f, -0.107599825f,
+ -0.049365554f, 0.3013349f, 0.111512065f, -0.22275999f,
+ 0.114790834f, 0.16869746f, -0.14016086f, -0.06494082f,
+ 0.113072425f, 0.048676368f, -0.10187943f, 0.23833296f,
+ 0.14212827f, -0.20158547f, -0.093053155f, -0.19645469f,
+ -0.045022108f, -0.3578435f, -0.47786415f, -0.19165401f,
+ -0.17586553f, 0.2630432f, -0.69676906f, -0.1683862f,
+ -0.10343814f, 0.0747168f, -0.058464624f, 0.6414457f,
+ -0.031557675f, 0.32135972f, -0.28340906f, 0.58322585f,
+ 0.79386425f, -1.3579369f, 0.2213669f, 0.7535923f,
+ 0.35874626f, -4.081564f, 2.105799f, 0.03394105f,
+ -0.58708084f, -3.105196f, 5.0317016f, -0.5260426f,
+ -0.17504211f, -0.55119985f, 2.7276595f, -1.9475206f,
+ -0.02522392f, -0.1247523f, 0.40392175f, -0.80572325f,
+ 0.4562317f, 0.09129194f, 0.07239832f, -0.004039087f,
+ -0.024027368f, -0.015137804f, -0.0054662786f, 0.011786941f,
+ 0.004253954f, 0.027057769f, 0.00018785706f, -0.0088780485f,
+ -0.008575791f, 0.021962967f, -0.0003256301f, 0.0013863654f,
+ -0.013673512f, -0.013595973f, 0.039284207f, -0.019664254f,
+ -0.0053340485f, 0.00075133645f, -0.014103194f, -0.046577062f,
+ 0.037992567f, -0.0065952917f, 0.023269163f, 0.01705902f,
+ 0.017225321f, -0.02343812f, 0.0051621622f, -0.0005592662f,
+ -0.0147186285f, 0.00040271418f, 0.027110096f, -0.02702271f,
+ 0.013710606f, -0.006311487f, -0.0060713515f, -0.010298143f,
+ 0.03591056f, -0.025406174f, 0.0048258547f, 0.021302823f,
+ -0.013482781f, 0.006497144f, 0.005626027f, -0.024558544f,
+ -0.017322414f, 0.012411624f, -0.024183042f, 0.014873674f,
+ 0.026183153f, -0.008383793f, 0.0124931205f, 0.012457213f,
+ 0.012045159f, -0.019694531f, -0.0066898805f, 0.0019155081f,
+ 0.019189619f, -0.04763183f, 0.023620982f, 0.035946153f,
+ -0.013889654f, -0.026330067f, 0.016713306f, 0.017396243f,
+ 0.014167993f, -0.018667273f, -0.0176273f, 0.021136532f,
+ 0.0036439386f, -0.0375102f, 0.02710138f, 0.002033066f,
+ 0.009265898f, -0.039189693f, -0.025981946f, -0.004615037f,
+ 0.0032535857f, 0.018461222f, 0.0074792383f, -0.0017322749f,
+ 0.008931792f, 0.005375118f, -0.0319608f, 0.004013289f,
+ 0.009399282f, 0.0026269008f, -0.005500013f, -0.0083868615f,
+ 0.010927849f, 0.023633521f, -0.05956806f, -0.013574904f,
+ 0.061837375f, -0.0026012722f, -0.027987529f, 0.06258813f,
+ 0.0054814643f, -0.021918664f, -0.023040216f, -0.45757416f,
+ 1.4565207f, 0.43907982f, -1.3033811f, -0.024905257f,
+ 0.32251948f, -3.835781f, 3.3216836f, 2.440432f,
+ -0.5298869f, -0.28021938f, 2.749278f, -6.4149313f,
+ 0.6562477f, 0.95437104f, 0.14401948f, -0.5539441f,
+ 3.2380984f, -2.1034584f, 0.017148938f, 0.011923728f,
+ 0.13322712f, -1.0862578f, 0.92730755f, -0.26725858f,
+ -0.24397932f, 0.074425526f, 0.1117935f, 0.13240293f,
+ 0.41784397f, 0.7404742f, 1.0318282f, 1.4331021f,
+ 0.7335343f, -0.43346286f, -0.7830092f, -1.9374405f,
+ -2.4191442f, -1.3617048f, -0.24706343f, -0.03342432f,
+ 1.5173944f, 1.8612181f, 0.6315033f, -0.11890764f,
+ 0.19086017f, -0.7222582f, -0.7190146f, -0.14755085f,
+ 0.3167361f, -0.039976545f, 0.1307512f, -0.14481206f,
+ 0.0029141766f, -0.023563737f, 0.22623633f, -0.26986006f,
+ 0.033467237f, 0.3039329f, 0.09788029f, -0.23093647f,
+ 0.04797184f, -0.5435371f, 0.28225297f, -0.12393708f,
+ 0.06615679f, 0.21791485f, 0.23950522f, -0.38103038f,
+ 0.057797447f, 0.012778321f, 0.18788584f, -0.23953205f,
+ 0.003463926f, 0.1519535f, -0.025784193f, 0.022954147f,
+ 0.021384975f, 0.031615477f, -0.024224572f, 0.013137536f,
+ -0.015687706f, 0.024815697f, -0.05859628f, 0.031555064f,
+ -0.0019542053f, 0.0120559605f, -0.027779348f, 0.04989342f,
+ -0.018062575f, 0.011863047f, -0.009080397f, -0.032487895f,
+ 0.023245774f, 0.0034800111f, -0.012821287f, -0.004105503f,
+ 0.0097069405f, -0.0123393545f, -0.01738414f, -0.24763492f,
+ 0.22560623f, -0.33906525f, 0.17742047f, 0.29261616f,
+ 0.23450398f, 0.08458583f, 0.31558466f, -0.34477365f,
+ -0.036315188f, -0.63012654f, 1.020803f, -6.822575f,
+ 4.672898f, 0.907094f, 0.0921175f, 0.42199847f,
+ -2.4781747f, 2.6292892f, -0.20802575f, -0.040282898f,
+ -0.16429797f, 0.158319f, -0.21606922f, 0.17297447f,
+ 0.10854483f, -0.21564475f, 0.10645375f, -0.0852769f,
+ -0.123929694f, -0.070597954f, 0.1399093f, -0.21883014f,
+ 0.25562203f, 0.015535234f, 0.008046734f, 0.20049386f,
+ -0.10580072f, -0.288465f, 0.12385275f, -0.13853587f,
+ 0.14443761f, -0.11708488f, 0.16184115f, 0.32197487f,
+ -0.14791423f, 0.16313978f, 0.049589388f, -0.09173289f,
+ -0.12055817f, -0.03492332f, 0.0457395f, -0.027245864f,
+ 0.08227852f, -0.03637111f, 0.019504743f, -0.05241149f,
+ 0.08827175f, -0.09138424f, 0.049888045f, 0.03992102f,
+ -0.013001513f, -0.06494804f, 0.10308159f, -0.058084413f,
+ 0.0041539194f, 0.03151993f, -0.06009176f, 0.010160405f,
+ 0.0142107215f, -0.0069897706f, -0.03624838f, 0.08260462f,
+ -0.07326148f, -0.0082091065f, 0.05924571f, -0.07805568f,
+ 0.0003147011f, -0.024013342f, 0.003571202f, -0.0687727f,
+ 0.085256286f, -0.028858652f, 0.008514979f, -0.01370254f,
+ -0.02649602f, -0.049568724f, 0.072079524f, -0.019674798f,
+ 0.01081535f, 0.02266942f, -0.006238329f, -0.017271083f,
+ -0.016328055f, 0.005945148f, 0.010414125f, 0.0649988f,
+ -0.011186836f, 0.0031077736f, 0.01488379f, 0.10748715f,
+ -0.06637495f, -0.040573314f, -0.0037701947f, 0.08946786f,
+ 0.020519216f, 0.18580866f, -0.11058605f, -0.10992421f,
+ 0.009827032f, 0.0054510324f, 0.048547767f, 0.16061442f,
+ -0.05525848f, -0.13149387f, 0.011624945f, -0.11132381f,
+ -0.029880086f, 0.14393318f, 0.035286944f, -0.098463364f,
+ 0.038993724f, -0.06352473f, -0.06792619f, 0.098394215f,
+ -0.06928554f, 0.058781754f, -0.059582964f, -0.017070632f,
+ -0.0157639f, 0.1672481f, -0.20033248f, 0.08431539f,
+ 0.18242975f, 0.14837542f, -0.17650276f, -0.046665296f,
+ -0.1051493f, -0.50624675f, -0.10856225f, -0.16793527f,
+ -0.07197735f, 0.28330138f, -0.39458862f, 0.023908805f,
+ 0.053147294f, -0.061758015f, -0.27711603f, 0.04967058f,
+ 0.068010144f, -0.29855344f, 0.07553203f, 0.00070996344f,
+ 0.0021598968f, -0.34284872f, 0.3667866f, -1.7976327f,
+ -3.8050454f, -0.27751672f, 0.06710288f, -0.11527652f,
+ 2.0488567f, 3.8449504f, -0.019417979f, 0.25272283f,
+ -0.7124749f, 0.6854457f, 1.2635205f, -0.6528006f,
+ 0.20464845f, 0.11308838f, -0.2125412f, -0.4034266f,
+ -0.008234763f, -0.02797744f, 0.041370988f, -0.09540984f,
+ -0.001699344f, -0.019013003f, 0.0010383653f, -0.016509417f,
+ 0.28561717f, -0.024256004f, 0.24378292f, -0.02724916f,
+ -0.020548128f, -0.1074765f, 2.074155f, -0.3262673f,
+ 0.024195021f, 0.3360093f, -0.068875425f, -9.405202f,
+ 1.627166f, -0.37471554f, -0.14033297f, 0.011253595f,
+ 0.33248034f, -0.101982914f, 0.038908735f, -0.08949174f,
+ 0.020867223f, 0.04687899f, -0.060135193f, 0.05768169f,
+ -0.015182229f, 0.0089645665f, -0.0532681f, 0.0694109f,
+ -0.029092036f, 0.052889585f, -0.043014023f, 0.08994548f,
+ -0.074426785f, -0.018725326f, -0.021360457f, 0.01875993f,
+ 0.0013528034f, 0.034160204f, -0.038930826f, 0.009579829f,
+ 0.009250521f, -0.09578013f, 0.04048143f, 0.078915566f,
+ -0.13183434f, 0.40188128f, -0.03411511f, 0.07047681f,
+ -0.10000601f, -0.0060591656f, 0.65625215f, 0.31422958f,
+ 0.18896863f, 0.17151128f, 0.34385997f, 0.030188305f,
+ -0.16014273f, -0.42167395f, -0.018569563f, -0.28614002f,
+ 0.029776182f, 0.049304806f, -0.22978953f, 0.09140162f,
+ 0.022890963f, 0.11712325f, 0.17694704f, -0.21161927f,
+ 0.07646972f, -0.01295703f, 0.009571042f, -0.106058836f,
+ 0.15918256f, -0.06587445f, 0.08662464f, -0.19923525f,
+ 0.34388235f, -0.9267652f, -0.09304384f, -0.30417427f,
+ 0.7931898f, -1.7338952f, 9.8180275f, 0.55701333f,
+ 0.064932264f, -0.17937589f, 0.115376815f, -0.09499582f,
+ -0.2485727f, -0.0046541383f, 0.028371822f, 0.03606203f,
+ 0.0067365323f, 0.11616945f, 0.043863643f, -0.14730981f,
+ 0.27774972f, 0.060969193f, -0.11612988f, -0.28526798f,
+ 0.471017f, -0.6997008f, 0.12838572f, -0.055129312f,
+ 0.2856449f, -1.4332232f, 1.3067651f, -0.24192092f,
+ 0.2081171f, -0.53965205f, -6.1775684f, -0.98148304f,
+ 0.17084767f, -0.17830072f, -0.04059373f, 0.3728461f,
+ 0.20867456f, 0.1925686f, -0.057526354f, 0.14585286f,
+ -0.853003f, 0.3680343f, -0.14916426f, 0.13524614f,
+ -0.11169913f, 0.86978984f, 0.13307375f, 0.16287537f,
+ -0.006425193f, 0.14676112f, -2.3489091f, 0.8756857f,
+ -0.20259936f, 0.16589902f, -0.5012086f, 5.3331738f,
+ 2.7984626f, -0.9493607f, 0.033240914f, 0.4609847f,
+ -1.6910734f, -5.0659533f, 0.72995746f, -0.51399076f,
+ -0.065757565f, -0.05140033f, -0.11702281f, 0.074511275f,
+ 0.071474716f, 0.10055807f, -0.0506172f, 0.044049654f,
+ 0.0014753543f, -0.060616218f, -0.03317927f, 0.17350663f,
+ -0.041833654f, -0.09485293f, 0.07951459f, 0.14834303f,
+ -0.14340387f, 0.101668894f, 0.122225344f, -0.2774673f,
+ -0.08121955f, 0.14949931f, -0.11217966f, -0.1307467f,
+ 0.20548299f, 0.013154022f, -0.013632002f, 0.011080129f,
+ -0.023512319f, 0.0034349402f, -0.024646418f, 0.047568355f,
+ -0.025344204f, -0.0053444174f, 0.0009639232f, 0.016193729f,
+ -0.027206594f, 0.018514376f, -0.016472122f, 0.011601346f,
+ 0.024698649f, -0.029349223f, 0.0025446075f, 0.002941529f,
+ 0.004151751f, -0.04827001f, 0.054990288f, -0.024588568f,
+ 0.03452298f, -0.009801387f, -0.026963536f, 0.024885468f,
+ 0.0077325925f, -0.12784983f, -0.0004727017f, 0.0524453f,
+ -0.0024653298f, -0.16912785f, 0.39179403f, 0.068885565f,
+ -0.11209827f, 1.1931618f, 0.04712435f, -2.251133f,
+ 0.04459844f, -0.20346907f, 1.195541f, -0.2519252f,
+ -1.2471386f, -0.1414118f, 0.07511332f, -0.23009096f,
+ 0.2610551f, 0.29286104f, 0.11769671f, -0.023729652f,
+ 0.019181583f, -0.028368853f, -0.011860269f, 0.032248575f,
+ 0.05148718f, -0.047919888f, 0.013449175f, 0.01674022f,
+ -0.038879845f, -0.049415056f, 0.045062315f, -0.0224045f,
+ 0.0051458273f, 0.026753867f, -0.020444315f, -0.009118943f,
+ 0.037824873f, -0.021686908f, 0.0063562766f, -0.0038951882f,
+ 0.008729107f, 0.0036430436f, 0.026570326f, -0.019414574f,
+ 0.047252927f, 0.24848075f, 0.049518216f, -0.2768678f,
+ 0.009328891f, -0.19252661f, -0.3930677f, -0.007572138f,
+ 0.11327027f, 0.09987962f, 0.18214096f, 2.3384292f,
+ -0.545856f, -0.8609355f, -0.08785435f, 0.19772369f,
+ 1.0370896f, -0.34821796f, -1.0101713f, -0.164299f,
+ -0.06544462f, -0.24169508f, 0.18837783f, 0.20615467f,
+ 0.046311665f, 0.21245573f, -0.16856518f, 0.15108292f,
+ -0.27393705f, 0.015365598f, -0.3854066f, 1.1974015f,
+ -0.8171824f, 0.38396147f, 0.057925183f, -0.18901315f,
+ -0.8586682f, 2.095654f, -0.84733313f, 0.029171998f,
+ 0.25229037f, -0.7818646f, -1.3056161f, 1.2940466f,
+ -0.134979f, 0.1756112f, 0.059034463f, 0.0018894798f,
+ -0.4029903f, 0.1728906f, -0.0034107924f, -0.35439357f,
+ 0.19148839f, 0.03786663f, -0.00047731365f, -0.019054921f,
+ 0.6592522f, 0.2706359f, 0.09047983f, -0.026447074f,
+ 0.049455334f, 0.09238018f, -0.0045684935f, -0.368926f,
+ -0.06521345f, 0.06581056f, -0.22142394f, -0.54163706f,
+ 0.26768303f, -0.0740894f, -0.03496943f, -0.052972406f,
+ 0.10855165f, -0.11435824f, 0.041386828f, -0.102326035f,
+ 0.0018735762f, 0.07658435f, -0.07127314f, 0.028028022f,
+ 0.116911955f, -0.033302654f, 0.04568431f, 0.082488224f,
+ -0.21965177f, -0.07413175f, -0.13298523f, -0.04259496f,
+ 0.10826996f, 0.17827633f, 0.14145942f, 0.111332774f,
+ -0.13057046f, -0.006932171f, 0.027994003f, -0.068751104f,
+ 0.0040345634f, -0.0039512743f, -0.08156678f, -0.023819147f
+};
+
+static const float espcn_conv1_biases[] = {
+ -0.018524863f, -0.02344122f, -0.059815478f, -0.13828179f,
+ -0.5407016f, 0.06077186f, 0.011967307f, 1.6737873e-05f,
+ 0.044080056f, 7.559907e-05f, -0.0023202975f, 0.036452256f,
+ -0.0011971687f, 0.037468974f, 0.5938281f, -0.0019778858f,
+ -0.0029633807f, 0.032908075f, -0.082847565f, 0.5534438f,
+ 0.0010720869f, 0.008382872f, -0.0005540301f, 0.007542251f,
+ -0.00054567686f, 0.002956358f, 0.046740323f, 0.00097470934f,
+ -0.0008472085f, -0.44804764f, 0.38280413f, 0.030789707f,
+ -0.722147f, 0.46606433f, -0.03505152f, -0.0014596627f,
+ 0.0030858433f, 0.0030317134f, 0.0025776294f, 0.0231461f,
+ 0.01756983f, -0.07762163f, 0.0032662358f, 0.046537727f,
+ -0.044725697f, -0.002968841f, 0.0005652894f, -0.0059821554f,
+ 0.6851272f, -0.092141666f, -0.29181793f, 0.00046312233f,
+ -0.54941076f, 0.034235522f, 0.11732721f, 0.027588358f,
+ 0.0060634925f, 0.004350643f, 0.46479496f, 0.0037383304f,
+ -0.2703324f, 0.026774203f, 0.017801644f, 0.04200875f
+};
+
+static const float espcn_conv2_kernel[] = {
+ -0.046674103f, 0.26428235f, -0.46103826f, 0.52712137f,
+ -0.33590984f, -0.17109194f, -0.0686052f, -0.07092914f,
+ -0.33207268f, -0.022449905f, -0.064986974f, -0.32484075f,
+ -0.0554371f, -0.59975314f, 0.11422833f, 0.068143204f,
+ -0.0018858669f, 0.3688631f, 0.041308302f, -0.037440863f,
+ -0.11112171f, 0.18021569f, 0.07213223f, 0.059388958f,
+ 0.09809465f, -0.07924326f, 0.036813457f, -0.25266457f,
+ 0.049585357f, -0.325183f, 0.659209f, 0.08045369f,
+ 0.7181868f, -0.25441548f, 0.05403617f, -0.033545442f,
+ -0.07890143f, 0.06283723f, -0.0036670712f, 0.060813967f,
+ 0.49117467f, 0.08548931f, 0.1397057f, 0.23137523f,
+ 0.23626906f, 0.15435082f, -0.0881616f, -0.08931251f,
+ 0.6407793f, -0.711827f, -0.09148442f, -0.010182393f,
+ -0.22424959f, 0.22931574f, -0.11653139f, -0.035417557f,
+ 0.09172038f, -0.06217888f, -0.13925147f, 0.027134137f,
+ -0.71670324f, 0.35419685f, -0.12383344f, 0.16469592f,
+ 0.5541678f, -0.34323946f, -0.060989752f, 0.46205896f,
+ -0.26838145f, -1.1341122f, -0.019517051f, 0.20830911f,
+ 0.4519294f, -0.008591234f, 0.0035951894f, -0.0696347f,
+ 0.04464795f, 0.16277248f, -0.7174859f, 0.07877335f,
+ -0.014362606f, -0.24790181f, -0.28197056f, -0.7512798f,
+ 0.38359404f, -0.18325178f, -0.020694658f, -0.24196818f,
+ -0.13549626f, 0.11022808f, -0.057731092f, 0.2660348f,
+ -0.08914909f, 0.97424257f, 1.0067362f, 0.23840818f,
+ 1.3499018f, -0.2948939f, -0.18948932f, 0.084086366f,
+ 0.13916422f, -0.053409252f, 0.034651592f, 0.6136519f,
+ 0.521036f, 0.053577263f, -0.21486463f, 0.081501134f,
+ -0.32000288f, -0.17460087f, 0.09788475f, 0.24676149f,
+ 0.19157162f, -0.40596998f, 0.45726103f, 0.050311435f,
+ -0.6772082f, -0.15382625f, 0.090584226f, -0.17078221f,
+ 0.5261085f, 0.1265592f, 1.0355614f, -0.11936747f,
+ -0.7620874f, 0.14844258f, 0.6093218f, -0.56291664f,
+ 0.037501205f, 0.12485749f, 0.14178781f, 0.08348596f,
+ -0.30096284f, 1.1994859f, 0.19401193f, -0.12891848f,
+ 0.17503682f, 0.020317312f, 0.06757912f, 0.7639953f,
+ -0.01018983f, 0.47289777f, 0.5996521f, -0.21656662f,
+ 0.03760899f, -0.58895385f, -0.56364167f, -0.3800838f,
+ -0.32080677f, -0.016804136f, -0.047808167f, 0.2457111f,
+ 0.048505846f, -0.0066461437f, 0.19492339f, -0.044978056f,
+ 0.03597572f, 0.973317f, 0.80091244f, -0.19597733f,
+ 0.7849349f, -0.4328205f, 0.54092515f, -0.1000266f,
+ -0.09305786f, 0.017513275f, -0.043898217f, -0.0011413264f,
+ 0.2741364f, -0.24002706f, 0.10263537f, -0.3157341f,
+ -0.1817245f, 0.06316719f, -0.045441207f, -0.19999616f,
+ 0.59036136f, -0.929242f, -0.2259878f, -0.115269065f,
+ -0.6086586f, -0.2443034f, 0.18262775f, -0.09070053f,
+ -0.68831503f, -0.096460946f, 0.64405525f, 0.112335846f,
+ 0.0651215f, 0.99067503f, 0.27747253f, 0.37193787f,
+ 0.04985451f, -0.23573603f, 0.421118f, 0.431377f,
+ -0.20965208f, 0.26304242f, 0.2524355f, 0.027636467f,
+ 0.14990109f, 0.040952217f, 0.07939775f, 0.3484388f,
+ 0.025526477f, -0.25410444f, -0.14516917f, -0.060723733f,
+ 0.02533456f, -0.13899088f, -0.771202f, 0.19927137f,
+ -0.16109027f, -0.0879771f, -0.030220356f, 0.17516586f,
+ -0.06494486f, 0.08522494f, 0.3226843f, 0.17873856f,
+ 0.015208139f, -0.77031285f, 0.43173358f, 0.082899325f,
+ -0.23150858f, -0.3546863f, 0.12339482f, 0.040335365f,
+ 0.08092755f, -0.037309915f, 0.05912349f, 0.26949504f,
+ 0.5846339f, -1.9282948f, -0.083857276f, 0.041776888f,
+ 0.5534651f, -0.16246532f, 0.0333914f, 0.10689656f,
+ -0.33218884f, -0.191305f, -0.110735744f, -0.060104877f,
+ 0.4205079f, -0.5120307f, 0.3012935f, 0.0059898547f,
+ -0.5201543f, 0.07413049f, -0.12935893f, 0.06917478f,
+ 1.1134965f, -0.63113445f, 0.295582f, -0.08106212f,
+ -0.76212734f, -0.0033916542f, -0.0082135135f, 0.41783637f,
+ -0.16403818f, 0.3409297f, -0.23072788f, -0.02182988f,
+ 0.15994272f, -0.025851693f, -0.086990654f, 0.36421558f,
+ -0.022342218f, -0.08575764f, -0.17176214f, -0.05879204f,
+ 7.2425564e-07f, -0.7348249f, -0.008461221f, 0.316571f,
+ 0.2553959f, 0.05026763f, 0.22897281f, -0.12187772f,
+ 0.04273273f, -0.11774693f, -0.31411144f, -0.23734225f,
+ 0.023199726f, -0.71966887f, 0.390865f, -0.26477832f,
+ -0.26728633f, 0.22609584f, 0.14667323f, -0.15086149f,
+ -0.15804252f, 0.007859211f, -0.071217954f, -0.2024186f,
+ -0.17261346f, 1.1517165f, 0.16905463f, 0.527085f,
+ -0.79107165f, 0.20309469f, -0.027971271f, 0.028042238f,
+ -0.37720725f, 1.1990021f, 0.2861834f, 0.027881658f,
+ -0.07594778f, -0.755004f, 0.37583643f, 0.20889725f,
+ 0.40248895f, -0.15868257f, -0.29324895f, 0.0073413285f,
+ -0.03221651f, 0.04222086f, -0.56599194f, 0.1316574f,
+ 0.32267398f, -0.30811018f, 0.009511509f, 0.37700927f,
+ -0.1761917f, -0.65478015f, -0.031077266f, -0.0012360336f,
+ -1.4888004f, 0.0027788912f, 0.014060073f, -0.10431362f,
+ 0.008857338f, 0.12252177f, 0.12191871f, 0.13308547f,
+ -0.031593915f, -0.21598554f, 0.44040915f, 0.6425841f,
+ -0.08555652f, 0.0565315f, -0.2560663f, -0.059711326f,
+ -0.026588634f, -0.002182128f, -0.5897357f, 0.102076136f,
+ -0.03339101f, -0.79707164f, 0.25357902f, 0.029758122f,
+ -0.20302856f, 0.053880017f, -0.24216141f, 0.14256707f,
+ 0.11925629f, 0.0009726241f, 0.020042723f, -0.22397634f,
+ 0.60491306f, -0.0799372f, -0.1188527f, 0.15720364f,
+ -0.10922401f, -0.10785788f, 0.023474775f, -0.07532779f,
+ 0.11522492f, -0.014375704f, -0.09244887f, 0.10161737f,
+ 0.7234623f, 0.08744806f, 0.03538458f, 0.2193847f,
+ 0.19487795f, 0.10907811f, -0.32664987f, -0.09264603f,
+ -0.17754139f, -0.26980463f, -0.10870375f, -0.08479278f,
+ -0.49118847f, 0.120683394f, 0.7132835f, 0.45244792f,
+ 0.21157178f, -1.3531632f, -0.02591179f, 0.008506874f,
+ 1.0093842f, 0.02687048f, -0.0182936f, -0.05349838f,
+ 0.025951784f, 0.525051f, 0.18124938f, 0.055352695f,
+ -0.015539851f, 0.01359462f, 0.1669847f, -0.329349f,
+ 0.42093417f, -0.06888676f, -0.14403322f, -0.07013914f,
+ -0.045789f, 0.0077280467f, 0.20861097f, 0.034761835f,
+ -0.06872854f, 0.27268225f, -0.1248414f, -0.0984672f,
+ 0.024131464f, 0.2819358f, -0.52894294f, -0.048365857f,
+ -0.018785186f, -0.014475937f, -0.063025676f, -0.0016713755f,
+ 0.44439432f, 0.5860615f, 0.0017755321f, 0.071490906f,
+ 0.01665473f, 0.01043939f, -0.0049000867f, -0.19566949f,
+ 0.25060382f, -0.1115756f, 0.008380983f, -0.051830936f,
+ 0.078110285f, -0.35945877f, -0.11642675f, 0.001180824f,
+ 0.0578475f, -0.020864224f, 0.16781266f, -0.0017521876f,
+ -0.62528956f, 0.1562274f, -0.46741173f, 0.012773457f,
+ -0.42958456f, 0.35419467f, 0.7802642f, 0.7651227f,
+ 0.15311906f, 1.5961279f, 0.110667616f, -0.072065115f,
+ 0.7206966f, -0.04193095f, 0.0711928f, -0.0019790665f,
+ -0.023330979f, -0.6372553f, 0.4749518f, -0.007703528f,
+ -0.0118237855f, 0.39432898f, 0.19798014f, -0.037313983f,
+ -0.39190286f, 0.069940664f, -0.11332594f, 0.25451034f,
+ 0.10828647f, -0.036833063f, -0.20823239f, -0.0051089395f,
+ 0.10366354f, -0.27613324f, -0.08230586f, 0.30575338f,
+ -0.058297206f, 0.09497224f, -0.2009728f, 0.14842197f,
+ 0.08278775f, 0.051755365f, 0.106069684f, -0.30312496f,
+ -0.6279082f, 0.67748356f, -0.04157887f, 0.05925659f,
+ 0.6019529f, -0.048674017f, 0.023168415f, -0.0117832f,
+ 0.10957296f, -0.55471784f, 0.3902961f, 0.004402121f,
+ -0.26879898f, -0.1613903f, -0.0736826f, 0.05158686f,
+ -0.40968376f, 0.062633745f, 0.1909543f, 0.051297225f,
+ -0.5385568f, 0.20263128f, -0.24177232f, 0.12465008f,
+ 0.9497351f, 0.0942599f, -0.37810448f, 0.42079917f,
+ 0.27641112f, -0.13552265f, -0.15447186f, 0.05729938f,
+ -0.9949809f, -0.011660784f, -0.080264896f, 0.21001951f,
+ 0.009583477f, 0.26658905f, 0.110737085f, -0.010538512f,
+ 0.0073930826f, -0.10350395f, 0.2690889f, -0.06732192f,
+ -0.06597211f, -0.0026426371f, 0.32086986f, -0.23931707f,
+ -0.024190666f, 0.033044633f, 0.017585613f, -0.047808494f,
+ -0.02701819f, 0.66567475f, -0.15553795f, -0.16383912f,
+ 0.11520975f, -0.25181836f, 0.13908514f, -0.09092483f,
+ -0.073647134f, -0.020011587f, -0.03323974f, 0.36156735f,
+ 0.19554496f, -0.2779971f, 0.05498606f, 0.09546568f,
+ -0.102127574f, 0.07539362f, -0.027212327f, 0.2002329f,
+ 0.07217274f, -0.31443796f, -0.1112432f, 0.044234317f,
+ 0.010144093f, 0.04564201f, -0.24525721f, -0.10580795f,
+ 0.32514638f, -0.035346646f, 0.2633613f, -0.057136223f,
+ 0.32189956f, -0.7063134f, 0.2205946f, -0.121362925f,
+ -0.11235741f, 0.093478404f, 0.3236306f, -0.15380429f,
+ -0.11459577f, 0.24943016f, 0.06301527f, 0.07359773f,
+ -0.30425563f, -0.009721266f, 0.011319024f, -0.05684832f,
+ 0.002824362f, 0.014445753f, 0.28266156f, -0.026186015f,
+ -4.9471604e-05f, -0.038714428f, -0.08657151f, 0.09283593f,
+ 0.200015f, -0.08817101f, 0.07703519f, 0.0026806525f,
+ 0.010412304f, -0.054159623f, -0.0775633f, 0.042284265f,
+ 0.0073298747f, 0.21470556f, 0.05467484f, 0.019926656f,
+ -0.047757216f, 0.1965818f, -0.060126822f, -0.018734982f,
+ 0.003734466f, 0.010669374f, 0.0101004215f, -0.079241745f,
+ -0.122091696f, 0.46603644f, -0.002449234f, -0.0029658272f,
+ 0.2260892f, -0.0968824f, 0.027408192f, -0.008983596f,
+ 0.41098675f, -0.09793973f, 0.07739444f, 0.062839866f,
+ 0.2109761f, -0.13808833f, 0.014332022f, 0.13062069f,
+ 0.14733574f, 0.026309716f, -0.25325757f, 0.025179707f,
+ 0.18055823f, -0.21977347f, 0.28260782f, 0.12728982f,
+ -0.4268119f, 0.16071615f, 0.49010542f, 0.39210045f,
+ -0.23921739f, -0.34988824f, 0.020909507f, -0.031102689f,
+ 0.39786085f, 0.04060349f, -0.012260492f, 0.07701521f,
+ 0.0032373392f, -0.3211925f, -0.3098456f, 0.110261254f,
+ 0.02880115f, 0.023276372f, -0.23179927f, -0.09671852f,
+ -0.17803997f, 0.16418648f, 0.009986631f, 0.028437436f,
+ -0.0696619f, 0.070268594f, -0.23809299f, -0.1210799f,
+ -0.06263444f, 0.1687488f, -0.1022174f, 0.16335264f,
+ -0.14669034f, 0.22479394f, 0.039738588f, 0.0025826024f,
+ -0.034533355f, -0.006438025f, 0.07587747f, 0.03283625f,
+ -0.065498665f, 0.26191965f, 0.006896614f, 0.014701348f,
+ 0.019605692f, 0.12325369f, -0.11641243f, -0.0036758208f,
+ -0.25055993f, 0.010461836f, -0.14595032f, -0.058902275f,
+ -0.16618772f, 0.44314942f, -0.101349875f, -0.016435022f,
+ -0.021817617f, -0.06827429f, -0.006538524f, -0.015117204f,
+ 0.10537151f, 0.14787868f, 0.51321185f, -0.26809156f,
+ 0.018769728f, 0.04534671f, 0.09445704f, 0.34622777f,
+ -0.06110584f, -0.036286496f, -0.20022584f, 0.008659418f,
+ 0.3038453f, -0.03234285f, 0.01122692f, -0.054838225f,
+ -0.017392907f, 0.016833223f, 0.49745992f, -0.06170047f,
+ -0.04826097f, -0.0050241635f, -0.57363427f, -0.1872473f,
+ 0.17139418f, 0.03429791f, -0.024473784f, -0.10805081f,
+ 0.028670384f, -0.073548235f, -0.06016784f, -0.0066841184f,
+ 0.05512082f, -0.6844955f, -0.21495752f, -0.3565604f,
+ -0.6392911f, 0.26932484f, 0.19190924f, 0.022291541f,
+ 0.04126848f, -0.0017807592f, -0.036653258f, 0.057726976f,
+ 0.17616573f, -0.72685295f, -0.0030662578f, -0.04362823f,
+ 0.28530198f, -0.06680635f, 0.098419f, 0.015014377f,
+ -0.13731647f, 0.14593858f, -0.16181391f, 0.13406125f,
+ 0.61669034f, 0.09283103f, -0.07495512f, -0.38249707f,
+ 0.007854118f, 0.072650045f, -0.49352726f, -0.034318488f,
+ 0.48840395f, -0.5911552f, 0.27560255f, -0.00076505897f,
+ 0.2525632f, 0.023079759f, -0.13862175f, -0.0050264117f,
+ -0.21578434f, -0.39153072f, 0.007889652f, 0.04991312f,
+ 0.124499984f, 0.02582332f, -0.013385625f, 0.07202608f,
+ 0.018049205f, 0.21069467f, 0.17125195f, -0.013168845f,
+ 0.015675973f, -0.3299053f, 0.18481588f, 0.09117244f,
+ 0.13362707f, -0.03578448f, -0.11294014f, 0.06735854f,
+ -0.04726264f, 0.18058431f, 0.013282449f, 0.10362096f,
+ -0.008768287f, 0.01906196f, -0.09233572f, 0.0027316224f,
+ -0.32418412f, -0.68946844f, 0.1328566f, 0.083345614f,
+ 0.07215056f, -0.056430474f, -0.030177787f, 0.025497515f,
+ -0.3069073f, -0.39930156f, -0.042785905f, 0.025616985f,
+ 0.29878968f, 0.033854682f, -0.013890017f, 0.00052144343f,
+ 0.3604786f, -0.13097762f, 0.04974513f, -0.1508374f,
+ -0.6819763f, -0.3551178f, -0.16612557f, 0.101316705f,
+ -0.62778705f, -0.022399968f, -0.43390587f, -0.014289895f,
+ 0.42192006f, 0.35321176f, -0.2627384f, -0.13136947f,
+ -0.1605258f, 0.005829208f, -0.3298086f, -0.31155488f,
+ 0.12568021f, 0.2695432f, -0.09579615f, -0.07985796f,
+ 0.4477858f, -0.05365754f, 0.03691468f, 0.14316183f,
+ -0.0390769f, 0.3263752f, -0.57568514f, -0.16314152f,
+ -0.05244232f, -0.21125014f, 0.1894712f, -0.03354973f,
+ -0.72243994f, -0.16907904f, 0.09877965f, -0.019296408f,
+ 0.1657333f, -0.20240118f, -0.042492058f, -0.16696197f,
+ 0.0933027f, -0.081449956f, -0.16955544f, -0.12059676f,
+ -0.32353896f, -0.14886564f, 0.10017824f, -0.06872203f,
+ -0.0687338f, 0.06287452f, -0.03823187f, -0.13179168f,
+ -0.02977857f, -0.7214259f, 0.04764241f, -0.16904181f,
+ 0.22611506f, -0.07867074f, 0.11607085f, 0.25687262f,
+ -0.158813f, 0.2170912f, 0.022958746f, 0.12211839f,
+ -0.38955256f, -0.16881509f, -0.6662008f, -0.07782999f,
+ 0.63337785f, 0.084912784f, -0.1898102f, -0.016330302f,
+ -0.0057496307f, -0.22735956f, 0.15386534f, 0.15679047f,
+ 0.43130034f, -0.0499025f, -0.11292001f, -0.104975134f,
+ 0.1517253f, 0.3488109f, 0.0832407f, 0.01959845f,
+ -0.36043146f, 0.013733767f, -0.048483185f, -0.077942096f,
+ 0.018922301f, -0.055467468f, -0.17980838f, 0.15051974f,
+ 0.03501007f, 0.024140948f, 0.378899f, 0.58339345f,
+ 0.3902328f, 0.13922966f, 0.08787596f, -0.0680227f,
+ -0.07662555f, 0.062245425f, -0.24619436f, 0.06520207f,
+ -0.059733838f, 0.18075316f, -0.4185296f, 0.18009084f,
+ -0.61645687f, -0.120788425f, 0.19870868f, -0.025232071f,
+ -0.018999962f, 0.019278869f, 0.07256909f, -0.07902122f,
+ -0.7232183f, 0.9824709f, 0.023246713f, -0.075314395f,
+ -0.1722031f, 0.10662969f, -0.10377831f, -0.19552313f,
+ -0.0019716343f, -0.33209836f, 0.22475685f, -0.030774042f,
+ 0.24270383f, -0.20828041f, -0.11887029f, -0.068650484f,
+ -0.21299605f, -0.067906f, -0.6986742f, 0.032572027f,
+ 0.11754704f, 0.27241483f, -0.21527997f, 0.2525498f,
+ 0.0735313f, 0.07372777f, -0.05048918f, -0.31742972f,
+ -0.03269987f, -0.13490497f, -0.03511707f, -0.003701831f,
+ 0.024309402f, -0.03652601f, -0.019658307f, 0.064287804f,
+ -0.044906896f, 0.18838996f, 0.5800624f, 0.0489327f,
+ -0.013741884f, -0.1463824f, 0.41280955f, -0.39657968f,
+ -0.22094302f, 0.021620726f, 0.06754212f, 0.01914351f,
+ 0.057791635f, -0.08462072f, 0.10943695f, -0.15771161f,
+ 0.020891378f, -0.14356568f, 0.07099027f, 0.0072890325f,
+ 0.30583042f, -0.054003328f, -0.20160842f, -0.05109723f,
+ -0.073696665f, 0.07079835f, 0.050535556f, -0.1386965f,
+ 0.13956863f, -0.033268258f, 0.051163133f, -0.3299929f,
+ 0.14722784f, 0.04479772f, -0.034851987f, 0.09152712f,
+ -0.013576469f, 0.08212124f, 0.04366362f, 0.052677043f,
+ 0.12854135f, -0.20400403f, 0.13585025f, 0.021291919f,
+ 0.6106778f, 0.03280244f, 0.6618558f, 0.010743958f,
+ -0.47789448f, -0.23268737f, 0.29747304f, -0.0043874676f,
+ 0.030395813f, -0.01416444f, -0.11479771f, -0.14839633f,
+ 0.1327711f, 0.39874923f, 0.07290827f, 0.08768036f,
+ 0.19624479f, 0.028556399f, 0.008063483f, -0.039568193f,
+ 0.047924913f, -0.41591546f, -0.5199549f, 0.012532293f,
+ 0.0031062674f, 0.041904118f, 0.14968546f, -0.2954595f,
+ 0.5711544f, -0.018007848f, -0.1187696f, 0.006382767f,
+ -0.07623751f, 0.11004023f, -0.29377073f, 0.2967224f,
+ -0.0042043244f, 0.49871373f, -0.11996741f, -0.04853217f,
+ 0.2742492f, -0.18625423f, 0.10374811f, 0.10584355f,
+ 0.11635925f, -0.09287576f, -0.083618164f, -0.27217832f,
+ -0.37832612f, 0.96235126f, -0.07846141f, 0.07666849f,
+ -0.7282468f, -0.049017057f, 0.015335578f, -0.1913724f,
+ -0.8404892f, 0.35348907f, 0.0007533626f, -0.03490046f,
+ -0.12864292f, -0.23313756f, 0.014800447f, 0.07538264f,
+ -0.4744575f, 0.0019865024f, 0.011663446f, 0.029772537f,
+ -0.2382581f, 0.057398744f, -0.29506052f, 0.06907142f,
+ -0.029674232f, -0.20632058f, 0.08927787f, -0.4543019f,
+ 0.07989503f, -0.46033293f, 0.073787555f, -0.12172886f,
+ -0.7607957f, 0.02232548f, 0.0105672935f, 0.0673091f,
+ -0.00069879065f, 0.047686838f, -0.019173758f, -0.03846056f,
+ 0.024762023f, -0.10737568f, 0.09315246f, -0.9336785f,
+ -0.18223964f, -0.033037316f, -0.09616871f, 0.09074901f,
+ 0.01160752f, 0.00023968855f, 0.23658048f, -0.03555241f,
+ -0.036499016f, 0.9244435f, -0.30398262f, 0.20839591f,
+ 0.5949766f, 0.29482245f, 0.25750014f, -0.053599373f,
+ -0.03293568f, -0.0057265395f, -0.026553756f, -0.27830595f,
+ 0.17080984f, -0.8018825f, 0.01221246f, -0.2835773f,
+ -0.09898585f, -0.0070701726f, -0.008414906f, 0.08213352f,
+ -0.19505978f, 0.5015525f, 0.80230016f, -0.08646765f,
+ 0.63567483f, -1.0642571f, 0.5182278f, -0.096828446f,
+ -0.05344551f, -0.056020953f, -0.05707235f, -0.018617336f,
+ -0.5230437f, 0.34005353f, -0.4557868f, -0.14439894f,
+ 0.38480377f, -1.3235939f, 1.8052317f, -0.72057134f,
+ 0.9126798f, 0.3676458f, -0.0080114575f, -0.11595554f,
+ -0.103040844f, 0.035603534f, -0.015758205f, 0.07999699f,
+ -0.006971836f, 1.6570647f, 0.2554021f, -0.21877348f,
+ 0.0020116605f, 0.11209725f, 0.8904091f, -1.1218871f,
+ 1.4163808f, 0.14892934f, 0.006312167f, -0.065382436f,
+ 0.023434175f, 0.043887693f, -0.43947184f, -0.066447034f,
+ -0.05484326f, 0.0056940434f, 0.32978708f, -0.22046088f,
+ -0.9243625f, -0.26284355f, -0.4704563f, 0.11848836f,
+ 0.048912488f, -0.010977471f, 0.07930389f, -0.04216015f,
+ 0.4962294f, -0.42514783f, -0.034328513f, 0.28654203f,
+ -0.061215926f, 0.15865158f, -0.05742608f, -0.35354927f,
+ 0.5760551f, -0.32362577f, -0.7639785f, -0.24093197f,
+ 0.8416991f, 0.8121987f, -0.51095843f, 0.23165523f,
+ 0.07161821f, 0.02869675f, 0.8572826f, 0.030069608f,
+ -0.04059496f, 0.121984705f, -0.8305223f, 0.19240989f,
+ -0.9800724f, 1.2104095f, -2.3459392f, 0.821266f,
+ 0.8199659f, 1.1952082f, -0.11307323f, 0.15900673f,
+ 0.37324476f, -0.00901551f, -0.0063961255f, 0.3436898f,
+ -0.019784855f, -1.5781275f, 0.55635923f, -0.088165246f,
+ -0.089846924f, 0.48113683f, -1.2748227f, -0.30893058f,
+ -1.0148634f, 0.144896f, 0.33884206f, -0.055583563f,
+ -0.04183638f, -0.22956437f, 0.5929827f, -0.17173627f,
+ 0.08415828f, 0.08928949f, -1.3766861f, -0.66887f,
+ -0.33084556f, 0.015637277f, 0.17392366f, -0.124815434f,
+ -0.034929127f, 0.08000754f, 0.06421893f, -0.2598851f,
+ -0.13899769f, 0.13867772f, 0.04168338f, 0.49056658f,
+ 1.0300015f, -0.030438267f, 0.11001292f, 0.62731254f,
+ 0.05973872f, 0.979931f, -0.8919011f, 0.28131783f,
+ -0.09346065f, -0.5158018f, 0.22534059f, 0.53414f,
+ -1.30939f, -0.010872453f, -0.61851317f, -0.04308007f,
+ 0.30164596f, -0.28872985f, 0.6384374f, -0.05910474f,
+ 0.5832805f, -0.7048056f, 0.33323365f, -1.1084536f,
+ 0.70449936f, -1.8504816f, 0.008978661f, -0.19915931f,
+ -0.9858322f, 0.10512383f, -0.025395656f, 1.3993329f,
+ -0.028837258f, 1.8859462f, -0.28787547f, 0.14018701f,
+ 0.030354962f, -0.011389586f, 0.48661262f, -0.69561386f,
+ 1.3474137f, -0.16131014f, -0.2688697f, -0.28446344f,
+ -0.09610444f, 0.1720655f, 0.27081022f, 0.22686748f,
+ -0.18199518f, 0.661283f, 0.91053754f, 0.30152312f,
+ 0.02319523f, -0.4257972f, 0.37422857f, 0.039165173f,
+ 0.04694271f, -0.20457137f, -0.17133068f, 0.048189476f,
+ 0.43752974f, -1.027162f, -0.086497605f, -0.010030861f,
+ -0.38085717f, -0.030893505f, 0.0038837674f, -0.32170814f,
+ 0.20521568f, -0.6564224f, -0.456026f, -0.20190556f,
+ -0.45532295f, 1.0338401f, 0.17268077f, -0.018443432f,
+ 0.47271976f, -0.0029546216f, 0.2591139f, -0.027547639f,
+ -0.34917423f, 0.7324974f, -1.4116933f, 0.26277366f,
+ 0.003953574f, -0.08849687f, 0.5799557f, 0.02265028f,
+ 0.9956517f, 0.20597336f, 0.0243701f, -0.065926135f,
+ -0.26063347f, 0.005145106f, -0.040647544f, -0.5246113f,
+ -0.032949716f, -0.3842233f, 0.2490879f, -0.12214436f,
+ 0.00092013256f, 0.05368562f, 0.4980927f, -0.3821752f,
+ -0.9746551f, -0.09184542f, -0.02170654f, -0.25944722f,
+ -0.07797552f, -0.1731825f, -1.1407802f, -0.06579885f,
+ 0.048637766f, -0.10273871f, 0.7226834f, 0.1051687f,
+ -0.675876f, -0.23160712f, 0.13932365f, -0.3109556f,
+ -0.16254301f, 0.004054364f, -0.101571485f, 0.34141943f,
+ 0.5158648f, -0.18641707f, 0.1514879f, -0.54648817f,
+ -0.46785563f, -0.048889644f, 0.03416854f, 0.11833223f,
+ 0.4963859f, -0.033280317f, -0.5098967f, 0.3247369f,
+ -0.059735235f, 0.95467275f, 1.1799345f, 0.08239173f,
+ 0.37549368f, -0.10384936f, -0.19131805f, -0.05227246f,
+ 0.93128794f, 0.1769598f, 0.26859936f, 0.04983612f,
+ 0.19740231f, 0.29193434f, 0.31630036f, 0.4617379f,
+ 0.900637f, -0.500469f, -0.07832846f, -0.16936824f,
+ 0.48466104f, -0.041119654f, -0.08462446f, -0.68950397f,
+ 0.04631842f, 0.54778326f, 0.1338306f, 0.4341834f,
+ 0.14371982f, -0.34779876f, -0.24549949f, -0.89762527f,
+ 0.38836622f, -0.10706622f, -0.1931988f, -0.11792283f,
+ 0.0035790345f, 0.33384633f, 1.3935994f, 0.3070505f,
+ -0.16708173f, -0.20717686f, -1.1201156f, 0.7722406f,
+ -0.08369808f, 0.24140514f, -0.8074505f, 0.21041206f,
+ 0.07052478f, -0.0992914f, -0.08230787f, -0.20418759f,
+ -0.14002877f, 0.51368827f, -0.06314002f, 0.6684959f,
+ -0.2723895f, 0.072143145f, -0.121543154f, -0.9446662f,
+ 0.7801356f, 0.7813523f, -0.60231173f, -0.041328736f,
+ 0.5023119f, 0.19410098f, -0.17512462f, -0.03537046f,
+ 0.13634318f, 0.023312362f, 0.3242475f, -0.0042878226f,
+ -0.33574507f, 0.16946486f, 0.4183852f, 0.51513636f,
+ 0.14975318f, -1.3054739f, -0.746688f, -0.8801606f,
+ 0.5497791f, 0.048051637f, 0.3759283f, 0.31506863f,
+ 0.2502755f, -0.054758083f, 0.10454956f, 0.1691291f,
+ 0.042567298f, -1.5660353f, -0.31068772f, -0.28079906f,
+ -0.024366086f, 0.28031284f, -1.0634004f, 0.2108564f,
+ -0.41109252f, 0.06184334f, 0.38427737f, 0.44320226f,
+ 0.03957711f, 0.004129623f, -0.31172767f, -0.15918258f,
+ 0.1326007f, 0.44373193f, 0.78900695f, -0.1760957f,
+ -0.16458939f, 0.48684084f, 0.24407406f, -0.30311462f,
+ -0.16764544f, 0.26463488f, 0.30706203f, 0.22452609f,
+ 0.03442557f, -0.19601104f, 0.0807709f, 0.33969784f,
+ 0.37965566f, -0.07889159f, 0.039907616f, 1.0991075f,
+ -0.4089549f, -0.31498322f, 0.16044329f, 0.15731367f,
+ -0.7579591f, 0.6460394f, 0.0046346104f, 0.0472538f,
+ -0.52719986f, -0.07572972f, 0.66765577f, 0.094688304f,
+ 0.22829652f, 0.02697642f, 1.3646461f, -1.0294485f,
+ 0.32645002f, 0.985207f, -0.48907226f, 0.24017715f,
+ 0.7846768f, -0.3893203f, 0.041490614f, 0.17593683f,
+ 0.22703595f, -0.023705255f, 0.052981924f, -0.28682443f,
+ 0.05020945f, -0.37853613f, -0.036045365f, 0.20786847f,
+ 0.034319263f, 0.058425084f, 0.17980011f, 1.0989101f,
+ -0.36878836f, -0.058031064f, 0.01689887f, 0.35156643f,
+ 0.054320306f, 0.12823732f, -0.7314487f, 0.12663695f,
+ -0.008609773f, -0.28736416f, 0.8887259f, 0.22080967f,
+ -0.49281853f, -0.71532553f, 0.3902669f, 0.16677961f,
+ 0.11729585f, -0.005339085f, 0.015549244f, -0.7530055f,
+ -0.18213952f, 0.86832607f, -0.10606119f, -1.0991435f,
+ 0.24169695f, -0.09348218f, 0.011970132f, -0.1062844f,
+ -0.60076994f, 0.14488591f, -0.37456793f, -0.1606147f,
+ -0.522324f, 0.18760403f, 0.27903914f, -0.4969156f,
+ -0.352278f, 0.04724763f, -1.2687259f, 0.025117675f,
+ 1.1559798f, -0.87893057f, 0.087309524f, -0.08584089f,
+ -0.020828197f, -0.045017093f, 1.212271f, 0.45598748f,
+ 0.89593214f, 0.42855322f, -0.05613323f, -0.09234977f,
+ -0.11786892f, 0.059708573f, 0.097749226f, -0.13230008f,
+ -0.052386533f, 0.4205756f, -0.6480817f, -0.2275672f,
+ -0.08140867f, -0.31374398f, 0.3735192f, -0.62694097f,
+ 0.73815274f, 0.08312054f, -0.0924495f, 0.021514803f,
+ 0.053884946f, -0.10900521f, -0.41072857f, -0.21020694f,
+ 0.041961685f, 0.06188188f, -0.5475027f, -0.3411637f,
+ -0.39764288f, 0.5900751f, 0.37223083f, -0.1108904f,
+ -0.07866411f, 0.008883312f, -0.012757348f, 0.2694886f,
+ 0.6689537f, -0.3504275f, 0.03389823f, 0.031843357f,
+ -0.5419896f, 0.022275751f, 0.009060438f, 0.3633925f,
+ -0.43923414f, 0.7864955f, -0.118183985f, -0.15515181f,
+ 0.21635044f, 0.49661508f, -0.4722201f, 0.5163968f,
+ 0.9700302f, -0.044228435f, 0.6457148f, 0.0017951588f,
+ -0.49664235f, 0.050343726f, -0.19076023f, -0.30561933f,
+ -0.23653527f, 0.45331326f, -0.41963464f, -1.1247996f,
+ 0.22692493f, 0.59337515f, -0.2237175f, -0.01918548f,
+ -0.44020566f, -0.027704136f, -0.04253981f, -0.3823013f,
+ -0.02502749f, -0.46320587f, 0.16625318f, 0.15970246f,
+ -0.007429975f, -0.1683428f, 0.76946366f, -1.2303258f,
+ -0.95331824f, 0.052714635f, -0.17677064f, -0.09253482f,
+ 0.021721262f, -0.15922648f, 1.1512754f, 0.0031821122f,
+ 0.030584762f, 0.21514477f, -0.4230814f, -0.00014326212f,
+ 0.1688291f, -0.5380872f, -0.15794986f, 0.28297946f,
+ 0.13241048f, -0.075477324f, -0.11189966f, -0.49272132f,
+ -0.20409596f, 0.6171119f, -0.01777885f, 0.028663076f,
+ 0.30929625f, 0.025719853f, -0.03694918f, -0.56768686f,
+ 0.1775044f, -0.2769967f, -0.5732568f, 0.07951842f,
+ 0.06743672f, -0.013239328f, 0.9011393f, -0.18373159f,
+ 0.11558731f, 0.123553514f, 0.0044899555f, -0.013636768f,
+ 0.23078315f, 0.34557414f, -0.7334669f, 0.5137294f,
+ 0.011534466f, -0.21156578f, 0.7697923f, 0.15463492f,
+ -0.5901611f, 0.028582644f, 0.017852113f, -0.07857407f,
+ -0.4777054f, 0.06458535f, 0.06914719f, -0.06420497f,
+ 0.046576172f, 0.73274297f, -0.5026898f, 0.13529554f,
+ -0.00941928f, 0.25313148f, -0.37075043f, -0.2733768f,
+ 0.065498896f, 0.038754348f, -0.015358937f, 0.094372556f,
+ -0.08542737f, 0.06419397f, 0.20445304f, 0.18457255f,
+ -0.07349663f, 0.23186208f, -0.17375587f, 0.1813076f,
+ 1.2848791f, 0.9271832f, 0.39130297f, 0.0104423165f,
+ 0.031900086f, -0.10575629f, -0.071113825f, -0.2813745f,
+ -0.63900816f, -0.3010183f, -0.078159384f, -0.3896904f,
+ 0.3688795f, -0.119128644f, 0.077123255f, -0.047321837f,
+ -0.7008967f, 0.17933623f, 0.11333183f, 0.011499413f,
+ 0.607434f, 0.69931144f, 0.17165236f, -0.1361541f,
+ 0.5183956f, -0.008188635f, 0.24646443f, -0.008420727f,
+ -0.71537113f, -0.74191815f, 0.43494743f, 0.5137038f,
+ -0.1907198f, 0.109988324f, -0.3980153f, -0.44217053f,
+ -0.39546895f, 0.3968704f, 0.014194501f, 0.0490976f,
+ -0.10890121f, -0.047488034f, -0.08533077f, -0.38523468f,
+ -0.063952215f, -0.36171728f, 1.3895638f, -0.18317534f,
+ 0.004864246f, -0.10929064f, -0.09027185f, 0.6888102f,
+ -0.644277f, 0.08041566f, -0.076905385f, 0.05812857f,
+ 0.07392323f, -0.12644598f, 0.026674818f, -0.18673258f,
+ 0.09689631f, -0.2628735f, -0.25706333f, -0.39390376f,
+ -0.4951419f, -0.94046056f, 0.017409422f, -0.099073075f,
+ -0.11927845f, 0.14758973f, 0.062230386f, -0.8272258f,
+ -0.85650516f, -0.5034178f, 0.14160982f, -0.35882106f,
+ -0.12686756f, 0.0969981f, -0.17357199f, -0.1016007f,
+ -0.30692658f, 0.73137844f, 0.51190776f, 0.094313726f,
+ 0.68952423f, -0.33750173f, 0.4584838f, 0.00045639463f,
+ -0.22498818f, -0.03972586f, -0.30972204f, 0.06765716f,
+ 1.0040592f, 1.2720892f, -0.12680252f, -0.16533485f,
+ -0.9031853f, 0.025274767f, 0.4374573f, -0.0017714903f,
+ 0.27475032f, -0.30898345f, -0.17943485f, -0.093494624f,
+ 0.33200723f, -0.003868301f, 0.006973397f, -0.46648303f,
+ 0.060371667f, -0.37320092f, 0.15722525f, 0.2487535f,
+ 0.0042585013f, 0.31561005f, -0.1151895f, -0.5503925f,
+ 0.62729096f, -0.019816924f, 0.14519577f, -0.23005262f,
+ 0.0049698725f, 0.13356787f, 0.07876236f, 0.11001108f,
+ -0.028032063f, -1.3307017f, -0.06598647f, 0.2910977f,
+ -0.008249967f, -0.09258802f, -0.61329556f, 0.13149554f,
+ 0.087250404f, -0.07198767f, -0.0064592697f, -0.0738384f,
+ 0.19079113f, -1.068451f, -0.09496136f, -0.000341748f,
+ 0.90756285f, -0.008928536f, 0.12384436f, 0.22698209f,
+ 0.4866184f, 0.041644946f, -0.15970235f, 0.02174098f,
+ 0.4970642f, -0.24010655f, -0.26073715f, 1.0649153f,
+ -0.46890327f, 0.053935613f, -0.79150695f, -0.055312715f,
+ -0.17689951f, 0.28245515f, -0.054626778f, -0.06193034f,
+ -0.0028709057f, -0.036895722f, -0.57166326f, 0.38450122f,
+ -0.099760406f, -0.06808836f, 0.20637059f, 0.014000514f,
+ -0.21060416f, -0.026943302f, -0.008706633f, 0.16452776f,
+ 0.008026457f, -0.29122934f, 0.8303414f, -0.12333763f,
+ 0.009050507f, 0.70525366f, 0.62096506f, 0.4900359f,
+ 0.9831365f, -0.05575002f, -0.06924361f, 0.095837f,
+ 0.06918361f, -0.008072401f, -0.10670196f, -0.01943345f,
+ -0.0072479197f, -0.29566485f, 0.12579326f, -0.14184883f,
+ -1.0289804f, -0.70995533f, -0.15975907f, -0.029099256f,
+ -0.03375278f, 0.061063007f, 0.020239409f, -0.823185f,
+ -0.48817238f, 0.95726126f, 0.05110191f, 0.9522512f,
+ -0.39398512f, 0.07514176f, -0.02450375f, 0.16414882f,
+ -0.3778163f, -0.14328916f, -0.23608033f, -0.098305546f,
+ -1.2154307f, 0.03519007f, -0.06572301f, 0.0031483087f,
+ -0.32979482f, -0.023844222f, -0.25152838f, 0.06280502f,
+ -0.5603487f, 0.22348763f, -0.22049682f, -0.5489126f,
+ 0.050499804f, -0.22933632f, 1.2048659f, 0.085301846f,
+ 0.53779286f, -0.04541708f, -0.42714235f, -0.114994355f,
+ 0.077430025f, 0.0019177721f, -0.022488091f, 0.4067963f,
+ 0.025118781f, -0.37767127f, -0.5273275f, 0.3877572f,
+ -0.08213132f, 1.6665092f, -0.3122936f, 0.2684743f,
+ -0.885766f, 0.18616807f, 0.3564835f, -0.14651437f,
+ -0.011919897f, -0.03195618f, 0.1152242f, -0.051294573f,
+ 0.082694925f, 0.25671086f, -0.0695763f, 0.06358117f,
+ 0.74922425f, 0.36549798f, 0.3604688f, 0.19808912f,
+ 0.11861682f, -0.11772792f, 0.023446508f, 0.19055665f,
+ 0.09591083f, 0.39769763f, -0.10193978f, 0.6399084f,
+ -0.118168056f, -0.025860926f, 0.09197376f, 0.25056756f,
+ -0.8823866f, -0.1034859f, -0.1393422f, 0.12775324f,
+ -1.0833702f, 0.55493206f, -0.55619854f, 0.10329987f,
+ 0.57847714f, 0.060047545f, 0.6049074f, -0.12549861f,
+ -0.022799013f, -0.73334527f, 0.7079563f, 0.3016133f,
+ -0.2209651f, 0.17532831f, -0.65859646f, 0.011872502f,
+ -0.044833202f, 0.05802466f, 0.49906757f, 0.14276251f,
+ 0.9737522f, -0.0036204476f, 0.0028946085f, -0.056772333f,
+ -0.038172066f, 0.6197196f, -0.01639909f, -0.38761434f,
+ 0.072124764f, 0.06785335f, -0.6001445f, 0.9029481f,
+ 0.48170623f, -0.24380372f, -0.22275232f, 0.14893897f,
+ -0.024422985f, 0.087934524f, 0.95391107f, 0.011719784f,
+ -0.10277132f, 1.573545f, -0.027059387f, 0.3247061f,
+ 0.99540097f, 1.443773f, 0.05386302f, -0.23261318f,
+ -0.12469175f, 0.13316385f, 0.016029045f, -0.0063711936f,
+ 0.01762945f, 0.36611274f, 0.08972508f, 0.30712077f,
+ -0.26090217f, 0.0031268331f, -0.11014641f, -0.5720738f,
+ -0.5639281f, 0.019921884f, 0.51711327f, -0.16300824f,
+ -0.13510548f, 0.17063567f, 0.38829276f, -0.29442516f,
+ 0.084774755f, -0.05248659f, -0.5395793f, 0.12503177f,
+ 0.5452999f, 0.55447555f, -0.45326382f, 0.3414917f,
+ 0.2836259f, 0.02962363f, -0.592555f, -0.03465222f,
+ -0.025140282f, 0.20495126f, 0.06391735f, 0.15052867f,
+ 0.21320514f, 0.039794207f, 0.030232532f, -0.14236775f,
+ 0.013585668f, 0.1326012f, 0.41451913f, 0.07357894f,
+ -0.014308767f, 0.6170127f, -0.372488f, -0.05951878f,
+ -0.6931575f, 0.02011225f, -0.08121963f, -0.078647174f,
+ -0.106735334f, -0.041893844f, 0.4213713f, 0.021669546f,
+ -0.036483373f, -1.3079649f, -0.19947098f, 0.24933967f,
+ 0.43800384f, 0.9655616f, 0.2552877f, -0.0019412349f,
+ 0.03308606f, 0.006003238f, 0.07148713f, 0.22389409f,
+ 0.2680311f, 0.49049807f, -0.030111598f, -0.072276965f,
+ -0.67143995f, -0.13021722f, 0.0038304636f, -0.084877305f,
+ 0.3546851f, 0.0014745921f, 0.009995153f, 0.15942898f,
+ 0.7030296f, -0.06200087f, 0.16187207f, -0.0014681758f,
+ 0.34708276f, 0.042232294f, -0.42565167f, 0.04119306f,
+ 0.5375523f, -0.64575267f, -0.07403678f, -0.2334629f,
+ 0.6109085f, -0.87409884f, 0.7713701f, -0.4826039f,
+ -0.30480117f, 0.30053002f, 0.1462264f, -0.12091676f,
+ -0.1582895f, 0.0046089278f, 0.004810011f, 0.113557115f,
+ -0.039927945f, -0.35131967f, 0.051165875f, -0.39044905f,
+ 0.091032326f, -0.25981817f, 0.22634125f, -0.14027756f,
+ 0.049981806f, -0.0467415f, -0.14341736f, 0.23024786f,
+ 0.09546332f, 0.12248355f, -0.7858108f, 0.063256726f,
+ 0.016779812f, 0.37885863f, 0.35680738f, -0.27929777f,
+ -0.40441898f, 0.13013232f, -0.34245622f, -0.039367046f,
+ -0.06399504f, -0.043711066f, -0.11576525f, 0.67227155f,
+ 0.3619514f, -0.07882113f, 0.004442097f, -0.40862623f,
+ -0.19893081f, 0.111571774f, -0.10046477f, -0.016046414f,
+ -0.16379161f, -0.29523376f, 0.063762076f, -0.20367733f,
+ 0.20983404f, -0.35274857f, 0.10470164f, -0.18603796f,
+ -0.86547214f, -0.10827245f, -0.8721894f, 0.050294425f,
+ 0.25122395f, 0.194495f, -0.19602104f, -0.2963323f,
+ 0.3040308f, 1.2060019f, -0.4322342f, 0.29893824f,
+ 0.53474873f, -0.47262055f, -0.30938658f, 0.04530289f,
+ -0.63986933f, -0.023553003f, 0.0028545316f, 0.0059051644f,
+ 0.017317161f, 0.33975446f, -0.22744276f, 0.2041872f,
+ -0.08495383f, -0.13449326f, 0.15414521f, 0.24521166f,
+ -0.09439226f, 0.060709234f, 0.13547389f, -0.22402775f,
+ -0.036962923f, -0.19246994f, 0.34138623f, -0.121779226f,
+ 0.03968929f, -0.8482405f, 0.22754039f, -0.28667283f,
+ -0.44498968f, -0.60010904f, -0.3601931f, 0.061218426f,
+ 0.069286086f, -0.0030529562f, 0.029059855f, 0.377279f,
+ 0.105468936f, -0.35330158f, 0.018554715f, -0.13633803f,
+ 0.7281722f, -0.0046950183f, 0.123859f, 0.03714201f,
+ -0.04469041f, -0.111670636f, -0.32531464f, 0.09333545f,
+ 0.47098127f, 0.2274033f, -0.17244692f, 0.25584722f,
+ 0.34795192f, 0.081313774f, 1.0746405f, -0.13414536f,
+ -0.3979964f, -1.0879383f, 0.36208192f, 0.15792575f,
+ 0.122745596f, -0.023249758f, 0.05964052f, -0.0060077743f,
+ 0.021397233f, -0.42065015f, -0.13975693f, -0.037741337f,
+ -0.063053966f, 0.025943968f, -0.011683591f, -0.008706891f,
+ 0.007145784f, 0.26263484f, 0.31879652f, 0.014681194f,
+ 0.00654473f, 0.08251991f, 0.28295973f, -0.039998922f,
+ -0.21669704f, 0.1660612f, 0.07474764f, -0.15964223f,
+ -0.025208466f, -0.054200947f, -0.026033727f, -0.078104705f,
+ -0.022985185f, -0.01506758f, 0.0026671444f, -0.083349444f,
+ -0.006899891f, 0.45605922f, -0.07585411f, -0.03942136f,
+ -0.013859746f, -0.011474223f, 0.0064103715f, 0.0122716725f,
+ 0.101682894f, 0.1016815f, 0.024777308f, 0.01471872f,
+ 0.34514418f, 0.046117976f, -0.03203467f, 0.05374025f,
+ 0.05236815f, -0.005288516f, 0.039844617f, 0.05726062f,
+ -0.28553554f, -0.12280083f, -0.010398416f, -0.051934347f,
+ 0.05713223f, -0.02810472f, 0.04347635f, -0.005164778f,
+ 0.012373663f, 0.2718315f, 0.48957554f, -0.013845285f,
+ -0.06987528f, -0.035763822f, 0.03597708f, -0.022896944f,
+ 0.0068812207f, -0.14976381f, 0.07771851f, 0.078737654f,
+ 0.53912544f, -0.013667609f, 0.009509036f, -0.0058935652f,
+ -0.013410584f, -0.36920217f, 0.20532338f, 0.05188507f,
+ -0.013276654f, -0.0022585627f, -0.34951398f, -0.22259676f,
+ 0.1721818f, -0.022042798f, -0.06965093f, 0.04736011f,
+ -0.018319689f, -0.016166708f, 0.04395636f, 0.027602723f,
+ -0.009085259f, -0.1230529f, 0.05030763f, -0.009185757f,
+ -0.00024862285f, 0.5558705f, -0.078649014f, 0.0034227618f,
+ 0.014880684f, 0.011291685f, -0.0037412557f, 0.11232719f,
+ 0.10180813f, -0.1452423f, -0.020468978f, 0.0028362588f,
+ -0.34611276f, -0.061698016f, 0.02405149f, 0.06947595f,
+ -0.17364088f, -0.07227603f, -0.064481646f, 0.037099563f,
+ -0.16279651f, -0.04401294f, -0.044543244f, -0.038924396f,
+ 0.019953627f, 0.025663488f, 0.007677187f, -0.016340453f,
+ 0.0077102105f, 0.09823559f, 0.20692164f, -0.17961378f,
+ -0.18084644f, 1.9230658e-05f, 0.05647889f, 0.014703978f,
+ 0.010008401f, -0.1121624f, -0.017601665f, -0.07639821f,
+ 0.19516668f, 0.005743868f, -0.008852902f, 0.0305475f,
+ -0.0029133484f, 0.09002025f, -0.01992898f, -0.014376694f,
+ 0.01167537f, -0.026024926f, -0.2789509f, -0.032265384f,
+ 0.113168105f, -0.05364941f, -0.1574542f, 0.09376676f,
+ 0.020710552f, 0.06075086f, 0.008636697f, 0.072762854f,
+ 0.000179895f, 0.3456567f, 0.025678432f, -0.074387185f,
+ 0.026792154f, -0.25800395f, 0.07881812f, 0.046434067f,
+ 0.012625898f, -0.028284889f, -0.02491126f, 0.023944272f,
+ 0.009710916f, 0.16511695f, -0.031247023f, 0.0018563486f,
+ 0.15395331f, -0.0076460512f, -0.020389149f, 0.049093336f,
+ 0.10382156f, -0.035351314f, 0.009565356f, -0.06323532f,
+ -0.29214263f, -0.0023359917f, -0.17818227f, -0.009895879f,
+ -0.046099875f, 0.0024482138f, 0.06532132f, 0.010954204f,
+ -0.07110699f, 0.02198267f, -0.088628165f, -0.09141581f,
+ 0.0760771f, 0.027118789f, 0.15048158f, -0.11901542f,
+ -0.37259945f, 0.19362882f, -0.030802073f, -0.13634822f,
+ -0.35675076f, 0.01467977f, 0.029831393f, -0.07370825f,
+ -0.002126716f, 0.31909248f, 0.24852262f, -0.10933074f,
+ 0.011671194f, -0.071767226f, 0.06898677f, 0.06327687f,
+ 0.22762035f, -0.077095106f, -0.08108688f, 0.03255345f,
+ 0.055702865f, 0.107977f, -0.0034886738f, 0.037626922f,
+ -0.0030516917f, -0.21344364f, -0.014818139f, 0.05246243f,
+ -0.035879076f, 0.22751032f, 0.04005838f, 0.0073741595f,
+ -0.009191947f, -0.029188117f, -0.05811093f, 0.040719096f,
+ 0.048099697f, 0.3855574f, -0.0060555036f, 0.042787604f,
+ -0.55800605f, 0.009897925f, 0.019569527f, -0.2915962f,
+ -1.0781194f, 0.03292253f, -0.018410714f, -0.07187909f,
+ -0.19825383f, -0.067948304f, 0.22056298f, 0.04947223f,
+ -0.105174944f, 0.0024802985f, -0.08754306f, 0.004542315f,
+ 0.3870724f, 0.29234722f, -0.0047889245f, 0.30710196f,
+ 0.53463006f, -0.11273465f, -0.12457816f, -0.0010187149f,
+ 0.19961236f, 0.36136612f, -0.15468979f, 0.04062258f,
+ -0.16186167f, -0.024962962f, -0.024773614f, -0.0114295585f,
+ 0.01684022f, 0.36041167f, -0.21948388f, 0.1915662f,
+ -0.0047973706f, -0.43040618f, 0.05966985f, -0.00027674646f,
+ -0.41713512f, 0.07617185f, 0.27380827f, -0.09441982f,
+ -0.0040086485f, -0.028672814f, 0.24157865f, -0.09339134f,
+ 0.012112252f, 0.2147801f, 0.020150393f, 0.066439584f,
+ 0.07170433f, -0.3875427f, -0.33050987f, -0.0102263875f,
+ 0.0044189366f, 0.042367075f, 0.026449542f, 0.051484115f,
+ 0.115683354f, -0.6007919f, 0.007763368f, 0.016719684f,
+ -0.401863f, 0.06625697f, 0.04040015f, 0.012912467f,
+ 0.12198498f, 0.11934922f, -0.11683646f, 0.072028115f,
+ 0.17331858f, 0.008202952f, 0.0717959f, 0.060011692f,
+ 0.10465313f, -0.0033135333f, -0.26371318f, -0.045101274f,
+ 0.15265273f, -1.0523217f, 0.13903184f, 0.25599927f,
+ 0.6859134f, -0.039007068f, -0.21193312f, 0.021606816f,
+ 0.04495826f, 0.4505658f, 0.24516907f, 0.07692408f,
+ 0.07059295f, 0.022104615f, 0.043220505f, 0.04952006f,
+ 0.0057651624f, -0.06064482f, 0.07827498f, -0.04013409f,
+ 0.0035875516f, -0.09289838f, -0.21662554f, 0.13522758f,
+ 0.024368195f, -0.024605986f, 0.05762151f, 0.051305596f,
+ -0.037394065f, -0.07724804f, 0.15341327f, 0.0049413475f,
+ -0.011528657f, 0.21325362f, -0.03920411f, 0.06890001f,
+ 0.111433074f, 0.50785357f, -0.021456238f, -0.050302096f,
+ -0.01242706f, 0.006727743f, 0.045685824f, -0.058312602f,
+ -0.002096912f, 0.9976318f, 0.013712047f, -0.010744051f,
+ 0.2977653f, -0.0652747f, 0.018005906f, 0.12224006f,
+ -0.6974484f, 0.05781479f, 0.025902355f, 1.8219562e-05f,
+ 0.3851496f, -0.028707527f, -0.4370785f, 0.0078269f,
+ -0.0039666896f, -0.008514037f, -0.30792361f, 0.062474824f,
+ 0.022263365f, -0.15652551f, 0.4308204f, -0.32283765f,
+ -0.08207422f, -0.0149213085f, -0.113489695f, 0.3649257f,
+ -0.12870748f, -0.22169471f, 0.28754982f, 0.090529054f,
+ -0.8036505f, 0.011512394f, 0.002014808f, -0.04100507f,
+ -0.005321597f, -0.1538057f, -0.25856143f, -0.03328444f,
+ 0.0028614898f, -0.060954306f, -0.027022852f, 0.12675719f,
+ -0.47103256f, -0.06039225f, -0.064616665f, 0.090020925f,
+ -0.073906496f, -0.032930996f, -0.078331895f, 0.007586858f,
+ -0.0403489f, 0.008083122f, 0.004606347f, 0.14762938f,
+ -0.13229391f, -0.0061374195f, 0.123903476f, -0.071201965f,
+ -0.03049885f, 0.03565021f, 0.04874859f, 0.054224003f,
+ 0.05604062f, -0.36935982f, 0.029095598f, 0.054800812f,
+ 0.55237657f, -0.041265935f, -0.011401279f, -0.037793204f,
+ 0.22366779f, -0.05610134f, 0.07530306f, -0.058228277f,
+ -0.3007927f, -0.730336f, -0.018644769f, -0.032974146f,
+ -0.16306789f, -0.011114965f, -0.09814073f, 0.03074098f,
+ 0.101149805f, 0.18346871f, -0.09223584f, -0.07340539f,
+ 0.042115815f, -0.25919664f, 0.49065873f, -0.3355628f,
+ 0.53187764f, -0.18840909f, -0.04954688f, -0.0322028f,
+ 0.5673649f, -0.02246416f, -0.015110285f, 0.11297663f,
+ -0.019531759f, -0.5835388f, 0.37239715f, -0.07871147f,
+ -0.018180532f, -0.27714783f, 0.15716344f, 0.098184004f,
+ 0.5965115f, 0.0115454225f, -0.0670172f, -0.03500153f,
+ 0.03706175f, -0.028436407f, -0.1787384f, -0.014865955f,
+ 0.046985667f, -0.12098046f, -0.060189165f, 0.0084932f,
+ -0.4346995f, -0.3784685f, -0.24981418f, 0.06690141f,
+ 0.013306233f, -0.017288689f, 0.020521985f, 0.023114365f,
+ 0.06277476f, 0.35805202f, 0.010422373f, 0.15102747f,
+ -0.64899176f, 0.013621945f, -0.022411961f, -0.022985032f,
+ -0.18592435f, 0.062330272f, -0.1652348f, -0.0128571f,
+ 0.35203636f, 0.12488081f, -0.06318143f, 0.09027019f,
+ 0.13472773f, 0.023164527f, 0.18613821f, -0.009319499f,
+ -0.038857754f, -0.029000249f, -0.19398957f, -0.006111455f,
+ -0.46944344f, 0.23341255f, 0.20324652f, 0.12675916f,
+ -0.5746145f, -0.14199808f, -0.09824572f, -0.008092041f,
+ -0.3465434f, 0.009044275f, -0.012658588f, 0.047024917f,
+ -0.0037835673f, 0.24975556f, -0.0648421f, -0.010510368f,
+ 0.0068081594f, -0.0723137f, 0.09379738f, 0.024135822f,
+ -0.41425082f, -0.020039983f, -0.0030550014f, -0.023276012f,
+ 0.006437845f, 0.061165266f, 0.16174817f, 0.040744834f,
+ -0.017515454f, -0.14204875f, -0.078848176f, -0.06925204f,
+ -0.0096742865f, 0.34718427f, -0.0794156f, -0.015814563f,
+ -0.0040620295f, -0.0060547697f, -0.058024988f, -0.100885436f,
+ -0.0576821f, -0.8391736f, -0.010777437f, -0.04822471f,
+ 0.36427936f, 0.04062056f, -0.02326814f, 0.07189806f,
+ 0.5600841f, 0.012207458f, -0.041943595f, 0.02435949f,
+ 0.38076973f, -0.122602865f, -0.052952226f, 0.06980154f,
+ -0.055258133f, -0.013687773f, -0.0856235f, -0.04374016f,
+ 0.09650116f, 0.29755f, -0.47976774f, 0.15719572f,
+ -0.32557812f, -0.025206277f, -0.031276036f, 0.057823833f,
+ -0.09089346f, 0.503004f, -0.006529944f, -0.025876073f,
+ -0.30078557f, -0.05259635f, 0.0032635273f, -0.046257973f,
+ -0.02316766f, -0.26077843f, 0.7320577f, -0.043850385f,
+ -0.033227257f, -0.05506104f, -0.24302953f, 0.058208752f,
+ 0.4221944f, -0.1568565f, -0.124339305f, 0.020135615f,
+ 0.11952597f, -0.047492266f, 0.03294807f, 0.043000266f,
+ 0.06636332f, 0.13762432f, 0.07293039f, 0.027872035f,
+ 0.26005533f, 0.34660113f, 0.051574808f, -0.02278254f,
+ 0.021317443f, 0.062619954f, -0.033112284f, 0.033078555f,
+ -0.07754032f, 0.30340594f, 0.04229149f, 0.1011f,
+ -0.93605536f, -0.0279014f, 0.065664195f, -0.07469741f,
+ 0.2900185f, -0.064222895f, -0.1184728f, 0.04473821f,
+ 0.37162083f, 0.3866583f, 0.17402013f, -0.011172565f,
+ 0.14724825f, 0.06985764f, -0.3215314f, -0.016214777f,
+ 0.10370639f, 0.06478165f, -0.3076502f, 0.06566887f,
+ 0.052055914f, 0.09171187f, -0.15219733f, 0.20973541f,
+ -0.09710595f, -0.20841539f, 0.006604662f, 0.0014135013f,
+ -0.1204219f, 0.07645794f, 0.009907881f, 0.15408614f,
+ 0.042608973f, 0.27650645f, 0.64020914f, 0.06414246f,
+ 0.0021227524f, 0.017464157f, 0.42234883f, 0.39741832f,
+ -0.18801786f, 0.08781363f, 0.019875262f, -0.034119435f,
+ -0.12910372f, 0.029834492f, 0.04959784f, -0.035403237f,
+ -0.09575419f, 0.07616226f, -0.029487915f, -0.06529359f,
+ 0.2640056f, 0.25360247f, -0.024585385f, 0.03528128f,
+ -0.03912399f, -0.09157948f, 0.028441116f, -0.09878465f,
+ -0.090702064f, -0.03699577f, -0.03778671f, -0.03099707f,
+ 0.8253499f, 0.014648578f, -0.023807703f, 0.12276291f,
+ 0.13683261f, 0.012393276f, -0.09710647f, -0.060594097f,
+ 0.3637277f, -0.12072426f, 0.13245226f, -0.0012597025f,
+ -0.1445149f, -0.035735946f, 0.13486508f, 0.002902589f,
+ -0.06783004f, -0.29527253f, -0.16234896f, -0.23000294f,
+ 0.10789907f, -0.024862438f, -0.020582909f, -0.03781267f,
+ -0.07737101f, 0.16471127f, -0.012005016f, 0.013442521f,
+ 0.008695317f, -0.036061253f, -0.00826367f, 0.04339891f,
+ -0.01615247f, 0.07068644f, 0.23048232f, -0.011837257f,
+ 0.0035089764f, 0.08488863f, -0.12142084f, 0.08498186f,
+ 0.16516931f, 0.047290962f, 0.13265212f, 0.00070049835f,
+ 0.026418207f, -0.023809984f, -0.1454881f, -0.024720045f,
+ 0.0011072542f, -0.3594184f, 0.080107115f, -0.0060178605f,
+ -0.22351952f, 0.29620695f, 0.072012f, -0.010723271f,
+ 0.05960017f, 0.052636843f, 0.009037887f, -0.019138843f,
+ 0.059447788f, -1.2984676f, -0.023149392f, 0.0020327843f,
+ -0.3092342f, -0.018714866f, -0.011115168f, -0.120765574f,
+ 0.25836888f, -0.00012626717f, -0.15590277f, 0.024720296f,
+ 0.23155403f, 0.06540557f, -0.1272455f, -0.16563734f,
+ 0.19736916f, -0.010581099f, 0.2613023f, 0.022265833f,
+ -0.22763121f, -0.06104306f, 0.34168476f, 0.050627157f,
+ 0.4505934f, -0.099938266f, -0.03717385f, 0.21582119f,
+ -0.1390078f, -0.568788f, 0.0003142876f, 0.10037417f,
+ -0.5478204f, 0.0006657814f, -0.006297763f, -0.05546984f,
+ -0.0012908723f, -0.036351852f, 0.4743353f, -0.033152323f,
+ 0.014712085f, 0.03156526f, 0.100179374f, 0.055466257f,
+ -0.41749266f, -0.0006258779f, 0.051372074f, -0.04356899f,
+ -0.034612022f, 0.052254967f, -0.17012389f, -0.0916247f,
+ -0.01833241f, 0.07664711f, 0.021573605f, -0.16185318f,
+ 0.11990656f, -0.17991622f, -0.0058188783f, 0.028227264f,
+ -0.02108333f, -0.025127675f, 0.0013046649f, 0.08473401f,
+ -0.04146249f, -0.17261878f, 0.0026823373f, 0.0020854294f,
+ 0.4964213f, 0.009009839f, -0.049275625f, 0.11792902f,
+ 0.7545057f, -0.0014132108f, 0.0017040063f, -0.034621894f,
+ 0.13339141f, 0.080961965f, 0.12928864f, 0.022553094f,
+ -0.2431439f, 0.01122458f, -0.21582563f, -0.014350744f,
+ -0.101545714f, 0.09464467f, 0.4213868f, -0.26705825f,
+ 0.3142573f, 0.16381992f, -0.5199926f, 0.24028027f,
+ -0.04669982f, 0.08559798f, -0.061597414f, -0.09440083f,
+ 0.9962914f, -0.050030354f, 0.007972445f, 0.09041357f,
+ -0.020699596f, -0.4460657f, 0.38913694f, -0.033420682f,
+ 0.030246839f, -0.1478609f, 0.17612411f, -0.19901018f,
+ -0.11187573f, 0.0064607407f, 0.043710582f, -0.017643603f,
+ 0.08217184f, -0.010799988f, 0.20924352f, -0.07070071f,
+ -0.012005384f, -0.232373f, -0.039940335f, 0.17365238f,
+ -0.08512493f, -0.17155096f, -0.017029807f, -0.070312835f,
+ -0.0077718394f, 0.06367218f, 0.04827339f, 0.05517328f,
+ -0.015714867f, 1.6968807f, 0.005945503f, -0.16341135f,
+ 0.34020543f, 0.06193833f, 0.030435894f, -0.246971f,
+ 0.3649049f, -0.044227373f, 0.002531635f, -0.013681736f,
+ 0.04537735f, 0.25078866f, -0.013089379f, -0.07847082f,
+ 0.2725609f, -0.032453157f, 0.10069641f, -0.017454598f,
+ -0.23776634f, -0.06519283f, 0.3604512f, 0.29404774f,
+ -0.1860629f, -0.15837754f, 0.1678824f, 0.11049545f,
+ -0.12812108f, 0.06320874f, 0.046848863f, 0.011675171f,
+ 0.46090773f, 0.08568206f, 0.022939675f, -0.047999207f,
+ 0.044190213f, 0.1562978f, 0.18320628f, 0.042696822f,
+ -0.0122516155f, 0.03984359f, 0.3708256f, -0.05280428f,
+ -0.24732433f, 0.04335415f, -0.1441837f, 0.02553387f,
+ -0.107694f, -0.010430678f, -0.16044798f, 0.16159347f,
+ 0.050026465f, -0.09185798f, 0.09541704f, -0.17227614f,
+ 0.04096726f, 0.2918169f, 0.12662955f, 0.06157122f,
+ 0.00766281f, -0.10749638f, -0.055704527f, 0.011385054f,
+ -0.12360373f, 0.47784868f, -0.011855966f, 0.016330717f,
+ -0.32877898f, -0.09110654f, 0.019638339f, 0.12672323f,
+ 0.6350247f, -0.13409394f, -0.0077276397f, 0.06470689f,
+ 0.057473924f, 0.04303109f, -0.071611926f, 0.010568346f,
+ -0.49587503f, -0.013963412f, 0.20460561f, 0.016110955f,
+ -0.49089178f, -0.18241288f, 0.50063574f, -0.23849785f,
+ -0.5559127f, 0.15898034f, 0.10989115f, 0.26470658f,
+ -0.01013526f, -0.14694701f, 0.004489279f, 0.05518631f,
+ 0.59108365f, -0.018291691f, -0.022436239f, -0.04088917f,
+ -0.014791668f, 0.043376062f, 0.16307668f, 0.01621932f,
+ 0.0014469766f, 0.024469662f, -0.4269077f, -0.021166233f,
+ 0.13428153f, -0.024848392f, 0.098018676f, 0.06379463f,
+ 0.016683204f, 0.038179494f, 0.031783354f, -0.068717234f,
+ -0.021776298f, -0.16822582f, -0.016150437f, 0.1575426f,
+ 0.15831402f, -0.09662214f, 0.03142256f, 0.007203998f,
+ -0.017188448f, 0.019085184f, 0.03745755f, -0.011074834f,
+ 0.03154437f, -0.9384747f, -0.008694909f, 0.14019527f,
+ -0.17755365f, 0.02073978f, -0.009033487f, -0.08590541f,
+ -0.024985446f, -0.004093996f, -0.0555781f, -0.09240104f,
+ 0.096564405f, 0.04066303f, -0.02180789f, -0.011132781f,
+ 0.20420696f, 0.016700292f, 0.06600887f, 0.047187306f,
+ -0.02076854f, -0.10503244f, 0.25983134f, 0.21840551f,
+ -0.32094398f, -0.22290188f, 1.3253807f, 0.21109791f,
+ -0.12927043f, 0.6002755f, -0.02089594f, -0.04530725f,
+ -0.26657403f, 0.032572705f, -0.0100231785f, 0.0708596f,
+ 0.016187856f, 0.06518296f, 0.3124852f, 0.04887191f,
+ 0.0028617901f, -0.18666886f, 0.33269957f, -0.1486844f,
+ -0.026365757f, 0.020988049f, -0.070677474f, -0.049858164f,
+ -0.026587864f, -0.04254433f, -0.06510276f, 0.12760377f,
+ 0.018921414f, 0.0241072f, 0.026844785f, -0.18613553f,
+ 0.030758139f, -0.12250028f, -0.06085466f, 0.002041224f,
+ -0.0040272647f, -0.018028907f, -0.02785293f, -0.0003521555f,
+ 0.04775339f, -0.13988225f, -0.0074934945f, -0.033019263f,
+ 0.05393138f, -0.0065512727f, -0.020261116f, 0.34755322f,
+ -0.0826358f, -0.07664628f, -0.035839662f, 0.11785819f,
+ -0.39461428f, -0.020319091f, 0.15030818f, 0.026512649f,
+ 0.020197595f, -0.035953954f, 0.14853695f, -0.021812294f,
+ 0.034613147f, 0.08945376f, -0.6558053f, -0.086705655f,
+ 0.5482094f, 0.09420661f, -0.41676843f, 0.18717943f,
+ -0.06599932f, -0.56404626f, 0.08016426f, 0.0022197575f,
+ -0.55039716f, -0.040793415f, -0.0033396971f, -0.057141583f,
+ -0.037149508f, 0.2288959f, -0.27006677f, -0.07031288f,
+ -0.010639694f, 0.1348306f, -0.27025464f, 0.0350023f,
+ 0.18043233f, -0.035161678f, -0.006259741f, 0.05518103f,
+ 0.059558228f, 0.009182596f, 0.16845869f, -0.06543876f,
+ -0.005743551f, -0.39416245f, 0.051597416f, 0.29309905f,
+ 0.2938438f, -0.12118317f, -0.09471063f, -0.041920774f,
+ -0.017126005f, 0.05937604f, -0.0035281763f, 0.051468264f,
+ 0.14270054f, 0.314545f, 0.050796427f, 0.01318194f,
+ 0.026985608f, 0.035868287f, -0.010469121f, -0.20876093f,
+ 0.19532305f, -0.11193005f, -0.033861104f, -0.04603516f,
+ -0.5406827f, 0.05589666f, 0.12279087f, -0.062117785f,
+ 0.064747244f, 0.020509433f, 0.18989821f, -0.020537527f,
+ -0.13105239f, 0.40663588f, -0.49826884f, 0.28956646f,
+ 0.11852532f, -0.008768637f, 0.12434393f, 0.07745619f,
+ -0.25814423f, -0.21222427f, 0.031258166f, 0.0936614f,
+ -0.16795568f, -0.013915899f, -0.009237131f, -0.14146775f,
+ -0.0053123357f, -0.1724265f, 0.4498832f, 0.088921905f,
+ -0.02978067f, 0.15217888f, -0.027520508f, 0.45357004f,
+ -0.10618351f, -0.030982222f, 0.21715567f, 0.031807195f,
+ -0.01295293f, 0.036520135f, -0.24912667f, -0.019910524f,
+ 0.0038579437f, 0.24646096f, 0.28012592f, 0.03368078f,
+ -0.5565983f, 0.51061636f, -0.11653568f, 0.0014985758f,
+ 0.005183618f, 0.035225887f, 0.04912012f, 0.008105491f,
+ 0.08615647f, -0.5306345f, 0.037945177f, -0.051057752f,
+ -0.14211199f, 0.03392412f, 0.00955998f, 0.09550955f,
+ 0.8438336f, -0.2000249f, -0.16793129f, -0.15834059f,
+ 0.31784794f, -0.13549541f, -0.13413745f, -0.13789186f,
+ -0.07404421f, -0.0030583162f, 0.18645717f, -0.02157021f,
+ -0.23156567f, 0.12528023f, -0.36199448f, 0.13630316f,
+ -0.29662046f, -0.042305652f, -0.041692164f, 0.78332245f,
+ 0.5519626f, -0.18252647f, 0.071336195f, -0.00848383f,
+ 1.157797f, -0.013821907f, -0.0013586188f, 0.028939672f,
+ -0.027687328f, 0.0063339844f, 0.004091473f, -0.09063307f,
+ 0.00632893f, 0.15733698f, 0.3493178f, -0.25026032f,
+ -0.0034256906f, 0.050312445f, -0.147148f, -0.0881166f,
+ -0.007202018f, -0.13021193f, -0.025345795f, -0.060363498f,
+ -0.0006999539f, 0.20776735f, 0.3032111f, 0.11623544f,
+ -0.69132f, 0.53010947f, 0.22696061f, -0.05980183f,
+ -0.017476153f, 0.05784042f, 0.02024059f, 0.23029178f,
+ 0.1592716f, 0.9744706f, 0.033727378f, 0.13462971f,
+ 0.8414614f, 0.021116294f, -0.06382785f, 0.065849826f,
+ -0.77772236f, -0.19354285f, -0.27205253f, 0.16655819f,
+ -0.10706955f, 0.14090586f, -0.38847712f, 0.12206957f,
+ 0.35087126f, 0.018223556f, 0.3136521f, -0.03264866f,
+ -0.3567076f, -0.44174466f, -0.07327421f, -0.3194473f,
+ 0.26565498f, 0.08493378f, 0.1815766f, -0.050739054f,
+ -0.006088156f, 0.62182546f, -0.1324985f, -0.015060115f,
+ -0.2704989f, 0.010778689f, -0.04824534f, 0.1863299f,
+ -0.012366902f, 0.34537584f, -0.098318584f, 0.008446686f,
+ 0.009445607f, -0.15584385f, -0.10578944f, 0.29444432f,
+ 0.29439884f, 0.07082676f, -0.10432846f, 0.010126514f,
+ 0.0017580178f, 0.04894156f, 0.26864323f, 0.027731542f,
+ 0.0059990394f, 0.707689f, 0.29888585f, -0.30692703f,
+ -0.8469116f, -0.102942206f, 0.18854266f, 0.012301113f,
+ 0.0010491202f, -0.03331774f, -0.08706221f, 0.08740603f,
+ 0.0955695f, -0.16193433f, 0.005223475f, -0.1990943f,
+ -0.8894871f, 0.033053547f, -0.040720437f, -0.065822065f,
+ -0.5876164f, -0.17938851f, -0.19499122f, 0.034504343f,
+ -0.31082174f, 0.21002105f, 0.862039f, 0.09694486f,
+ -0.18736582f, -0.025657762f, 0.69445026f, 0.014717754f,
+ -0.31640813f, 0.35605222f, 0.44484234f, 0.05328263f,
+ 0.09238249f, 0.052132193f, -0.112957545f, -0.11773104f,
+ -0.18811426f, -0.3145211f, 0.066282585f, -0.06161545f,
+ -0.2813783f, -0.035825755f, 0.0059607932f, 0.09537578f,
+ -0.019212376f, 0.11432891f, -0.567658f, -0.22745577f,
+ 0.029270148f, -0.016042752f, -0.2594051f, 0.50624305f,
+ -0.58418965f, -0.10651836f, -0.1637567f, -0.015315814f,
+ 0.0588222f, -0.04203804f, -0.041002106f, 0.018817345f,
+ 0.04828644f, 0.07711505f, 0.2028236f, -0.027219575f,
+ 0.006651426f, -0.07122145f, 0.10931341f, -0.04741802f,
+ -0.04517081f, 0.011814542f, -0.058562458f, 0.30043077f,
+ 0.0045898105f, -1.247423f, 0.01993139f, 0.04923846f,
+ 0.09225936f, -0.0076849363f, 0.033185232f, 0.014304266f,
+ -0.32597095f, -0.24056308f, -0.4302366f, 0.027474685f,
+ 0.33784932f, -0.25509351f, -0.07386988f, 0.0009167738f,
+ -0.025437754f, -0.011713006f, -0.45412412f, -0.010687997f,
+ -0.11613874f, -0.44881666f, 0.36019912f, -0.53250206f,
+ -0.33889312f, -0.08592707f, 0.20946439f, -0.6469393f,
+ 1.3412784f, 0.98912567f, -0.17357755f, 0.010404901f,
+ 0.2610597f, 0.042112194f, 0.012550799f, 0.12288203f,
+ 0.04733653f, -0.022040712f, -0.8768243f, 0.04770738f,
+ -0.021695994f, -0.26047653f, 0.3360094f, 0.83632076f,
+ -0.5843266f, 0.11429735f, 0.20336463f, -0.027897196f,
+ -0.04340598f, 0.0045455345f, -0.13173796f, 0.021218495f,
+ 0.038775317f, -0.70786935f, 0.10970416f, -0.3964646f,
+ -0.6698416f, -0.74631226f, -0.022808863f, 0.09282145f,
+ 0.033445846f, -0.08638097f, 0.006325947f, 0.09503295f,
+ -0.12388054f, 1.2569854f, -0.032677203f, 0.039192438f,
+ -0.081253186f, -0.0063980995f, 0.042938855f, 0.11410096f,
+ -0.8556671f, 0.08471816f, -1.0939487f, -0.0015663431f,
+ 0.40989372f, 0.28875715f, 0.44352886f, 0.09570113f,
+ -0.24494693f, -0.00047116613f, -0.38672355f, 0.015685908f,
+ 0.021278007f, -0.05797214f, 0.248303f, 0.19521719f,
+ 0.21587986f, -0.032871958f, 0.23008576f, 0.21658199f,
+ 0.036328245f, -0.65275747f, 0.09201603f, -0.025679493f,
+ -0.92910904f, 0.021719676f, 0.017177375f, 0.11324695f,
+ 0.0019247402f, 0.1931846f, 0.26181838f, 0.15844508f,
+ 0.006795032f, -0.1397643f, 0.36483163f, 0.39365822f,
+ 0.25713363f, 0.009902011f, 0.06490622f, 0.026342573f,
+ -0.025484337f, 0.086205035f, 0.081517436f, 0.034151442f,
+ -0.03846542f, -0.5591753f, 0.19074638f, 0.37698093f,
+ -0.35173395f, -0.14325054f, -0.43869096f, -0.012883601f,
+ 0.0003646689f, 0.0005373159f, 0.04653338f, -0.2087285f,
+ 0.1517989f, 0.5849099f, -0.019995308f, -0.04342486f,
+ -0.3800216f, -0.04007773f, -0.017589476f, -0.024634568f,
+ -0.3007563f, -0.07154129f, -0.66669667f, -0.026372897f,
+ -0.07946254f, 0.10177972f, 0.57474524f, 0.13744383f,
+ -0.020430623f, -0.013584707f, 0.20537062f, 0.022211624f,
+ -0.29795107f, 0.57223755f, 0.40009263f, 0.02226658f,
+ -0.2592108f, 0.14876151f, 0.11749052f, -0.16314484f,
+ 0.20280161f, 0.006032111f, -0.03182481f, 0.020385504f,
+ 0.4547294f, -0.00067187694f, -0.00047066624f, 0.01710547f,
+ 0.019836666f, -0.3942362f, -0.27419925f, 0.16821904f,
+ 0.020117465f, 0.11511876f, -0.2989714f, 0.17499676f,
+ 0.03683763f, 0.071633406f, -0.0116829015f, 0.041034427f,
+ -0.042387735f, 0.05416612f, -0.028176492f, 0.055913016f,
+ -0.039090794f, -0.031751484f, 0.043870702f, 0.069372185f,
+ -0.044216078f, 0.25293872f, -0.21532717f, 0.08034303f,
+ 0.057374652f, -0.03360632f, 0.018842429f, 0.02339191f,
+ 0.22562718f, -0.110148266f, -0.09025615f, 0.083832495f,
+ -0.6814998f, -0.043790318f, -0.028982282f, -0.07111136f,
+ -0.32567313f, -0.17241213f, -0.10683052f, 0.087502144f,
+ 0.21527664f, 0.24548475f, -0.030854417f, -0.053382125f,
+ 0.031977348f, 0.014782147f, -0.10670295f, 0.033852994f,
+ -0.1459858f, -0.13896927f, 0.27521753f, 0.3008577f,
+ -0.00495376f, -0.16059792f, 0.16307618f, 0.21685287f,
+ -0.61044633f, -0.07893876f, 0.11888328f, -0.0031266974f,
+ 1.0226511f, 0.010532688f, -0.0017604034f, 0.029042348f,
+ -0.0072924756f, 0.11147201f, -0.53256595f, -0.09118909f,
+ 0.022319429f, 0.10464078f, -0.18329267f, -0.13050462f,
+ 0.7702663f, -0.1693563f, -0.022166427f, 0.07016212f,
+ 0.044789918f, 0.026921215f, -0.02136535f, -0.02220865f,
+ -0.028176108f, -0.27761915f, -0.14966705f, 0.26814744f,
+ 0.0009852799f, -0.3761102f, 0.20915465f, -0.08442129f,
+ -0.062150948f, 0.045717623f, 0.003777402f, 0.038754888f,
+ 0.059325796f, -0.16252041f, 0.03597849f, 0.06308502f,
+ 0.22493652f, 0.027579049f, -0.005237538f, -0.096212916f,
+ -0.89336103f, 0.027431075f, -0.122828946f, -0.13869385f,
+ 0.5627581f, -0.15386991f, 0.08273721f, 0.020299176f,
+ 0.26121685f, -0.036961734f, -0.09159009f, -0.0065585165f,
+ 0.12537676f, 0.9271213f, -0.6220157f, -0.04897373f,
+ 0.39619008f, 0.23855439f, 0.058847707f, -0.33573025f,
+ 0.46605334f, -0.24963109f, -0.031057974f, -0.010540132f,
+ -0.8415916f, -0.04024044f, 0.00966706f, 0.12419478f,
+ -0.0058646696f, -0.23757398f, -0.41728008f, -0.069746286f,
+ -0.03358186f, -0.00062127726f, -0.10666955f, 0.15589106f,
+ -0.24706149f, -0.009485509f, -0.041538034f, -0.045254838f,
+ 0.026312774f, -0.108302064f, -0.035514828f, -0.066233486f,
+ 0.046382982f, -0.23588641f, 0.21240862f, -0.13298047f,
+ 0.0248457f, -0.10445664f, 0.11140641f, 0.011270957f,
+ 0.034872487f, 0.01649418f, -0.0036853012f, 0.17490314f,
+ 0.1678751f, -0.3716033f, 0.026665797f, -0.044029504f,
+ 0.7772889f, 0.0023240603f, 0.057570536f, 0.046537273f,
+ 0.13628264f, -0.18902957f, -0.018479101f, -0.011631737f,
+ 0.23185553f, 0.1081962f, 0.36724073f, -0.06552928f,
+ -0.05650017f, 0.04774381f, 0.25038117f, -0.042514794f,
+ -0.22574246f, -0.13346156f, 0.02845881f, 0.17410947f,
+ 0.22936969f, 0.17620188f, 0.067600325f, 0.0030360508f,
+ 0.3268615f, -0.52369916f, 0.08915494f, 0.06427315f,
+ 0.39043638f, -0.018521318f, 0.057131533f, -0.07570644f,
+ 0.0036933094f, -0.25552914f, -0.10401826f, 0.041841213f,
+ -0.014064093f, 0.13153663f, -0.3454686f, 0.37251392f,
+ -0.23542805f, -0.07628868f, 0.104988895f, 0.049341604f,
+ 0.035529785f, -0.008858327f, 0.08275809f, -0.021811401f,
+ 0.022132693f, -0.18535553f, 0.16394103f, 0.33726618f,
+ 0.19844896f, -0.17665263f, -0.23559888f, -0.014556714f,
+ 0.0003120631f, 0.07498165f, 0.100801386f, 0.07612374f,
+ 0.2992786f, -0.23902327f, 0.032176636f, 0.062765434f,
+ -0.12262402f, -0.05442703f, 0.050505683f, 0.08462673f,
+ -1.005098f, -0.09576724f, -0.3426198f, -0.091025956f,
+ -0.5771428f, 0.35568854f, 0.08626219f, -0.18329568f,
+ 0.11742489f, 0.035681877f, 0.33898255f, 0.032164276f,
+ -0.25718907f, -0.13858943f, -0.28573808f, -0.06678913f,
+ 0.45643952f, -0.21273966f, 0.43967947f, 0.08054984f,
+ 0.31061658f, 0.68906015f, -0.017907469f, -0.011936705f,
+ 0.09260689f, -0.0112935435f, -0.02189103f, -0.11663802f,
+ -0.009062794f, 0.15958257f, -0.039317656f, -0.010145959f,
+ 0.026877046f, 0.051645327f, -0.16980416f, 0.14157431f,
+ 0.1474802f, 0.04295442f, 0.06527326f, -0.017324176f,
+ -0.009905686f, 0.030748947f, -0.09558075f, -0.070968255f,
+ 0.018401915f, 0.80165607f, 0.122926466f, 0.25822958f,
+ -0.72091407f, -0.05542566f, 0.19142759f, -0.037400495f,
+ -0.0238747f, 0.0064023393f, 0.015868204f, 0.29082495f,
+ -0.44885957f, -0.31282708f, 0.035882644f, 0.28870863f,
+ -0.1096725f, 0.046567664f, -0.01161674f, -0.17263249f,
+ 0.5539731f, -0.2342244f, 0.43993622f, -0.0048013153f,
+ 0.6652232f, 0.17508973f, 0.20863988f, 0.16243176f,
+ 0.3806719f, -0.041598745f, -0.08722463f, -0.043245174f,
+ 0.29451475f, -0.6195349f, -0.54613787f, 0.38905495f,
+ -0.043412592f, 0.004236888f, -0.087759f, -0.1446047f,
+ 0.071273044f, -0.049761783f, 0.07637648f, 0.01059585f,
+ -0.41659486f, 0.049164988f, 0.011550085f, 0.22424212f,
+ -0.003531024f, 0.44469815f, -0.07692905f, -0.18907495f,
+ 0.04021252f, -0.124431f, -0.31692645f, 0.3395272f,
+ -0.57f, 0.017487545f, 0.069038056f, -0.03853888f,
+ -0.033286426f, -0.042966012f, -0.12214694f, 0.020038705f,
+ -0.028179219f, 0.5399588f, 0.14501129f, -0.3917562f,
+ 0.016344398f, -0.00990786f, 0.2155424f, -0.026089415f,
+ -0.05131228f, -0.07352741f, -0.043778695f, -0.1325945f,
+ 0.42158386f, -0.67442745f, -0.020427667f, 0.13565063f,
+ 0.33162832f, 0.0012163438f, -0.041980434f, 0.3636853f,
+ -0.7230121f, 0.49388927f, -0.29381794f, -0.007604252f,
+ 0.13511637f, 0.4773932f, 0.3324641f, 0.1835974f,
+ -0.31441116f, -0.032478973f, 0.3942554f, -0.007932511f,
+ -0.08890948f, 0.107833296f, 0.20649594f, -0.5684454f,
+ -0.29307878f, -0.086037025f, -0.013281219f, 0.82943964f,
+ 0.18731272f, 0.25497746f, 0.013346805f, 0.020685153f,
+ -0.15456566f, 0.0105447555f, -0.036924396f, -0.1005466f,
+ 0.012906812f, -0.5280445f, -0.0016189297f, -0.023146085f,
+ -0.014931947f, 0.22531757f, 0.079528995f, 0.06374672f,
+ 0.1296904f, -0.00073160656f, -0.10149896f, 0.014485047f,
+ -0.071863964f, 0.09176066f, -0.10931992f, 0.03932805f,
+ -0.0977619f, -0.15047143f, -0.04500513f, -0.16941734f,
+ 0.18606679f, -0.11894519f, -0.043379117f, -0.022682969f,
+ 0.022454033f, -0.010527903f, -0.062385708f, -0.019106092f,
+ -0.07213428f, 0.43419898f, -0.041982163f, 0.6397257f,
+ -0.11815067f, 0.011928541f, -0.006531338f, -0.27260253f,
+ -0.24041978f, 0.052634884f, -0.3643897f, -0.0047262814f,
+ 0.014945299f, 0.5813199f, -0.17253157f, 0.12743056f,
+ -0.061101172f, 0.0074953795f, -0.34209558f, 0.022589909f,
+ 0.44966438f, 0.100797266f, -0.022014013f, 0.25905046f,
+ 0.06902805f, 0.021564743f, -0.18663956f, 0.6367871f,
+ 0.29003713f, -0.674708f, -0.06774329f, -0.048219208f,
+ -0.49098435f, -0.034687947f, 0.01923444f, 0.02095966f,
+ -0.005836902f, 0.7948249f, -0.0842702f, -0.08918305f,
+ -0.02325932f, 0.04209146f, 0.35533595f, 0.5198777f,
+ 0.45032522f, 0.07888036f, -0.102695f, 0.019459605f,
+ 0.08534065f, -0.24472979f, 0.12978923f, -0.095717825f,
+ 0.11017068f, -0.048223853f, 0.23623946f, -0.37323537f,
+ -0.31851578f, 0.2686812f, -0.20795651f, 0.06830536f,
+ 0.02349102f, 0.00573066f, 0.020593688f, 0.058699735f,
+ 0.24667074f, 0.17571232f, 0.044653032f, -0.15012974f,
+ 0.39808533f, 0.008311069f, -0.025979772f, 0.16514137f,
+ 0.8305683f, -0.64841545f, -0.55192965f, 0.06625568f,
+ 0.48111862f, -0.7015787f, 0.023364529f, -0.22348699f,
+ -0.3404254f, 0.03051598f, 0.0065084216f, 0.036130283f,
+ 0.18230277f, 0.483092f, 0.0009305059f, -0.127765f,
+ -0.36474282f, 0.044793185f, 0.25659785f, -0.85763323f,
+ 1.5366247f, 0.2644848f, -0.07362883f, -0.04186747f,
+ 1.0594175f, 0.03275445f, -0.013780058f, 0.15233655f,
+ 0.047960434f, -0.14714673f, -0.3933198f, 0.3577442f,
+ -0.023192307f, 0.4428786f, 0.2835252f, 0.5301036f,
+ -0.22270343f, -0.08161046f, -0.025183653f, 0.015731769f,
+ -0.05137898f, 0.17142735f, 0.26345387f, 0.12880464f,
+ -0.048090328f, -0.46618962f, 0.30238044f, 0.4531658f,
+ -0.16957764f, -0.06053899f, -0.31837076f, -0.007267955f,
+ 0.04130769f, -0.015860017f, -0.024970386f, 0.1524498f,
+ 0.006058198f, 0.6656209f, -0.06617986f, -0.19131757f,
+ 0.24887747f, -0.049312517f, 0.10004203f, -0.277589f,
+ -0.65401125f, -0.19473633f, -0.9113562f, 0.06115199f,
+ -0.17261072f, 0.84006685f, -0.121453226f, 0.19903862f,
+ 0.16710092f, -0.013668652f, 0.4919797f, 0.009538132f,
+ -0.1765377f, -0.87966114f, 0.75603515f, 0.63786834f,
+ -0.4890102f, 0.09024147f, -0.49216408f, 0.34319547f,
+ -0.03748496f, 0.2844274f, -0.055820383f, -0.018910786f,
+ -0.47316018f, 0.027159473f, -0.0015595072f, -0.05848484f,
+ -0.0043871147f, 0.014843196f, -0.5576527f, -0.061048936f,
+ -0.010926638f, -0.017103001f, 0.073355824f, 0.11364982f,
+ 0.40648457f, 0.089511864f, 0.018196944f, -0.009719684f,
+ -0.0033473438f, -0.10635423f, -0.008665999f, -0.031194502f,
+ 0.083477184f, 0.26968095f, 0.023737183f, -0.13744204f,
+ -0.4552492f, 0.21010791f, 0.19128709f, 0.01873323f,
+ 0.01688111f, -0.017703427f, 0.0008041437f, 0.13601552f,
+ 0.0016484823f, 0.30315563f, 0.02613551f, 0.16090663f,
+ -0.030294351f, 0.017977277f, -0.031563003f, 0.21813187f,
+ -0.97064453f, -0.39274338f, -0.36937815f, 0.06337369f,
+ 0.20140369f, -0.07688678f, -0.0874117f, 0.053947408f,
+ 0.023859704f, -0.0037192174f, -0.109473236f, 0.012301533f,
+ -0.21287039f, 0.01183521f, -0.05521193f, -0.15150349f,
+ 0.7804167f, 0.03211174f, 0.36134484f, -0.27137122f,
+ 0.14282028f, -0.5590106f, -0.08142644f, -0.008310814f,
+ -0.86863595f, 0.017671607f, -0.016452007f, 0.081589065f,
+ 0.013112264f, -0.19787666f, 0.06871894f, 0.16310373f,
+ 0.0082781315f, 0.077229254f, 0.057579923f, 0.53476876f,
+ -0.50599885f, -0.022023031f, 0.0674841f, -0.08158614f,
+ -0.043155223f, 0.13290566f, 0.08755242f, 0.10628849f,
+ -0.059445526f, 0.4896675f, 0.47385138f, 0.16862209f,
+ -0.654722f, -0.0702916f, 0.07645583f, 0.0039563235f,
+ -0.0006895396f, -0.025875246f, -0.02551556f, 0.033223286f,
+ 0.08023618f, -0.19663534f, -0.05161338f, 0.16279069f,
+ -0.02353438f, -0.05649287f, 0.042154144f, -0.22116804f,
+ -0.5493369f, -0.012885321f, -0.4290355f, 0.021760533f,
+ -0.08620179f, 0.15946838f, 0.46834463f, -0.15297343f,
+ 0.3145751f, -0.0061155055f, 0.08577265f, -0.04766195f,
+ 0.078998335f, -0.07067734f, 0.24745202f, -0.017346485f,
+ -0.19352303f, -0.2520126f, -0.32175937f, -1.4275908f,
+ -0.14337152f, 0.23346762f, 0.14730537f, 0.0425929f,
+ 0.33631057f, -0.058409102f, 0.011276796f, 0.09230782f,
+ -0.033471983f, -0.2890876f, 0.06976417f, -0.20246817f,
+ 0.009330633f, 0.04105449f, -0.074560426f, 0.28785655f,
+ 0.4103466f, -0.05750621f, -0.109004214f, 0.043102942f,
+ 0.07257342f, -0.012095279f, 0.33297747f, -0.04947148f,
+ -0.012233982f, 0.033638142f, 0.19295745f, -0.13758214f,
+ -0.55198425f, -0.21365921f, -0.12630017f, 0.013434851f,
+ -0.038892295f, 0.05204016f, 0.027290525f, -0.15109755f,
+ 0.22796856f, -0.22873002f, 0.024816118f, 0.0289489f,
+ -0.47334185f, 0.056030314f, -0.063053794f, 0.0362013f,
+ -0.5029221f, -0.48016286f, 0.061240233f, -0.08146244f,
+ 0.21179256f, 0.46225935f, 0.52381355f, 0.058351606f,
+ -0.37134218f, 0.02625377f, 0.3866318f, 0.0040462995f,
+ -0.19907764f, 0.71972704f, -0.5918457f, -0.37511754f,
+ 0.046958555f, -0.00795217f, 0.084929734f, -0.33136168f,
+ -0.18664934f, 0.60329723f, 0.036578458f, -0.07262497f,
+ 0.3348232f, -0.018120091f, -0.005484366f, -0.00023680656f,
+ -0.028130755f, -0.03672947f, 0.49235132f, -0.12011919f,
+ 0.019190365f, -0.123743474f, -0.2434968f, -0.14785671f,
+ 0.32744068f, -0.031418875f, -0.12512773f, -0.004361576f,
+ -0.02764993f, 0.073661335f, 0.16708335f, 0.03623089f,
+ -0.025966672f, 0.30047205f, 0.08888296f, -0.094894804f,
+ -1.5834224f, 0.08205288f, 0.031214884f, -0.0062426245f,
+ -0.04294083f, -0.027985485f, -0.06325915f, 0.01859677f,
+ -0.1481761f, 0.5914115f, -0.038193382f, 0.059578147f,
+ -0.5226914f, -0.03637427f, 0.016522275f, -0.04458439f,
+ 0.043283924f, -0.10276937f, -0.22023201f, 0.046929125f,
+ 0.15331015f, 0.0120208515f, 0.20940527f, -0.0800796f,
+ -0.3795871f, 0.017431835f, -0.13013846f, 0.03484933f,
+ 0.1780011f, 0.017745595f, -0.29626766f, 0.029942866f,
+ 0.060134716f, -0.1690237f, -0.06039639f, 0.5244154f,
+ -0.54444563f, -0.7541919f, -0.23236229f, -0.0013490866f,
+ -0.24924527f, 0.038365014f, 0.0016835652f, 0.088289954f,
+ 0.08682464f, 0.33666182f, 0.30617023f, 0.2502856f,
+ -0.032564186f, -0.03885029f, 0.087206066f, 0.19737758f,
+ 0.13030598f, 0.013643295f, 0.098957874f, -0.010740124f,
+ 0.021665929f, -0.004110285f, 0.16968878f, 0.09474842f,
+ 0.088216275f, 0.03472267f, 0.0572002f, 0.018179152f,
+ -0.3660645f, 0.10066672f, 0.111787915f, 0.08885337f,
+ 0.127436f, -0.03341967f, 0.016290486f, -0.12890325f,
+ -0.050830465f, 0.23464587f, -0.009213082f, -0.06698607f,
+ 0.5340659f, -0.028670147f, 0.08878314f, 0.12110591f,
+ -0.74465215f, -0.016775083f, 0.0830122f, 0.07588653f,
+ 0.20552325f, -0.079603784f, 0.28701195f, -0.094550185f,
+ 0.4462886f, 0.016070347f, -0.25341165f, -0.020802705f,
+ 0.2045294f, -0.27662006f, 0.16943765f, -0.017099109f,
+ -0.012498425f, -0.099444635f, 0.23859431f, -0.3116982f,
+ -0.19525592f, 0.57000214f, 0.12733993f, 0.013377657f,
+ -0.34565854f, -0.07617742f, 0.039116003f, 0.095476985f,
+ -0.057025675f, -0.5551101f, 0.0008359335f, -0.14448968f,
+ -0.011802895f, 0.11243062f, -0.02708867f, 0.026433667f,
+ 0.07029156f, -0.03932089f, 0.029222589f, -0.014484901f,
+ 0.0942324f, -0.0645073f, -0.008201193f, -0.10758639f,
+ -0.03895392f, -0.27066565f, -0.03978721f, -0.015404543f,
+ -0.123197906f, 0.14577259f, 0.014633773f, -0.033829264f,
+ -0.0729945f, 0.09266467f, 0.07942404f, 0.045261104f,
+ -0.045010816f, -0.72302586f, 0.04641043f, 0.035600748f,
+ -0.36553094f, 0.010212504f, -0.01874108f, -0.094297335f,
+ -0.011950521f, 0.05174975f, 0.38115364f, -0.081445605f,
+ 0.56712794f, -0.0273933f, -0.12522876f, -0.102524236f,
+ 0.051251423f, 0.008560305f, 0.12721303f, -0.01501615f,
+ -0.3134637f, 0.23410809f, -0.35356948f, -0.076237045f,
+ 0.07532924f, -0.2543858f, -0.08953331f, 0.28298575f,
+ -0.67822546f, -0.19605784f, -0.00040034886f, 0.03377207f,
+ -0.3244273f, 0.076887935f, -0.0031415098f, -0.026203072f,
+ 0.06114121f, 0.12934591f, -0.18036221f, 0.20044728f,
+ -0.018890137f, -0.076783344f, 0.35894194f, -0.08519139f,
+ -0.5968317f, -0.051250257f, -0.03335682f, 0.056775995f,
+ -0.052668575f, 0.027960762f, -0.16029587f, 0.14646685f,
+ 0.021189246f, 0.30602f, -0.024237612f, 0.17238942f,
+ -0.02535149f, 0.40570334f, -0.16872574f, -0.032685556f,
+ 0.10576039f, -0.031292856f, -0.032116853f, -0.1274958f,
+ -0.049427565f, -0.016589422f, -0.008634191f, 0.119050205f,
+ 0.4538047f, -0.10678557f, 0.034908395f, -0.04868304f,
+ 0.6317103f, 0.14865556f, 0.15276472f, 0.14084363f,
+ -0.074254274f, -0.29509506f, 0.17455897f, 0.046691537f,
+ 0.26368138f, 0.012134378f, 0.1417353f, 0.048108295f,
+ 0.26337174f, -0.10801f, 0.37282753f, 0.06214309f,
+ 0.25008425f, 0.07237914f, 0.5441749f, -0.8143705f,
+ 3.1289325f, -0.10898528f, 0.13255146f, -0.041030224f,
+ 0.82024235f, -0.08911287f, -0.030705048f, -0.08759854f,
+ -0.11755292f, -0.404859f, -0.030228045f, -0.22471292f,
+ 0.046450045f, 0.14744236f, -0.14992478f, -0.34435952f,
+ -0.09539792f, 0.12632135f, -0.16422857f, 0.047926806f,
+ 0.0653455f, 0.13477859f, -0.08599001f, -0.13614237f,
+ -0.13895808f, -0.3804102f, -0.19316438f, -0.03989734f,
+ -0.26453134f, 0.2934892f, 0.13574418f, 0.052071057f,
+ -0.13670684f, 0.09225589f, 0.009710848f, -0.16645727f,
+ -0.20319332f, 1.0774497f, -0.003572775f, -0.113467194f,
+ 0.26572236f, 0.18882933f, -0.17270754f, -0.12443586f,
+ -0.11660728f, 0.050811537f, 0.49429113f, -0.23169905f,
+ -0.057536453f, 0.49462944f, -0.1929606f, -0.07053407f,
+ -0.43732926f, -0.0023687347f, -0.30202565f, 0.019683283f,
+ 0.16953656f, -0.035359364f, 0.504751f, -0.22690165f,
+ -0.22509475f, 0.16265473f, -0.13980593f, 0.33133647f,
+ -0.15810409f, 0.05096706f, -0.15817043f, 0.07085683f,
+ -0.18253325f, 0.043052915f, 0.013496894f, -0.002042419f,
+ 0.052521724f, 0.005597016f, 0.18483852f, 0.13273999f,
+ -0.022929324f, -0.027957864f, 0.6336833f, -0.15709129f,
+ -0.13911708f, -0.011641924f, 0.20418194f, -0.12626246f,
+ -0.052139185f, -0.13107255f, 0.1325044f, -0.0063156392f,
+ 0.08213353f, -0.11698009f, -0.021798193f, -0.1463752f,
+ 0.05610362f, 0.38684577f, -0.026259948f, -0.019492688f,
+ 0.039011803f, -0.06476454f, 0.023027338f, -0.0076490473f,
+ -0.12644784f, -0.28757587f, 0.008700332f, -0.03332097f,
+ -0.068714246f, -0.10109945f, 0.095954575f, 0.33882505f,
+ -0.021078972f, -0.086355485f, 0.3332086f, 0.14147246f,
+ -0.15233393f, -0.24182335f, -0.20449567f, -0.009896452f,
+ 0.1442465f, 0.00593068f, 0.23867443f, -0.033336148f,
+ -0.5927796f, -0.14561982f, 0.16735008f, 0.26224318f,
+ -0.062496826f, 0.10654827f, -0.2669016f, 0.08942968f,
+ -0.31045234f, -0.060299207f, 0.053721543f, 0.095657304f,
+ 0.059911497f, -0.055541772f, 0.008931067f, -0.03475533f,
+ -0.045143377f, 0.36022022f, -0.05413728f, -0.14925934f,
+ -0.04986164f, -0.012353947f, -0.022059653f, -0.17668697f,
+ 0.27870777f, 0.0882822f, 0.12042381f, -0.065641254f,
+ 0.037420895f, -0.09778328f, 0.048127275f, -0.14856833f,
+ 0.016820913f, 0.24049033f, 0.02046954f, 0.0010473416f,
+ 0.069257595f, 0.00047073318f, 0.016502276f, 0.037171345f,
+ -0.027423626f, 0.08094469f, 0.12718323f, 0.023004819f,
+ -0.16268742f, -0.6555945f, 0.044455487f, -0.0048457757f,
+ -0.71461165f, 0.08670137f, 0.031607274f, 0.12936504f,
+ -0.13414384f, -0.121445306f, -0.03849295f, -0.11991031f,
+ -0.11503438f, 0.14935283f, 0.005869697f, 0.05855875f,
+ -0.13566682f, 0.05460486f, 0.26950622f, -0.023725431f,
+ -0.18094462f, -0.3288954f, 0.12835228f, -0.13918604f,
+ -0.25894257f, 0.24866861f, 0.19797443f, -0.3185861f,
+ -0.4538392f, 0.5364495f, 0.1551317f, 0.027166666f,
+ 0.68717986f, 0.024286747f, -0.007673651f, -0.042770237f,
+ 0.06102508f, -0.008748829f, 0.27833f, 0.12717918f,
+ 0.0074475827f, 0.013339506f, -0.16084987f, -0.33334672f,
+ -0.32459357f, -0.1697055f, 0.041840397f, -0.010056051f,
+ -0.08152204f, -0.038750067f, -0.109198496f, 0.10881584f,
+ 0.045977276f, -0.12367964f, 0.124936715f, 0.08947771f,
+ 0.15773907f, -0.10558413f, -0.08890653f, -0.12667038f,
+ 0.068530135f, -0.04798422f, -0.048571695f, 0.01556262f,
+ 0.28346398f, 0.06926974f, 0.018841807f, 0.0030591383f,
+ 0.61999774f, -0.16714922f, 0.04571468f, -0.0375588f,
+ -0.38012975f, 0.04752168f, 0.24807456f, 0.11863758f,
+ 0.37977052f, 0.088591434f, 0.018503375f, -0.07567685f,
+ 0.23532447f, -0.039010324f, -0.035268024f, -0.0189523f,
+ 0.048457853f, 0.07053109f, -0.42127016f, 0.29783103f,
+ 0.3053074f, 0.07399842f, 0.028126173f, 0.07503575f,
+ -0.46638048f, -0.6546268f, -0.06600755f, -0.12437929f,
+ -0.49663895f, 0.060916252f, -0.02334744f, 0.058156233f,
+ -0.017588122f, 0.1656786f, -0.16074547f, -0.068136305f,
+ 0.03314569f, 0.022328204f, -0.38845664f, 0.014804293f,
+ 0.20837206f, 0.09142284f, -0.1729515f, 0.1111258f,
+ -0.011469835f, 0.11911899f, -0.013932823f, 0.044445902f,
+ -0.09061177f, -0.108313695f, 0.05736543f, 0.049318824f,
+ 0.11082676f, -0.26152828f, -0.06357221f, 0.027943734f,
+ -0.05265921f, -0.032501657f, -0.07874157f, 0.1301029f,
+ 0.05559554f, -0.4085352f, -0.053924914f, -0.011387347f,
+ 0.27955183f, 0.124695465f, -0.10201531f, -0.16433685f,
+ 0.26747915f, -0.028152391f, 0.050380062f, -0.043049768f,
+ -0.02695814f, -0.026684057f, -0.06567921f, -0.05649221f,
+ -0.13940194f, -0.04109829f, 0.15169705f, 0.039074518f,
+ -0.040536705f, 0.38604438f, -0.076797076f, -0.11732102f,
+ 0.0034472034f, 0.014767471f, -0.3028846f, 0.09768299f,
+ -0.0999262f, 0.17279045f, -0.034152165f, -0.049370043f,
+ -0.29809505f, 0.05703701f, 0.03032144f, -0.16540793f,
+ 0.020043517f, 0.15464152f, 0.28926808f, -0.116804f,
+ 0.012878732f, -0.013723545f, -0.30570906f, 0.27432027f,
+ -0.1076496f, 0.004620526f, -0.090173654f, -0.024317898f,
+ -0.028670887f, 0.02080704f, -0.13115174f, 0.12980433f,
+ -0.016059363f, -0.3273988f, -0.20746604f, -0.10846393f,
+ 0.31477135f, -0.28824368f, -0.12544271f, 0.019616343f,
+ 0.030158808f, -0.065645956f, -0.07012343f, 0.23492855f,
+ -0.14928174f, 0.11859912f, -0.0512264f, -0.07842575f,
+ -0.016628962f, -0.0866912f, -0.0017562689f, 0.104286484f,
+ -0.17881766f, 0.04438131f, 0.00041794876f, 0.047009986f,
+ -0.051640607f, 0.004794025f, 0.07535653f, 0.1760129f,
+ 0.30157992f, -0.006644459f, -0.4864636f, -0.0049463087f,
+ 0.99981844f, 0.28017938f, 0.75015306f, -0.14620423f,
+ -0.7552411f, -0.14169565f, 0.88875294f, -0.0941533f,
+ -0.08771065f, 0.43264768f, -0.122643076f, -0.09946617f,
+ 0.24199682f, -0.06140546f, -0.075821154f, 0.132936f,
+ -0.05300541f, -0.1692222f, -0.32285467f, 0.16175646f,
+ 0.03990491f, -0.101796366f, 0.38788354f, -0.29432398f,
+ 0.3256876f, 0.023721058f, -0.017262757f, -0.049910165f,
+ 0.13743377f, 0.05250017f, 0.10302956f, -0.11867779f,
+ -0.01379607f, 0.65658563f, 0.2100528f, 0.14688495f,
+ 0.0012197153f, -1.019185f, -0.14964792f, -0.038188186f,
+ -0.04742091f, 0.06629005f, -0.055753727f, -0.04108325f,
+ 0.22405358f, 0.011693555f, 0.08351808f, -0.33285096f,
+ -0.1951514f, 0.18591835f, -0.07038352f, -0.41515526f,
+ 0.30644387f, 0.049732972f, 0.3501388f, -0.022745403f,
+ -0.44249812f, -0.17230783f, -0.18343619f, -0.48554075f,
+ -0.23056608f, -0.0497684f, 0.96615046f, -0.07450887f,
+ -0.30091044f, 0.21988298f, -0.1506008f, 0.61223596f,
+ 0.72351396f, -0.097042955f, -0.33462253f, -0.018057587f,
+ -0.27511418f, -0.23605423f, 0.053683765f, 0.12331371f,
+ 0.21337709f, 0.029036937f, 0.022526568f, -0.37294808f,
+ 0.034949794f, 0.21139902f, 0.76709783f, 0.008708063f,
+ -0.0740423f, -0.03529479f, -0.15194175f, -0.20387207f,
+ 0.054805573f, 0.023803893f, 0.09044283f, -0.009814897f,
+ -0.09347209f, -0.049156636f, 0.05606229f, 0.02499574f,
+ 0.045593146f, -0.64147115f, -0.08693846f, -0.16407625f,
+ -1.084042f, 0.85156024f, -0.35090068f, 0.10846088f,
+ 0.07913209f, -0.042319633f, 0.10668899f, 0.11463623f,
+ -0.0060765613f, 0.07862882f, -0.04391885f, -0.1169007f,
+ 0.04778016f, -0.13680944f, 0.08439027f, 0.5112891f,
+ -0.67963f, 0.0788026f, -0.06853963f, -0.004015502f,
+ 0.6819649f, 0.043306787f, 0.5397161f, 0.01562569f,
+ -0.79884213f, 0.08728057f, -0.7448577f, 0.026940936f,
+ -0.13321185f, -0.17912558f, -0.5128764f, -0.43889427f,
+ -0.45211416f, 0.25975546f, 0.71248746f, 0.09770223f,
+ -0.2614239f, -0.062976666f, 0.20463154f, 0.08805496f,
+ -0.5721739f, 0.017308708f, 0.0033507457f, 0.08538488f,
+ 0.01429926f, 0.23876584f, 0.17768128f, -0.0128559675f,
+ 0.017313773f, 0.15463735f, -0.16352974f, 0.6664047f,
+ 0.06061898f, 0.0046455986f, -0.18221022f, 0.05612446f,
+ -0.04426987f, -0.0044677393f, -0.49401823f, 0.0016286043f,
+ -0.04487959f, -0.34221268f, -0.022586875f, -0.030973095f,
+ 0.9117753f, -0.39437345f, 0.0794164f, -0.063622266f,
+ 0.009567414f, 0.05309906f, 0.027914999f, -0.21267201f,
+ -0.12880978f, -0.016684208f, 0.046442125f, 0.60035485f,
+ 0.037381038f, -0.044626553f, -0.023690557f, -0.16113326f,
+ 0.40192193f, -0.01627222f, 0.17380966f, 0.017046373f,
+ -0.7455078f, 0.19435745f, -0.37134346f, 0.16180801f,
+ -0.4121857f, 0.0009583997f, 0.046015784f, 0.047346722f,
+ 0.6995106f, 0.24398062f, 0.3396209f, -0.087725356f,
+ 0.046205908f, -0.1834136f, -0.08497787f, -0.32232353f,
+ 0.32160932f, 0.20456788f, -0.115891576f, -0.11224769f,
+ -0.29491124f, 0.02852774f, 0.032337524f, -0.13349879f,
+ -0.008897463f, 0.14181061f, 0.046290573f, -0.06423909f,
+ -0.0017573552f, 0.11556453f, 0.42326537f, -1.0129623f,
+ 0.327276f, 0.16455577f, -0.019055968f, 0.1239059f,
+ 0.042649545f, 0.0158976f, -0.014213948f, 0.043385267f,
+ 0.025418913f, 0.6764359f, 0.22983883f, -0.17702171f,
+ -0.044895127f, -0.45830607f, -0.8805565f, 0.12511049f,
+ 0.015667526f, -0.08904732f, -0.036180258f, -0.29310372f,
+ 0.2272924f, -0.6137482f, -0.055396058f, -0.13917828f,
+ 0.11204444f, -0.0044645346f, -0.07424917f, 0.2642075f,
+ -0.722629f, 0.44809127f, -0.0389556f, -0.049124334f,
+ -0.4352247f, 0.5971468f, 0.54822046f, -0.49104947f,
+ -0.057140257f, -0.0074143913f, 1.3554336f, 0.051689424f,
+ -0.21423684f, 1.4018453f, -0.44288862f, -0.15157351f,
+ -0.088252254f, 0.48783636f, -0.3792479f, 0.4844827f,
+ -0.7680109f, -0.8833314f, -0.037443038f, 0.0466122f,
+ 0.24388036f, -0.108721785f, -0.04240605f, -0.71150804f,
+ -0.051696185f, -0.38899156f, 0.44967824f, 0.09061686f,
+ 0.0393883f, -0.36576313f, -0.24985735f, 0.3085152f,
+ -0.51230776f, -0.326061f, 0.13631403f, -0.103667766f,
+ 0.12420115f, 0.10082946f, -0.3511401f, -0.08513718f,
+ -0.028246501f, -0.16485122f, -0.3624337f, 0.6240003f,
+ -0.17765431f, -0.082381465f, -0.16676894f, -0.1571694f,
+ -0.09075203f, 0.1672078f, 0.01877637f, -0.36397508f,
+ 0.20642075f, -0.034401774f, 0.07654029f, -0.35307553f,
+ 0.12972488f, 0.099575624f, 0.045926373f, -0.3592577f,
+ 0.299326f, 0.16800542f, 0.24225566f, -0.059390683f,
+ 1.4563966f, -0.52309936f, -0.1426611f, 0.2470431f,
+ 1.2995605f, 0.0045726653f, -0.64037806f, -0.039845392f,
+ -0.05576914f, -0.4580847f, -0.89426905f, 0.45873097f,
+ 0.5476584f, 0.03214348f, -0.16344343f, -0.49475554f,
+ 0.80090976f, 0.2918706f, -0.18096869f, 0.02128342f,
+ 0.56787f, -0.04792103f, -0.007883926f, 0.20527421f,
+ -0.017115528f, -0.47968748f, 0.2517807f, 0.066902354f,
+ -0.032381605f, 0.15585391f, -0.0065275826f, -0.35530648f,
+ 0.2252194f, 0.03590487f, 0.2681693f, -0.11395158f,
+ 0.041178916f, -0.041076913f, 0.3082287f, -0.111502446f,
+ 0.055950325f, -0.068336345f, -0.2574055f, 0.013378321f,
+ -0.03507163f, 0.39285472f, 0.52666324f, 0.056973044f,
+ -0.0400084f, 0.008564027f, 0.064295426f, 0.23629187f,
+ -0.44162133f, -0.016122507f, 0.0010388065f, 0.11486115f,
+ 0.23823747f, 0.08200071f, 0.03733934f, 0.24824956f,
+ 1.1843475f, -0.13962187f, -0.39082828f, 0.048489172f,
+ -1.0222741f, 0.7573068f, 0.25776228f, 0.10316356f,
+ 0.28093833f, 0.026721075f, 1.2355736f, -0.04676423f,
+ -1.0405042f, -0.11024771f, -0.26873586f, 0.21673316f,
+ -0.14101687f, -0.18625113f, 0.16181695f, 0.23847565f,
+ -0.15598075f, -0.046676226f, 0.2827923f, 0.045970574f,
+ -0.15885073f, 0.028700503f, 0.033175338f, -0.00829675f,
+ 0.02687276f, -0.056945253f, -0.82501096f, -0.07021997f,
+ -0.008664024f, 0.13186662f, -0.021913992f, 0.45170218f,
+ 0.43144658f, -0.121759124f, -0.046265624f, 0.004949928f,
+ -0.09009411f, -0.04252105f, 0.11162812f, 0.012462616f,
+ -0.050592136f, 0.5804562f, 0.20878513f, 0.17177077f,
+ -0.45137408f, 0.26755846f, 0.8317351f, -0.12686104f,
+ -0.0036340342f, 0.022593478f, 0.033594113f, 0.12184944f,
+ -0.16756459f, 0.3928308f, 0.005338583f, -0.22811142f,
+ -0.30418447f, -0.037207115f, 0.06782122f, -0.17265911f,
+ -0.13230719f, 0.23851812f, 0.13234794f, -0.1154366f,
+ -0.068542235f, -0.4627919f, 0.32979357f, -0.036392566f,
+ 0.13473643f, -0.019162534f, -0.6430242f, -0.0016206398f,
+ 1.0857452f, -0.3621882f, -0.040646385f, -0.37797552f,
+ 0.2018547f, 0.18339004f, -0.41834205f, 0.35873428f,
+ 0.22345021f, 0.0530302f, -0.056131415f, -0.06505803f,
+ -0.4047926f, 0.07171706f, 0.0116211865f, -0.1098756f,
+ 0.03693342f, 0.31639275f, -0.13731891f, -0.02894667f,
+ 0.014420687f, -0.17089212f, 0.248678f, 0.15520826f,
+ -0.54199296f, 0.22214583f, -0.15422465f, 0.09702469f,
+ -0.10166528f, -0.04396382f, -0.28055897f, 0.1022914f,
+ 0.011325716f, 0.53971857f, 0.09255881f, -0.49870223f,
+ 0.35438457f, -0.5769723f, -0.30997258f, 0.07104318f,
+ 0.037779607f, -0.12866892f, -0.08570112f, 0.53977764f,
+ 0.10496306f, -0.25952613f, -0.06947783f, -0.0047552804f,
+ 0.0898693f, -0.07720403f, -0.067478836f, -0.021315409f,
+ 0.18945248f, -0.16317979f, 0.23232383f, 0.16493674f,
+ 0.4163322f, 0.0781759f, -0.4258002f, -0.012804674f,
+ -0.6245893f, -0.034604143f, -0.039183505f, 0.056304f,
+ -0.3235779f, -0.42885864f, 0.7650688f, -0.1114653f,
+ 0.6291103f, -0.050434288f, -0.23134397f, 0.009165003f,
+ 0.44632873f, -0.23773855f, -0.08732656f, 0.014459259f,
+ -0.18376805f, 0.008373621f, -0.07309256f, -0.106509104f,
+ 0.015056879f, -0.5893809f, -0.18251958f, 0.01755584f,
+ 0.011032683f, 0.13843608f, 0.7800908f, 0.36020896f,
+ 0.46289355f, 0.05201512f, 0.088167086f, -0.15388323f,
+ -0.02694291f, 0.015415665f, -0.12438771f, -0.024108835f,
+ 0.013043372f, -0.43957457f, 0.088509075f, 0.04309229f,
+ -0.07133356f, -0.95177376f, -0.2678068f, -0.05476798f,
+ -0.00685724f, 0.011513751f, -0.008440102f, 0.10776503f,
+ 1.0321267f, 0.1582699f, 0.050195847f, 0.1634615f,
+ -0.28570443f, 0.092233464f, -0.017145531f, 0.110260025f,
+ 0.28161857f, -0.12653746f, 0.07268945f, 0.09704572f,
+ -0.39868522f, -1.5608557f, 0.0807589f, 0.32353407f,
+ -0.18021089f, -0.03440525f, -0.8311514f, -0.032484684f,
+ 0.32842445f, 0.40008506f, 0.08982196f, -0.22198847f,
+ 0.1434313f, -0.046729002f, 0.48380226f, 0.66356933f,
+ 0.6976522f, -0.5714509f, 0.14379509f, 0.056072246f,
+ 0.27770153f, 0.0070501477f, 0.068167016f, 0.11607486f,
+ -0.0006700506f, 0.042464823f, -0.054199215f, 0.062650755f,
+ -0.03125403f, 0.013899791f, -0.35028034f, -0.3558799f,
+ -0.28724313f, -0.04899593f, 0.011317216f, 0.11541869f,
+ -0.02140986f, -0.0026176153f, -0.0059981435f, 0.069355555f,
+ -0.042553082f, 0.73822194f, 0.3262634f, 0.09248582f,
+ 0.29421788f, -0.5798051f, -0.2926421f, 0.0841797f,
+ 0.033948235f, -0.025039556f, 0.051565994f, 0.6059614f,
+ 0.07723704f, -0.0329513f, -0.05262545f, -0.102209665f,
+ 0.6267219f, -0.12537308f, 0.05970058f, 0.20255937f,
+ 0.41567078f, -0.80001247f, -0.6900568f, -0.10799171f,
+ -0.511725f, 0.049079668f, -0.12900902f, 0.04779727f,
+ 0.20864587f, 0.050453838f, 0.30489194f, -0.0016741492f,
+ 0.042291842f, -0.64010245f, 0.60374117f, -0.077798545f,
+ 0.07687081f, 0.16316062f, -0.3074694f, -0.18669386f,
+ 0.25767046f, 0.36188442f, -0.059293363f, -0.057139933f,
+ 0.020630894f, -0.013469758f, -0.019203695f, -0.16148488f,
+ -0.027446723f, 0.27997342f, 0.31766203f, -0.1404325f,
+ 0.0410099f, -0.2533441f, -1.1809363f, -0.10958472f,
+ 0.116347745f, 0.013567234f, -0.11159709f, 0.04819467f,
+ 0.05900707f, -0.007352562f, -0.014661481f, -0.061657015f,
+ 0.029473506f, 1.1943647f, 0.11530376f, -0.17227276f,
+ 0.40300205f, -0.986822f, 0.1879279f, -0.037415467f,
+ -0.026573367f, 0.025214637f, -0.053723242f, 0.03885142f,
+ -0.0070074173f, 0.11223131f, 0.032808132f, -0.1442565f,
+ -0.19912496f, 0.07817793f, -0.09777844f, -0.27950895f,
+ 0.8410246f, -0.30614904f, -0.0061865887f, -0.0071548456f,
+ -1.1758162f, 0.022818647f, 0.24017975f, 0.14344482f,
+ 0.0834544f, -0.03341387f, 0.12318782f, 0.026952153f,
+ -0.02427485f, 1.1132215f, 0.12281676f, 0.46952203f,
+ -0.04627051f, -0.11297218f, 0.7735109f, -0.24203792f,
+ -0.21309038f, 0.008705652f, 0.1622859f, -0.040875368f,
+ -0.5313615f, 0.05556046f, 0.043643165f, 0.15254527f,
+ 0.0076187965f, 0.55094856f, 0.0032890595f, -0.002367721f,
+ 0.036769032f, -0.9257932f, 0.0025219414f, -0.09497687f,
+ -0.4652572f, 0.046699304f, -0.129029f, 0.24149823f,
+ -0.045130238f, 0.06813913f, 0.027863413f, 0.11110108f,
+ -0.030894818f, -0.014818717f, -0.09947935f, 0.10741259f,
+ 0.13476871f, 0.35457763f, 0.6867406f, -0.0061841975f,
+ -0.011990315f, -0.017120712f, 0.0018497618f, 0.097620666f,
+ -0.8202574f, -1.1433727f, -0.005732898f, -0.06723482f,
+ 0.17461577f, -0.08072869f, -0.083160795f, -0.17691754f,
+ -0.21602936f, 0.051062748f, -0.10313058f, -0.022493767f,
+ 1.1036471f, 1.1305901f, -0.026133608f, -0.010434488f,
+ -0.21055792f, -0.037988577f, 0.12376131f, 0.14323397f,
+ -0.17366052f, -0.20061208f, -0.3302822f, 0.32439324f,
+ 0.0031347799f, 0.7850242f, -1.3354675f, 0.0005811474f,
+ -0.72887814f, 0.18275303f, -0.24607456f, 0.005753311f,
+ -0.7319752f, -0.08385432f, -0.06753906f, -0.035555843f,
+ -0.039811388f, -0.3767015f, -0.076315135f, -0.07321679f,
+ -0.042882103f, -0.5356063f, 0.39188573f, 1.10181f,
+ 0.9717924f, -0.050963774f, 0.116258524f, -0.3170713f,
+ 0.105097726f, -0.078811236f, -0.006035284f, -0.19858313f,
+ 0.04085725f, 0.16094492f, -0.32044485f, -0.12763774f,
+ 0.3173443f, 0.978693f, 0.29491243f, -0.053569093f,
+ -0.029439753f, 0.050673287f, -0.002950207f, -1.1268907f,
+ -0.1814021f, -0.06784573f, 0.079573624f, -0.1103384f,
+ -0.2972119f, 0.15926753f, 0.04600996f, 0.17779268f,
+ -0.15466182f, 0.2439738f, 0.11229599f, -0.05396734f,
+ 0.20770589f, -0.1592725f, 0.0072727804f, -0.14122207f,
+ 0.16747157f, 0.026307067f, 0.34724113f, -0.12883927f,
+ -0.32976663f, -0.4784437f, -0.38176396f, -0.042456377f,
+ -0.17982274f, -0.3263336f, 1.2804618f, 0.0672359f,
+ -0.20580126f, 0.0050948747f, 0.021570781f, 0.04576525f,
+ 0.14364547f, 0.03591371f, 0.028750364f, 0.011304305f,
+ 0.026089223f, 0.07115567f, 0.50790364f, 0.1289591f,
+ -7.538129e-05f, -0.17464624f, 1.1031022f, 0.5880171f,
+ -0.54630625f, 0.07950734f, 0.018629998f, 0.06347779f,
+ -0.08137025f, -0.022692818f, -1.27228f, 0.05427399f,
+ 0.003013075f, -0.7753348f, -0.019878622f, -0.005978487f,
+ -0.22193187f, 0.73336524f, 0.032962702f, 0.052645594f,
+ 0.038553942f, -0.04428346f, 0.001628849f, -0.21992552f,
+ -0.27922797f, 0.113163665f, -0.057953272f, 0.077588394f,
+ -0.47884265f, -0.10492611f, 0.023605864f, 0.14198686f,
+ -0.60365f, 0.15271837f, -0.034451663f, 0.09869482f,
+ 0.09592742f, -0.021369549f, 0.21813178f, 0.009439557f,
+ -0.07610781f, 0.010436077f, -0.32621768f, -0.027276881f,
+ 0.13276872f, -0.14211676f, -0.53679705f, -0.56170017f,
+ -0.39770064f, 0.2034383f, -0.31893313f, -0.059384283f,
+ 0.07372254f, -0.118807755f, -0.022499843f, 0.02138475f,
+ 0.42912447f, -0.009667081f, 0.012234381f, -0.029710962f,
+ 0.014417958f, -0.2906427f, 0.2570921f, 0.0918705f,
+ -0.06424748f, 0.20960762f, 0.13979726f, -0.12340614f,
+ 0.24078718f, 0.069526605f, -0.009723069f, -0.117215894f,
+ -0.036689237f, -0.10497276f, -0.10562419f, -0.08054766f,
+ -0.016451294f, -0.066775054f, -0.10471317f, -0.15725246f,
+ 0.21348801f, 0.08220628f, -0.3099748f, -0.012443495f,
+ 0.027471306f, 0.031791907f, 0.02677954f, -0.29549146f,
+ -0.18081899f, 1.0454957f, 0.012804411f, -0.16972886f,
+ 0.1852477f, 0.021314248f, 0.07389345f, -0.042197887f,
+ 0.09627866f, 0.43722162f, -0.026418352f, 0.019084796f,
+ -0.03412653f, -0.36761016f, -0.050523378f, -0.024823833f,
+ 0.006965418f, 0.05093384f, 0.10571677f, -0.09560457f,
+ 0.02385254f, -0.31666005f, 0.38788697f, -0.1767426f,
+ 0.4421854f, 0.42247447f, 0.09079974f, -0.002550792f,
+ 0.25771818f, 0.51293385f, 0.04060248f, -0.024710149f,
+ 0.60944444f, 0.007235594f, 0.0133967055f, 0.0066959034f,
+ -0.017091477f, -0.022553185f, 0.34642157f, 0.014992752f,
+ 0.03232206f, 0.44279772f, -0.81803626f, -0.49028736f,
+ -0.34415767f, -0.012991667f, -0.053332772f, 0.11375271f,
+ 0.019600764f, 0.13227576f, 0.38333622f, 0.07751584f,
+ 0.0056394325f, -0.60639817f, -0.17243211f, 0.1657753f,
+ -0.50583124f, -0.03649593f, 0.18073754f, 0.051965218f,
+ 0.0063883816f, -0.046350554f, 0.0074547655f, 0.4233464f,
+ 0.071552955f, -0.0372205f, -0.082861f, 0.118820414f,
+ 0.8847104f, -0.089769505f, -0.05605843f, -0.05030289f,
+ 0.25012562f, 0.1962773f, -0.17559469f, 0.022449434f,
+ -0.09728449f, 0.11843631f, 0.09195262f, 0.0048188637f,
+ -0.39914495f, -0.0022937097f, 0.009196685f, 0.11434106f,
+ -0.25181392f, 0.15550734f, 0.16759759f, 0.07037398f,
+ -0.4151557f, -0.55648756f, -0.5252056f, -0.025239188f,
+ -0.18091466f, -0.29778737f, 0.07765983f, -0.025024122f,
+ -0.1486579f, -0.018841209f, -0.012327863f, 0.032643806f,
+ 0.017856779f, 0.24027725f, -0.5038195f, -0.108413145f,
+ 0.017078506f, 0.025562868f, -0.74949616f, -0.30621454f,
+ -0.096019186f, -0.13243535f, 0.06764826f, 0.0040682447f,
+ 0.023817088f, -0.011803489f, 0.047801204f, 0.036649786f,
+ 0.005638798f, 1.1893104f, -0.15909116f, 0.058457773f,
+ -0.19311047f, -0.024304366f, 0.1253302f, -0.041249488f,
+ -0.036928393f, 0.022007238f, -0.023162698f, 0.0140922405f,
+ -0.19516999f, -0.21980476f, 0.03217672f, 0.057192955f,
+ -0.5846498f, 0.06265048f, 0.033024542f, -0.055355337f,
+ -0.089094445f, 0.49381608f, -0.07266042f, -0.046155013f,
+ -0.05647059f, -0.07905684f, 0.02371609f, 0.15074208f,
+ 0.3374095f, -0.03365276f, -0.09693421f, -0.00866088f,
+ 0.29189178f, 0.21956061f, -0.0018090261f, 0.18579072f,
+ -0.00567612f, 0.020380676f, 0.04264509f, -0.0291697f,
+ -0.07688213f, -0.4056838f, -0.059556324f, 0.01163347f,
+ -0.25637966f, -0.0018530907f, -0.015948305f, -0.012957463f,
+ 0.0009555749f, 0.263704f, -0.061690062f, 0.008336223f,
+ -0.010992762f, 0.022603294f, 0.03266455f, 0.07193524f,
+ -0.1565636f, -0.0056134355f, 0.032574214f, -0.042046014f,
+ 0.03552414f, -0.040826626f, -0.031631753f, -0.054056376f,
+ 0.0035004085f, -0.033404734f, -0.013030556f, -0.040594816f,
+ 0.005856872f, -0.18011747f, 0.02185375f, 0.011506203f,
+ -0.006550561f, 0.028001865f, 0.006267785f, -0.010179458f,
+ -0.00021979935f, -0.15015735f, 0.01564783f, 0.012559334f,
+ 0.35509235f, -0.042553835f, 0.017584192f, -0.041904543f,
+ -0.37242705f, 0.014638534f, 0.12258163f, -0.015398692f,
+ -0.09282839f, -0.098346874f, 0.07173432f, 0.014877965f,
+ -0.035603583f, 0.03248589f, 0.036383968f, -0.010253986f,
+ 0.072864816f, 0.1544448f, 0.21713263f, 0.0513127f,
+ 0.053371716f, -0.025605045f, 0.020002762f, -0.0035021324f,
+ 0.10945562f, 0.34046754f, 0.05610926f, 0.007739632f,
+ 0.25483266f, -0.004919215f, 0.011722813f, -0.01185588f,
+ 0.0071812407f, -0.35035092f, -0.199691f, 0.050863247f,
+ 0.0037099887f, -0.07624686f, 0.023245746f, -0.10927406f,
+ 0.06387228f, 0.012235366f, -0.07051909f, 0.0035110123f,
+ -0.044049196f, 0.06724817f, 0.0887703f, 0.002739086f,
+ -0.03936518f, 0.14276603f, 0.026522987f, 0.10007684f,
+ 0.24641593f, 0.06179833f, -0.08179211f, -0.008371142f,
+ 0.0061716726f, -0.020302314f, 0.006387707f, 0.028108684f,
+ 0.039199162f, 0.17813778f, -0.028087312f, -0.005437027f,
+ -0.29374814f, 0.035192713f, -0.0038719552f, -0.21371336f,
+ -0.18716288f, -0.0059998464f, 0.044470888f, 0.06616218f,
+ -0.010356968f, -0.0157583f, 0.15716474f, 0.013291099f,
+ -0.0399417f, -0.0060877493f, -0.0529055f, -0.008940092f,
+ 0.021424714f, -0.18112889f, -0.19215365f, 0.090093695f,
+ -0.065919116f, -0.025406588f, -0.057953708f, 0.01085119f,
+ 0.09008777f, -0.1427311f, 0.032077298f, 0.007878163f,
+ 0.14274172f, 0.0015238108f, 0.0027622178f, 0.030093087f,
+ 0.0061876876f, 0.1606966f, -0.027860422f, -0.078456014f,
+ -0.010638592f, 0.016971648f, -0.13165618f, 0.0869493f,
+ 0.060358085f, -0.038722765f, 0.054401074f, 0.02063669f,
+ 0.00044111305f, -0.07282876f, 0.0021042319f, -0.0049562375f,
+ 0.021399016f, 0.013015557f, -0.0067407843f, -0.03715167f,
+ 0.024515964f, 0.12294532f, 0.03299622f, -0.031252883f,
+ 0.0057252473f, 0.019837135f, 0.021760704f, -0.009635009f,
+ 0.0067916503f, 0.4775284f, 0.018747173f, 0.0039202846f,
+ 0.23521702f, -0.003757172f, 0.024565082f, 0.089966215f,
+ -0.14797732f, 0.005122042f, 0.049538136f, -0.053671554f,
+ 0.06552874f, 0.0068669445f, 0.13403544f, 0.002203662f,
+ 0.034464814f, -0.009853258f, -0.034477677f, 0.022904877f,
+ -0.024977747f, 0.044089023f, -0.15747781f, -0.044312984f,
+ -0.046824772f, 0.053417217f, -0.13504808f, 0.06862784f,
+ 0.032085754f, 0.2927457f, 0.08689808f, 0.017087124f,
+ 0.5035299f, 0.00075250823f, 0.001001657f, -0.015898747f,
+ -0.0058109593f, -0.13477407f, -0.26842594f, -0.056808073f,
+ 0.010101589f, 0.04392939f, -0.044679046f, 0.0016418663f,
+ 0.21171609f, -0.07709093f, 0.036335133f, 0.069893934f,
+ -0.041565932f, 0.06567494f, 0.010762502f, 0.009041383f,
+ -0.013450415f, -0.06483575f, 0.000611196f, 0.019024193f,
+ 0.05183647f, -0.15539657f, 0.04999349f, -0.049802296f,
+ 0.0059563345f, -0.00862811f, 0.0062819663f, 0.026432453f,
+ 0.0046448587f, 0.09484473f, -0.024152175f, 0.0029530919f,
+ -0.30653492f, 0.011487342f, -0.02740724f, 0.016938843f,
+ -0.38705912f, -0.023733681f, 0.08587131f, -0.07057287f,
+ -0.09987141f, -0.041638277f, -0.015748398f, -0.011953839f,
+ -0.023850376f, -0.010638727f, 0.019983346f, 0.034045566f,
+ -0.034286886f, -0.018681895f, -0.11811369f, 0.02329307f,
+ -0.14991036f, -0.11635875f, 0.12554833f, 0.050517257f,
+ -0.013545688f, 0.010023286f, -0.14217165f, -0.020149386f,
+ -0.84776783f, 0.014956831f, 0.0080571575f, 0.022529349f,
+ 0.016131734f, 0.34766576f, -0.28717834f, 0.022886729f,
+ 0.007505809f, -0.07459979f, 0.049174964f, 0.03531444f,
+ -0.24115752f, 0.13978042f, 0.009610393f, -0.06797086f,
+ 0.0038652082f, -0.10778967f, -0.105480544f, 0.016254485f,
+ 0.040416807f, 0.19715598f, 0.011716862f, -0.20091647f,
+ -0.1284719f, -0.06655969f, -0.06372599f, 0.061530914f,
+ 0.0071623293f, -0.00055192213f, -0.010003944f, 0.01270999f,
+ 0.016268587f, -0.93084055f, 0.034755267f, 0.050923683f,
+ -0.32863027f, -0.011222176f, 0.03084846f, 0.2580128f,
+ -0.03598173f, 0.0020916131f, 0.024662836f, 0.099588156f,
+ -0.04340161f, -0.07580104f, -0.039105278f, 0.012617511f,
+ -0.0107284095f, -0.021715388f, 0.054205354f, 0.007086662f,
+ 0.0038897693f, 0.08667516f, -0.25350285f, -0.18199834f,
+ 0.17164823f, 0.05056857f, 0.06219424f, 0.04042452f,
+ -0.005915836f, 0.09847343f, -0.019558081f, -0.033958144f,
+ -0.12838013f, -0.009667054f, -0.012631435f, 0.010164979f,
+ -0.023161767f, -0.025709983f, -0.09592506f, 0.025374291f,
+ -0.0023960243f, 0.0049725426f, -0.062229663f, -0.013622516f,
+ -0.1894946f, -0.041507922f, -0.05449907f, -0.016084326f,
+ 0.03572615f, 0.09910037f, 0.07112183f, 0.038772523f,
+ -0.014430125f, 0.034653023f, -0.007824785f, 0.086341396f,
+ -0.050112672f, 0.005704569f, 0.023171974f, 0.019399222f,
+ -0.029673908f, -0.020681363f, -0.023864439f, -0.024737187f,
+ -0.016021706f, 0.071903735f, -0.027813716f, -0.014238086f,
+ 0.40620986f, 0.004378562f, -0.036933623f, -0.19499314f,
+ -0.19671758f, -0.026845016f, 0.06062793f, -0.011533537f,
+ 0.041228235f, -0.015324207f, -0.061375067f, 0.0063267536f,
+ 0.0831155f, 0.02641968f, 0.04628357f, -0.038645204f,
+ -0.019350575f, 0.16452208f, -0.1296833f, -0.0035525183f,
+ 0.09798307f, -0.008281434f, 0.058930982f, 0.0104753515f,
+ 0.022615723f, 0.049554665f, -0.014036251f, -0.028590485f,
+ -0.12403653f, 9.973729e-05f, 0.016919682f, -0.0030448653f,
+ -0.00047174798f, 0.010548523f, 0.0011307914f, 0.032206226f,
+ -0.0005255651f, -0.0140659185f, -0.04454255f, 0.018292774f,
+ -0.35233966f, 0.0720653f, -0.06981871f, -0.02320934f,
+ 0.008021986f, -0.020587703f, 0.0031995457f, 0.029775469f,
+ 0.018949479f, -0.025305906f, -0.0039514718f, 0.004114255f,
+ 0.010616475f, -0.0045592557f, -0.0013737231f, 0.0222724f,
+ 0.009040806f, -0.023175644f, -0.0062583582f, -0.0051744464f,
+ -0.0029323208f, 0.28508502f, 0.010471018f, 0.0074592414f,
+ 0.32417703f, -0.0010951336f, 0.026325412f, -0.05362879f,
+ 0.0047209887f, 0.0036806585f, 0.018787121f, 0.0737881f,
+ -0.15814061f, -0.030890506f, -0.003131501f, -0.0022139882f,
+ -0.05091044f, -0.008630115f, -0.007888855f, 0.003442951f,
+ 0.020002233f, 0.0067732157f, -0.11338125f, 0.005323204f,
+ 0.08581953f, -0.009921819f, -0.04381854f, 0.09075186f,
+ 0.10942189f, -0.34535143f, 0.06996103f, 0.03290983f,
+ 0.010956424f, -0.0010596734f, -0.031531554f, 0.003105094f,
+ 0.005063345f, -0.17817424f, -0.22467782f, -0.03204558f,
+ -0.017063458f, -0.0026263276f, -0.023680711f, 0.011354492f,
+ 0.44365758f, -0.12522253f, 0.070168614f, 0.018304965f,
+ 0.013072655f, 0.053862855f, 0.0005638514f, 0.009838059f,
+ -0.027930208f, 0.032304984f, 0.012665151f, 0.15305941f,
+ -0.030275881f, -0.018956136f, -0.010045999f, -0.034550734f,
+ -0.022409191f, 0.027200961f, 0.0054792017f, 0.003778217f,
+ 0.012645259f, 0.23581214f, -0.022396132f, -0.014785858f,
+ -0.28864443f, -0.008141695f, -0.03284804f, -0.06595806f,
+ 0.015881326f, -0.024915846f, -0.00304274f, -0.07632511f,
+ 0.17882277f, 0.044341143f, -0.014664787f, -0.011593968f,
+ 0.15344416f, 0.033612058f, 0.021555474f, -0.017107775f,
+ -0.011054691f, 0.0011349912f, 0.303926f, 0.061851196f,
+ -0.15269431f, 0.0032798336f, -0.121348344f, 0.001092943f,
+ -0.023978744f, 0.14557548f, -0.02470892f, 0.0044718287f,
+ 0.41307703f, 0.0033234789f, 0.021349842f, -0.0102277575f,
+ -0.0066920356f, -0.07728025f, -0.051625866f, 0.026070217f,
+ 0.019166565f, 0.0044421325f, 0.101282105f, -0.013429677f,
+ 0.08875241f, 0.078264f, 0.0015468599f, 0.031788677f,
+ -0.015426687f, -0.039233655f, 0.033676635f, -0.044884443f,
+ 0.006063944f, 0.0063460567f, 0.004738851f, -0.07623809f,
+ 0.0244224f, 0.0076898863f, -0.008901629f, 0.006741368f,
+ 0.024192093f, -0.0022971707f, -0.0014673377f, 0.0056687687f,
+ 0.01718644f, -0.15620369f, 0.024293305f, 0.002468455f,
+ -0.090813704f, 0.0105410395f, 0.0061275014f, 0.17454107f,
+ -0.17297937f, -0.0010996477f, 0.005457069f, -0.0019706106f,
+ 0.34954715f, 0.015803825f, -0.0016383039f, 0.0006059791f,
+ -0.08080886f, -0.03188785f, -0.03773466f, 0.013930498f,
+ 0.0041984706f, -0.019331759f, 0.34472698f, 0.024788488f,
+ -0.45220193f, 0.14947395f, -0.19914968f, 0.05058733f,
+ 0.45231745f, 0.307535f, 0.18695685f, 0.05449232f,
+ 0.7468154f, 0.005301876f, 0.00060457323f, -0.009375542f,
+ 0.011811123f, -0.2551802f, -0.278663f, -0.08959385f,
+ -0.00011646221f, 0.009912444f, -0.054518335f, 0.20310403f,
+ -0.23558189f, -0.019198375f, -0.04581132f, 0.05966815f,
+ -0.03464186f, -0.028622596f, -0.12805519f, 0.031357545f,
+ -0.00197938f, 0.021992022f, -0.010068638f, 0.18228695f,
+ 0.5865127f, 0.5902966f, -0.14120702f, -0.044860706f,
+ 0.009164457f, 0.010502482f, 0.024185726f, -0.047843434f,
+ 0.09928605f, 0.20336407f, 0.0065986295f, -0.0069224765f,
+ -0.11245211f, -0.06320447f, -0.007929063f, -0.118977375f,
+ 0.22941498f, 0.038356006f, 0.04292408f, 0.061910745f,
+ -0.042775534f, -0.16959195f, -0.33885884f, -0.12708695f,
+ 0.31509194f, -0.014119303f, 0.47984788f, 0.0150506515f,
+ -0.13480484f, 0.32461107f, -0.05585692f, -0.061477523f,
+ 0.30642f, 0.087106705f, 0.26704928f, -0.11288326f,
+ -0.47421393f, -0.8101298f, -0.081758f, -0.072706245f,
+ 0.021745177f, -0.008093714f, -0.054871846f, 0.02556656f,
+ -0.03333295f, 0.5797312f, 0.45006835f, -0.03948023f,
+ 0.03255908f, 0.049287707f, -0.1341574f, 0.00011251075f,
+ -0.35776132f, 0.01983484f, -0.07977612f, -0.0027979834f,
+ 0.056354087f, 0.11608664f, -0.20534642f, -0.0010519463f,
+ -0.021072723f, 0.04771979f, 0.054410912f, -0.09463495f,
+ -0.42456836f, 0.33545256f, 0.19486724f, 0.018713055f,
+ -0.04076286f, -0.003794818f, -0.062340584f, 0.047369145f,
+ -0.046406377f, -0.73264265f, 0.016914468f, 0.067707114f,
+ -0.37393793f, 0.07569465f, -0.11171308f, -0.17289065f,
+ 0.83746016f, -0.10645006f, -0.1937567f, -0.007290418f,
+ 0.47579965f, -0.030583022f, 0.70912206f, -0.34115985f,
+ -0.452551f, -0.02578769f, -0.059905548f, -0.0034691796f,
+ 0.67249674f, 0.49157077f, 0.27046028f, -0.0012706895f,
+ 0.39706445f, -0.061415277f, -0.1805578f, 0.08519831f,
+ -0.14749447f, 0.3719679f, 0.061611068f, 0.14352605f,
+ -0.17005554f, -0.04762322f, 0.020197773f, 0.15962957f,
+ 0.004129819f, 0.110997856f, -0.5061546f, 0.055705737f,
+ -0.04881541f, -0.093093395f, -0.46858948f, -0.20287752f,
+ 0.25041476f, -0.06348368f, 0.09201104f, -0.043143705f,
+ 0.0014043635f, -0.13019611f, 0.3011483f, -0.09239494f,
+ 0.018448504f, 0.5684851f, -0.018370045f, 0.06784864f,
+ 0.0025318447f, -0.5006786f, -0.04040604f, 0.022323987f,
+ 0.016484573f, 0.08926376f, 0.11377909f, -0.002378205f,
+ 0.087868266f, 0.54906315f, 0.023805037f, 0.04610458f,
+ 0.74115825f, -0.021394717f, 0.079446144f, -0.03220998f,
+ -0.1579376f, -0.012103196f, 0.14047645f, -0.00077831314f,
+ 0.14080758f, 0.041212182f, -0.31953326f, -0.1020078f,
+ 0.07745427f, 0.06125377f, 0.17040183f, -0.03504357f,
+ 0.16761252f, -0.72247595f, -0.6339841f, 0.1532478f,
+ -0.2338267f, 0.45150554f, -0.12576324f, -0.20093478f,
+ 1.0931097f, 0.61932135f, -0.28032804f, 0.021793928f,
+ -0.5253992f, -0.005789213f, 0.004304131f, 0.30505374f,
+ 0.021590505f, 0.3440854f, -0.62649685f, 0.11617569f,
+ -0.013185922f, -0.027045783f, -0.007095236f, -0.14827463f,
+ 0.0108237155f, 0.024570612f, 0.056700196f, -0.07623475f,
+ 0.011249786f, -0.0027090502f, 0.20066391f, 0.028957421f,
+ 0.05160271f, -0.39510512f, 0.17797232f, -0.4235669f,
+ 0.35414436f, 0.6315781f, -0.14519107f, 0.12545316f,
+ 0.061256804f, -0.031163996f, -0.031036584f, -0.33284935f,
+ -0.23789349f, 0.3166083f, -0.03079719f, 0.61405706f,
+ 0.46851912f, -0.0027350972f, 0.045408517f, 0.22341715f,
+ -0.7025126f, -0.0143541265f, -0.07626247f, 0.040324207f,
+ -0.9787096f, 0.6445741f, 0.0003554572f, 0.041044477f,
+ -0.049420357f, 0.044494707f, 0.74750704f, -0.03410113f,
+ -0.68521583f, -1.2920746f, 0.3397416f, 0.4949668f,
+ -0.27882546f, -0.500325f, -0.7711389f, 0.36217138f,
+ -0.8036728f, -0.04443311f, 0.274405f, 0.06707561f,
+ -0.42382774f, 0.00037353905f, 0.023876393f, -0.5172676f,
+ 0.008296521f, 0.23045799f, 0.05775504f, -0.044884942f,
+ -0.03690841f, -0.038526874f, 0.14315693f, -0.082612395f,
+ -0.3818327f, -0.05078566f, -0.032710463f, 0.078875974f,
+ -0.032195233f, -0.08243017f, -0.42445147f, -0.023793837f,
+ -0.004710217f, 0.07448841f, -0.19398776f, 0.24503613f,
+ -0.16447985f, -0.07955079f, -0.22366536f, -0.026827868f,
+ 0.040315364f, 0.027041987f, 0.057714712f, 0.065006115f,
+ 0.3130295f, -0.06848712f, 0.0041630296f, 0.23587859f,
+ -0.5835058f, -0.06282187f, 0.049075652f, -0.11972826f,
+ 1.1947248f, 0.20820859f, 0.08056946f, -0.04987984f,
+ 0.5693832f, -0.53360325f, 0.3204968f, 0.17758386f,
+ 0.53367114f, 0.023540791f, 0.469496f, 0.032339863f,
+ 1.4685633f, 0.8728024f, -1.1092385f, -0.18477716f,
+ -0.1581551f, -0.102229774f, 0.075021654f, -0.090654f,
+ 0.3611262f, -0.116716646f, -0.26650375f, -0.096424684f,
+ 0.06348933f, 0.010788836f, -0.04287214f, -0.19317327f,
+ -0.017482338f, -0.27952254f, -1.121102f, -0.124078356f,
+ 0.04040894f, -0.21911283f, 0.8253955f, -0.5890444f,
+ 0.37080204f, 0.07764547f, -0.037794326f, -0.046032928f,
+ 0.052668553f, 0.055812236f, 0.49010286f, -3.310662e-05f,
+ 0.0076864045f, 0.74085546f, -0.041559204f, -0.39161035f,
+ -0.58791286f, -0.15664375f, 0.035808783f, -0.013080904f,
+ -0.055683583f, -0.052564967f, -0.10708312f, 0.04539099f,
+ -0.027515065f, -0.34756786f, 0.0017699746f, 0.073102206f,
+ -0.1191684f, 0.081200525f, -0.07173282f, 0.055535197f,
+ -0.63321406f, -0.04404459f, -0.2591691f, 0.06658637f,
+ 0.42295995f, 0.14122894f, 0.218099f, -0.06582625f,
+ -0.0025378242f, -0.052111674f, 0.5289339f, -0.0077431574f,
+ -0.18122287f, -0.104757585f, 0.19629937f, -0.12425286f,
+ -0.0794086f, -0.8059683f, 1.5266526f, -0.13134679f,
+ 0.5146484f, -0.6986573f, 0.022236273f, -0.0765613f,
+ 0.43782115f, -0.0035108766f, -0.0048253345f, 0.060420476f,
+ -0.018270632f, -0.21025382f, -0.0033497142f, 0.0055812155f,
+ 0.011383401f, 0.20445086f, 0.005982581f, -0.24187629f,
+ 0.29305393f, 0.010874558f, 0.040686388f, 0.0018136705f,
+ 0.024211995f, 0.044437416f, 0.44765642f, -0.066894144f,
+ -0.03570513f, -0.19286998f, -0.16658501f, 0.22415465f,
+ -0.30361563f, 0.43627664f, 0.5593426f, -0.06765293f,
+ -0.047125947f, 0.022991676f, 0.015075948f, 0.29007944f,
+ -0.26076025f, 0.38632432f, 0.023924567f, -0.026022548f,
+ -0.2733225f, 0.084838726f, -0.03783559f, -0.0022348843f,
+ -0.18900734f, -0.047850315f, -0.24439423f, -0.117931865f,
+ -0.5667611f, 0.40825143f, 0.094415665f, 0.032550175f,
+ -0.03769112f, -0.027265364f, 0.13491207f, 0.009219045f,
+ -0.32581246f, 0.78253406f, 0.0072019175f, -0.44408596f,
+ 0.38582748f, 0.51509213f, -0.9955528f, 0.41150975f,
+ -0.26480502f, 0.5523108f, -0.016718084f, 0.083740905f,
+ -0.18946652f, -0.026730381f, 0.023628063f, 0.09836291f,
+ -0.0012447059f, -0.31103963f, 0.32614088f, -0.05751651f,
+ 0.0066124476f, -0.19457893f, -0.38222617f, 0.34347403f,
+ 0.34664524f, -0.12296304f, 0.048483275f, -0.004156736f,
+ 0.00048917654f, -0.022506725f, -0.48878378f, 0.026991459f,
+ 0.034606665f, -0.31782606f, 0.03027697f, -0.06325372f,
+ 0.55799377f, -0.17549506f, -0.03969402f, 0.0065896967f,
+ 0.0096964f, 0.013051222f, -0.0038383764f, 0.59535265f,
+ 0.19893545f, -0.7459611f, -0.010245937f, 0.011423197f,
+ 0.051792055f, -0.061423812f, 0.0657828f, 0.08963424f,
+ 0.4226404f, -0.26171407f, 0.13412096f, 0.015486171f,
+ -0.35170552f, -0.43007705f, 0.2183486f, -0.002179827f,
+ -0.41781113f, 0.035132926f, -0.039434556f, 0.0015006236f,
+ 0.2524316f, -0.24290913f, 1.1634433f, 0.18487506f,
+ 0.2571358f, -0.12236421f, -0.26183337f, 0.011371261f,
+ -0.11148632f, -0.21993929f, 0.08534355f, -0.11579422f,
+ -0.2520431f, 0.079916246f, 0.039592057f, 0.02231113f,
+ 0.03773247f, -0.3336001f, -0.5354118f, 0.18182154f,
+ 0.009884592f, -0.15324311f, 0.16957234f, -0.32140625f,
+ -0.37285075f, 0.11781533f, -0.025382157f, 0.023167634f,
+ -0.08292072f, 0.052592542f, -0.11559183f, 0.110062525f,
+ -0.04697676f, 0.31203339f, 0.12806831f, 0.17480068f,
+ -0.0017740313f, -0.37260225f, 0.24548182f, -0.0059376787f,
+ 0.0036247468f, -0.08650502f, -0.002404253f, -0.090129256f,
+ 0.20922919f, 0.7320347f, -0.047454674f, 0.055736233f,
+ 0.39612523f, -0.042146403f, -0.0002637387f, 0.09244144f,
+ 0.017734272f, -0.03823813f, 0.081503436f, 0.024781417f,
+ -0.26404244f, 0.1334824f, -0.1421645f, -0.043473173f,
+ 0.09377615f, -0.048060566f, 0.1707996f, 0.022374857f,
+ 0.16295244f, 0.28385273f, -0.66984105f, -0.05015574f,
+ 0.22389053f, -0.13734607f, -0.15747337f, -0.6637099f,
+ 0.7206216f, -3.138374f, 0.029891022f, 0.0752392f,
+ 1.3070042f, -0.020028612f, -0.08745897f, 0.27597058f,
+ -0.012678856f, 0.22749618f, -2.3780613f, -0.536868f,
+ 0.070358984f, -0.15508926f, 0.4973335f, 0.18607429f,
+ -0.23396483f, 0.100453384f, 0.067314886f, -0.22448477f,
+ 0.08626255f, 0.037529603f, -0.096314326f, -0.010581871f,
+ -0.04972954f, -0.03707146f, 0.16650747f, 0.47901756f,
+ -0.542862f, -1.236857f, -0.055962075f, -0.003888439f,
+ -0.024277158f, 0.19567178f, 0.21301255f, 0.16156055f,
+ 0.13667148f, -0.9053972f, 0.05600779f, -0.21580747f,
+ 1.0681137f, 0.006361232f, -0.2219184f, -0.8004356f,
+ -2.4513438f, -0.30358508f, 0.8267529f, 0.5003286f,
+ -0.663368f, -0.787549f, 0.106533356f, 0.14948037f,
+ 0.7995701f, 0.03615474f, -0.35960606f, -0.015281261f,
+ -0.36424363f, 1.5995886f, 1.3438933f, 1.400068f,
+ -0.3487258f, 0.048075765f, 0.015090559f, -0.5790207f,
+ 0.73556614f, 0.79415494f, 0.0073322887f, 0.046557408f,
+ -1.3916597f, -0.0077953376f, 0.07148394f, -0.011501959f,
+ 0.06101088f, -1.4388821f, -2.1196046f, 0.06352835f,
+ -0.043062612f, 0.13851614f, 0.98034036f, 0.12592493f,
+ 0.8088711f, -0.36068577f, -0.15351102f, -0.14356032f,
+ -0.085236035f, -0.3849479f, 0.34537077f, -0.0929807f,
+ -0.14225172f, 1.3732797f, 0.0055265515f, -0.52197886f,
+ 0.19934891f, -0.8380097f, -0.450629f, -0.013441974f,
+ 0.18577771f, 0.07158137f, -0.14453445f, 0.09107841f,
+ -0.2583558f, -0.57765836f, 0.008265185f, 0.010930802f,
+ -0.7828551f, -0.0066148913f, 0.26187778f, -0.24912539f,
+ -1.4704354f, -0.18226704f, 0.7208842f, -0.114222415f,
+ 0.3909993f, -0.5449017f, 0.6549673f, 0.3539618f,
+ -0.12195909f, 0.07330595f, -0.67608404f, -0.16200049f,
+ 0.48640198f, -1.1142286f, -0.91614f, -0.5532902f,
+ -0.45218736f, 0.075442195f, -0.04321772f, -0.27054387f,
+ 0.6462776f, -1.6695153f, 0.15929388f, -0.100080855f,
+ -0.12010841f, 0.024381911f, 0.021408891f, -0.5675343f,
+ 0.019554513f, -1.0877758f, -1.6394866f, 0.17300533f,
+ -0.071373135f, -0.17877528f, 0.7200237f, 0.44418076f,
+ 0.6106202f, 0.20339262f, -0.08846367f, 0.4067122f,
+ -0.09128622f, 0.336954f, -0.23141332f, 0.08444276f,
+ 0.04369042f, 0.80040026f, 0.13132666f, 0.076031424f,
+ -0.058822785f, -0.011748329f, 0.24071199f, -0.04165669f,
+ -0.07103659f, -0.19796681f, -0.00912646f, -0.013013971f,
+ -0.14145403f, 3.472657f, -0.14159986f, 0.13971323f,
+ 1.7781036f, -0.066303276f, -0.05172241f, 0.17451182f,
+ -1.7127792f, -0.36262813f, 0.86617047f, -0.25103962f,
+ 0.38260418f, 0.035693936f, 0.6849227f, 0.028220315f,
+ -0.113287054f, -0.104008f, -0.19310202f, 0.3294345f,
+ 0.50546545f, -3.0319412f, -1.0215677f, -0.31584617f,
+ -0.42006326f, 0.29012358f, 0.088823766f, -0.6933782f,
+ 0.7000759f, 1.1243936f, 0.015427601f, 0.077351846f,
+ 1.1563785f, 0.051477455f, -0.097561434f, 0.25993517f,
+ -0.018249234f, 0.6094974f, -2.2257514f, 0.36699665f,
+ -0.03704152f, -0.2611046f, -0.33816817f, -0.5716546f,
+ 0.45085844f, 0.14176416f, -0.06302244f, 0.2939286f,
+ -0.011920825f, -0.015451084f, 0.006329529f, -0.17259376f,
+ 0.25296092f, -0.22052316f, -0.18100151f, -0.20531793f,
+ -0.4661353f, -1.5207559f, -0.13608164f, 0.076009735f,
+ 0.10766584f, -0.19856018f, -0.023311563f, 0.2055868f,
+ 0.41001981f, 1.9160402f, 0.1577737f, -0.27081254f,
+ -1.3003488f, 0.010100828f, 0.05088708f, 0.6013172f,
+ -2.5256317f, -0.027962795f, 0.10714269f, -0.40266645f,
+ -0.5396719f, -0.7119652f, 0.026352169f, 0.027178233f,
+ -0.9963539f, -0.09527765f, -0.27781507f, 0.0081354575f,
+ 0.09835296f, 0.6415964f, -2.2598293f, -0.81216925f,
+ 1.0699753f, -0.078823425f, 0.18826857f, -0.7117542f,
+ 0.6557605f, 0.24866953f, -0.040626995f, 0.029231759f,
+ -3.0776188f, 0.06599183f, 0.06818529f, -0.28233188f,
+ -0.01437949f, 3.118936f, -2.490698f, -0.2683305f,
+ 0.028490875f, -0.3606954f, -0.68084157f, -1.224983f,
+ -0.26643944f, -0.0014212747f, -0.48891452f, -0.13449098f,
+ -0.045035183f, 0.19612063f, -0.23376924f, 0.14774418f,
+ 0.02381023f, 1.481373f, -0.08303105f, -0.63720334f,
+ 0.025448054f, -0.8134629f, -0.6656834f, 0.067432046f,
+ -0.19730079f, -0.21566303f, -0.16997957f, 0.21131705f,
+ -0.3850567f, -3.442833f, -0.1544855f, -0.08608996f,
+ -1.3780968f, -0.06811533f, -0.06439128f, 0.032106824f,
+ -1.6697227f, 0.102882795f, 0.62736714f, -0.00060694345f,
+ 0.6178254f, -0.74741787f, 0.49361372f, -0.18661974f,
+ -0.7280215f, 0.074027225f, -0.34280598f, 0.12782158f,
+ 0.58391523f, 1.2265183f, -1.5358815f, 0.10781169f,
+ -0.12536457f, 0.094469f, 1.2717342f, -0.6029201f,
+ 0.7211618f, 1.2827342f, -0.2840544f, -0.08319884f,
+ 0.13626672f, -0.06552533f, 0.051130492f, 0.10825572f,
+ -0.067300856f, -0.31467018f, -2.0462968f, 0.093868814f,
+ 0.09774448f, 0.12099748f, -1.3477509f, -0.1641842f,
+ -1.1786668f, 0.02895135f, 0.3624354f, -0.23077281f,
+ 0.15096617f, -0.35827124f, -0.11426438f, 0.0008160445f,
+ -0.03674243f, 1.5341216f, -0.10921591f, 0.16292152f,
+ -0.30937624f, -0.39187402f, 0.07664255f, -0.05451978f,
+ -0.049754884f, 0.3123679f, 0.122134075f, 0.47517195f,
+ 0.28160754f, -2.4241798f, 0.16283186f, 0.24749781f,
+ 0.93546635f, 0.15905815f, -0.080132216f, 0.19870831f,
+ -1.7816308f, 0.062275752f, 0.2515954f, 0.24378203f,
+ 1.3708265f, 0.13342163f, 0.67319465f, -0.07494598f,
+ 0.51911443f, -0.027217144f, -0.36578706f, -0.3503582f,
+ 0.79649013f, -0.863577f, -0.29503977f, -0.24048707f,
+ 1.2632045f, 0.2949514f, -0.89925426f, -0.70016855f,
+ 0.6438547f, 1.0435234f, -0.03318465f, -0.18149798f,
+ 0.4500104f, -0.07732166f, 0.10550376f, -0.009010874f,
+ -0.05772338f, -0.24767299f, -1.708832f, 0.14646833f,
+ -0.024244582f, 0.33701798f, 0.3683226f, -0.012532506f,
+ -1.280528f, -0.14123878f, 0.17278609f, 0.010586052f,
+ -0.0064225425f, -0.015580575f, -0.020730855f, 0.044294875f,
+ -0.14307733f, -0.030278757f, 0.0106102405f, 0.19671111f,
+ -0.5090846f, -0.8823536f, 0.3809096f, -0.13821152f,
+ -0.13580023f, 0.054843273f, -0.07058955f, -0.4289064f,
+ 0.122114934f, 3.994804f, -0.1287395f, -0.066757105f,
+ 0.27761206f, 0.04545973f, 0.057591826f, 0.025989009f,
+ -1.2499288f, 0.3092441f, 0.12840557f, -0.23231143f,
+ 0.46293604f, -0.5574421f, -0.10426868f, 0.015318704f,
+ 0.3586066f, 0.049294103f, 0.16747698f, 0.08918863f,
+ -0.33297426f, 0.12540466f, 0.71974814f, -0.2767863f,
+ 0.5774481f, -0.33703074f, -1.7478395f, -0.70002365f,
+ 0.66684115f, -1.8991829f, -0.120267004f, -0.03203251f,
+ -1.5770898f, -0.02731893f, -0.12795281f, -0.043089993f,
+ 0.06693157f, -0.6044688f, -1.5287853f, 0.2854961f,
+ -0.0130404f, -0.20327944f, 0.31060484f, 0.09903505f,
+ 0.71644914f, 0.28224096f, 0.58636004f, 0.07666001f,
+ 0.022350924f, 0.18644091f, 0.30857235f, 0.03739508f,
+ -0.023293156f, 1.2021918f, -0.39784288f, 0.9492267f,
+ -0.4207769f, -0.085432634f, 0.38090068f, -0.023528604f,
+ 0.03339643f, 0.15943193f, 0.29549536f, -0.41054988f,
+ -0.70393777f, -0.9076402f, 0.09248379f, 0.20416202f,
+ -0.6273847f, 0.14556538f, -0.04301699f, 0.10562668f,
+ -0.8308185f, 0.2786767f, -0.14323515f, 0.21396069f,
+ 1.4221971f, -0.10348704f, -0.16741365f, 0.012232638f,
+ 0.9922194f, -0.13177288f, 0.0074368403f, -0.0843264f,
+ 0.17363591f, -0.7351738f, 2.4042604f, 0.26243794f,
+ -1.5133488f, -0.4319088f, 0.91841173f, -0.6934489f,
+ 0.6603527f, 1.7651863f, 0.2083864f, 0.1740634f,
+ 3.2529988f, 0.074305974f, -0.011098359f, -0.08558275f,
+ 0.011381227f, -0.42504674f, -0.40552473f, -0.28137693f,
+ -0.018733967f, -0.17007585f, -0.08708563f, 0.73898435f,
+ 0.75657946f, -0.22764799f, -0.44612792f, -0.013810128f,
+ -0.025151573f, 0.046898093f, -0.12127531f, -0.024467738f,
+ 0.037831374f, 0.40149042f, -0.041519415f, -0.51071954f,
+ -0.2131668f, 0.28569722f, 0.041257445f, 0.12810066f,
+ 0.13030936f, -0.17206761f, -0.20697242f, 0.03637584f,
+ -0.28287098f, -0.62302417f, -0.04811549f, -0.026914218f,
+ 0.43702564f, -0.24947797f, 0.07498906f, 0.01855732f,
+ -0.99441314f, 0.037472714f, 0.091808386f, 0.088816024f,
+ 1.6051543f, -0.18487455f, 0.17807771f, -0.027198223f,
+ -0.6081093f, 0.1280042f, 0.19758998f, 0.081751555f,
+ 0.29025862f, 1.3689679f, 2.2010455f, 0.50351876f,
+ -0.56805086f, 0.6868483f, 0.018484794f, -0.25166756f,
+ 0.5178451f, -0.8191264f, 0.21646371f, 0.07398129f,
+ 0.8233567f, -0.04700296f, 0.053926725f, 0.3241767f,
+ -0.011893485f, -0.12814745f, 0.9293794f, -0.35984835f,
+ -0.10048252f, -0.034821212f, -0.14927147f, -0.6913095f,
+ -0.060046103f, 0.009055992f, -0.05138817f, -0.009904832f,
+ 0.053329777f, -0.3484759f, -0.3637937f, -0.15216051f,
+ 0.12343143f, 0.4739836f, -0.45291483f, -0.25611585f,
+ 1.1645213f, 0.48181102f, -0.33135274f, 0.08962773f,
+ 0.058824982f, 0.09759314f, 0.1602447f, -0.048616447f,
+ 0.0026524456f, 0.026149524f, 0.08063145f, -0.5397718f,
+ 1.130619f, -0.062453184f, 0.03043503f, 0.6764219f,
+ 0.12996499f, 0.35598928f, 1.0214875f, -0.08286545f,
+ -0.32140902f, -0.64646894f, -0.9192166f, -0.19675389f,
+ -0.20816249f, 0.12094417f, 0.83038855f, 0.040472616f,
+ -1.1546422f, 0.33575502f, -0.123878516f, -0.9461496f,
+ 0.22840111f, 0.26599124f, -0.6454213f, -0.23141746f,
+ -0.43278772f, -0.06431176f, 0.02251353f, 0.016633404f,
+ 0.2696694f, 0.03171349f, -0.071024545f, -0.44721723f,
+ -0.0069136224f, 0.6095054f, 0.21640472f, 0.27504373f,
+ 0.050236173f, 0.34425974f, 0.040034823f, -0.7664536f,
+ -0.089224905f, -0.06260295f, 0.06915265f, 0.02611945f,
+ -0.062707976f, 0.25897172f, -0.5012089f, 0.08714761f,
+ -0.1249194f, -0.78140455f, 0.19862825f, 0.09921352f,
+ 0.60372525f, 0.19738483f, 0.3576384f, -0.066255264f,
+ -0.04942334f, -0.06758308f, -0.08433084f, 0.7480919f,
+ 0.16084835f, -0.30447128f, -0.029000735f, -0.39414275f,
+ -0.62667173f, 0.025857547f, -0.046513982f, -0.5294097f,
+ 0.003610732f, -0.6614713f, -0.45146546f, -0.01962424f,
+ 0.15305099f, 0.35707578f, 0.358832f, 0.15476747f,
+ -0.7855444f, -0.04834645f, -0.047482267f, -0.022191845f,
+ -0.21584919f, -0.026527166f, -0.18538806f, 0.65778667f,
+ 0.45915815f, 0.24068522f, 0.09735833f, 0.32144198f,
+ -0.5148212f, -0.20329265f, -0.21305743f, -0.038573135f,
+ -0.2580221f, -0.0053025046f, -0.05823244f, 0.33704412f,
+ 0.011559053f, -0.5552253f, -0.22294201f, -0.16735277f,
+ -0.019952001f, -0.11234408f, -0.35840952f, 0.5706929f,
+ -0.82963395f, 0.21267168f, 0.048299484f, 0.019513018f,
+ 0.006992919f, -0.15372565f, 0.7150243f, -0.057692815f,
+ 0.13161859f, 0.03880464f, -0.25607142f, 0.19635355f,
+ 0.1867153f, -0.56717294f, 0.16030815f, 0.04456527f,
+ 0.069668636f, 0.033446815f, 0.009491457f, -0.117378846f,
+ -0.714596f, -0.53603554f, 0.028626608f, -0.15134947f,
+ 0.4808012f, 0.040582456f, -0.05739852f, 0.49495506f,
+ 1.0677891f, 0.30102593f, 1.0579073f, 0.22917692f,
+ -0.22097889f, -0.6688818f, -0.5814805f, 0.28676182f,
+ 0.6093196f, 0.010710879f, -0.545087f, -0.053633295f,
+ -0.13076247f, -0.10739103f, -1.495819f, -0.2558163f,
+ 0.61814344f, -0.03212029f, 0.5525962f, 0.2502801f,
+ 0.047313236f, 0.85763067f, -0.26318002f, -0.014826797f,
+ 0.5206881f, -0.042022496f, -0.086525105f, 0.49980205f,
+ 0.0175797f, -0.24004382f, 0.33231485f, 0.5783012f,
+ 0.05795362f, 0.04891496f, -0.17090285f, -1.9655055f,
+ 0.31873953f, -0.16524148f, 0.21916507f, -0.21876226f,
+ -0.0649778f, 0.34528556f, 1.1894419f, 0.051362447f,
+ -0.15586834f, -0.21497062f, -0.248149f, 0.3645591f,
+ 0.44915935f, 0.33894384f, 0.21886584f, -0.20304506f,
+ -0.06388826f, 0.022984408f, -0.15796745f, 0.24145937f,
+ -0.23992106f, 0.9264137f, -0.057434045f, -0.43004736f,
+ 0.38602713f, 0.07975841f, 0.093768686f, -0.8370612f,
+ 0.8105638f, 0.07317635f, -0.08138709f, 0.15414299f,
+ -0.2937234f, -0.35726994f, 0.24778852f, -0.17320655f,
+ 0.067653924f, -0.054358087f, 0.5216462f, -0.16992176f,
+ -0.6153211f, -0.5790937f, -0.34225786f, 1.3431834f,
+ -0.8010804f, 0.714597f, -2.1890743f, 0.03144886f,
+ -1.017997f, -0.38656035f, 0.24507956f, 0.055609494f,
+ -0.30924934f, -0.022972396f, 0.0641576f, -0.41595793f,
+ 0.0069109923f, 0.03137881f, 0.3785164f, -0.3793897f,
+ -0.073783234f, 0.22386506f, -0.33861807f, 1.2755635f,
+ -0.05203881f, 0.00292523f, -0.33150455f, 0.25445488f,
+ 0.101446606f, -0.3099271f, -0.60294443f, -0.044041246f,
+ 0.16135181f, 0.115302764f, 0.54238844f, -0.13784114f,
+ 0.11232662f, 0.24142735f, -0.12416114f, 0.17266525f,
+ 0.09809393f, 0.08045278f, 0.15328987f, -0.4122191f,
+ 0.3243597f, 0.4475137f, 0.004723937f, -0.72768235f,
+ -0.81093585f, -0.12253731f, -0.0060676383f, 0.6262357f,
+ 0.74479216f, -0.4711722f, 0.20137186f, -0.079153165f,
+ 0.6570728f, -0.22056496f, 0.3396905f, -0.018599225f,
+ 0.78190595f, 0.10064968f, -1.6705557f, 0.16504082f,
+ 0.40398303f, 0.505614f, -0.3575167f, -0.92525154f,
+ 0.10675124f, 0.02618272f, 1.3302847f, 0.59947807f,
+ -0.42213485f, 0.20019583f, 0.12616533f, -0.0014319767f,
+ -0.5947862f, -0.04434022f, 0.029637037f, 0.39270127f,
+ -0.00943125f, 0.77107954f, -0.3828545f, 0.22018059f,
+ 0.021079589f, -0.11528159f, -0.25555158f, 2.3047516f,
+ 0.7826171f, -0.21800567f, 0.18347448f, -0.017834809f,
+ 0.032490347f, 0.27262333f, -1.126425f, 0.06802309f,
+ -0.11970925f, 0.029396703f, -0.3367476f, 0.1627649f,
+ 1.0937095f, -0.7450075f, -0.39045283f, -0.11401919f,
+ -0.14037424f, -0.033947017f, -0.049097773f, -0.29557478f,
+ -0.39212582f, -0.9606958f, -0.014074319f, -0.24461244f,
+ 0.06484733f, 0.05572704f, 0.083545126f, -0.517085f,
+ -0.030424515f, 0.06086714f, 0.42909238f, -0.28486294f,
+ -0.2975881f, 0.08447704f, -0.20894931f, 0.08260297f,
+ -0.5724502f, -0.05983229f, 0.0067295637f, 0.057789657f,
+ -0.4695003f, -1.0889722f, 0.6409395f, 0.33210832f,
+ 0.52977526f, -0.34765297f, 1.3751161f, 0.5304269f,
+ -0.28802553f, -0.021176409f, -0.05087054f, -0.02968076f,
+ -0.17886533f, 0.071068116f, 0.02944161f, 0.10188092f,
+ 0.013581133f, -0.32026446f, 0.7490296f, -0.1476071f,
+ 0.026090795f, -0.04170623f, 0.5944182f, -0.8648012f,
+ 0.13046114f, 0.22465907f, -0.06957326f, 0.10454233f,
+ -8.8325716e-05f, -0.087050594f, -0.2689922f, 0.045720737f,
+ 0.06624619f, 0.33366624f, 0.25228924f, -0.14127105f,
+ 0.09986888f, 0.881628f, -0.68165725f, 0.14215662f,
+ 0.05061155f, -0.09282207f, 0.036892693f, -0.08971465f,
+ 0.25297728f, 0.077463314f, -0.015990863f, -0.23746532f,
+ 0.7387261f, -0.0654029f, -0.0764068f, 0.45528674f,
+ 0.022185637f, 0.34872606f, 0.1992062f, 0.03139656f,
+ -0.08627633f, -0.30746934f, 0.23188739f, -0.076083176f,
+ 0.11922114f, -0.015520711f, 0.08186843f, 0.12280838f,
+ -0.221685f, 0.78979254f, 0.19180317f, -0.3878793f,
+ -0.07704138f, 0.15944974f, -1.6675009f, -0.17294239f,
+ -0.22661543f, 0.68069065f, 0.09777553f, 0.062820904f,
+ -0.72672385f, -0.014872338f, -6.6725675e-05f, -0.44410634f,
+ -0.0036810297f, -0.018590529f, 0.47077924f, -0.08547051f,
+ 0.019930542f, -0.47598898f, 0.28542617f, -0.09325481f,
+ 0.32685095f, -0.11756625f, 0.068550915f, -0.11365491f,
+ -0.025962286f, 0.10367459f, 0.3711595f, 0.0044185105f,
+ -0.0548189f, -0.76761967f, -0.4676612f, 0.12857161f,
+ 0.38059604f, -0.21738043f, 0.065190814f, -0.144567f,
+ -0.073746055f, 0.031750932f, -0.04905759f, -0.63222045f,
+ -0.11986384f, 0.42894027f, 0.027066799f, 0.25756273f,
+ -0.4937802f, 0.048938975f, 0.031800315f, -0.32098404f,
+ 1.1716292f, 0.11770725f, -0.19811691f, 0.051665097f,
+ 0.025545869f, 0.21628201f, -0.07571791f, -0.06289385f,
+ -0.3291766f, -0.03355177f, -0.16366003f, -0.081356145f,
+ 0.8879404f, -0.37343362f, 0.46355867f, 0.107743904f,
+ 0.037501194f, -1.1912102f, 0.2332135f, 0.70231396f,
+ -0.46097973f, -0.30182952f, -0.20570482f, -0.12750234f,
+ 0.22276825f, 0.053669676f, 0.0004994437f, 0.15191904f,
+ 0.010077989f, -0.32419097f, -0.792856f, 0.099561684f,
+ 0.0022321194f, 0.022852095f, 0.4623885f, 0.26727253f,
+ -0.08839095f, 0.16984706f, -0.110309534f, -0.060638286f,
+ -0.042385105f, -0.105828844f, 0.11588386f, -0.04027586f,
+ 0.011472554f, 0.40586078f, -0.08278271f, -0.43154272f,
+ 0.06152908f, 0.31474978f, -0.194806f, 0.096471496f,
+ 0.08374899f, -0.03514442f, 0.030900225f, 0.10930164f,
+ -0.05305447f, -0.113288336f, -0.015190452f, 0.12251784f,
+ -0.56663156f, 0.00024986628f, -0.04280557f, -0.0075804726f,
+ 0.45411777f, 0.07561088f, 0.022697812f, 0.019937426f,
+ -0.39276162f, -0.0042814855f, 0.1799343f, 0.07790294f,
+ 0.24359515f, 0.011988848f, 0.033032067f, -0.025880713f,
+ 0.32740477f, 0.19800694f, 0.9930736f, 0.0046498734f,
+ -0.08144545f, 0.45000252f, -0.1752612f, 0.0777825f,
+ 0.039848667f, 0.07496611f, 0.1366195f, 0.039336402f,
+ -0.7200011f, 0.014071931f, 0.02805536f, -0.08593571f,
+ 0.025442956f, 0.21195155f, 0.2943014f, -0.14145945f,
+ 0.031902034f, 0.06701578f, -0.15541093f, 0.14585553f,
+ -0.19844595f, -0.0762827f, -0.0778392f, 0.04239378f,
+ 0.00017331794f, 0.046810336f, -0.1185163f, 0.09027929f,
+ 0.0030923602f, -0.5675875f, 0.038356505f, -0.021303797f,
+ -0.1548286f, 0.10159205f, -0.057022955f, 0.009797465f,
+ 0.01016902f, -0.023618797f, -0.009686916f, -0.091957025f,
+ 0.047595818f, -0.33859485f, -0.050124638f, 0.39574558f,
+ 0.048870936f, -0.07482969f, -0.01571247f, -0.038816098f,
+ 0.871693f, 0.05055662f, -0.3646398f, 0.008136156f,
+ -0.21874408f, 0.0066301906f, 0.2999392f, 0.0016149172f,
+ -0.032396562f, -0.0005066284f, -0.035004962f, 0.042746805f,
+ 0.08932257f, 0.40787223f, 0.8873402f, -0.19866912f,
+ -0.49907506f, 0.049367882f, 0.1965531f, -0.01731936f,
+ 0.027497062f, 0.42140207f, 0.08305125f, -0.03750886f,
+ 0.95163184f, -0.027753478f, -0.028266642f, 0.03958727f,
+ -0.026754456f, 0.14050893f, -0.677613f, -0.010801574f,
+ 0.0045798365f, 0.31126082f, 0.8451791f, -0.2659928f,
+ 0.18991865f, 0.028349819f, 0.048369203f, 0.08037202f,
+ 0.05341429f, -0.038948745f, -0.10833714f, -0.09295168f,
+ 0.00025317795f, 0.6503145f, -0.03770296f, -0.01616833f,
+ 0.16925177f, -0.20777455f, 0.24053578f, -0.0362037f,
+ -0.049948946f, 0.05919972f, 0.051102493f, -0.2627351f,
+ 0.21771146f, 0.9638525f, 0.08187135f, 0.10474722f,
+ 0.01558033f, 0.10364547f, -0.060544737f, -0.1457784f,
+ -0.26914272f, -0.013310844f, 0.35311794f, -0.13178441f,
+ -0.20966193f, -0.062155448f, -0.31310937f, -0.20253913f,
+ -0.28265554f, -0.037305705f, 1.5579423f, 0.023288349f,
+ 0.27960593f, 0.5111091f, -0.06132355f, -0.005935514f,
+ 0.076548636f, -0.045001615f, -0.15424874f, 0.07019104f,
+ -0.46766964f, -0.4779722f, -0.22410434f, 0.011469652f,
+ -0.31428808f, -0.009578606f, -0.022401297f, -0.3735517f,
+ 0.013041666f, -0.15561701f, 0.94245774f, 0.066726334f,
+ -0.022774f, -0.05040531f, -0.120768756f, -0.20952855f,
+ 0.12164926f, 0.024567109f, 0.07349459f, -0.15985866f,
+ -0.041918058f, 0.026721723f, 0.46146005f, 0.020871911f,
+ 0.029864311f, 0.22259721f, -0.0092858365f, -0.08266159f,
+ -0.5489859f, -0.47581235f, -0.3610905f, 0.044857003f,
+ 0.03903643f, -0.02977169f, -0.023170874f, 0.024986472f,
+ -0.007826428f, -0.13744602f, -0.030091923f, -0.24476108f,
+ -0.3117934f, -0.042328887f, 0.05813109f, 0.13658789f,
+ -0.36246407f, -0.19608098f, -0.21679878f, 0.12634514f,
+ 0.4615471f, 0.04079364f, 0.8355763f, -0.3161325f,
+ -0.11086287f, 0.04461166f, -0.43827865f, -0.044105787f,
+ 0.13911374f, -0.9586746f, -0.12010111f, 0.12598604f,
+ 0.25528985f, 0.44148815f, 0.2532372f, 0.037707835f,
+ -0.22623856f, 0.21324797f, -0.07089794f, 0.06865923f,
+ 0.2420206f, -0.013854856f, -0.028646406f, -0.06626485f,
+ 0.0064619686f, -0.20817609f, 0.7695574f, 0.21198754f,
+ -0.04001877f, -0.056933105f, -0.52227134f, 0.32706055f,
+ -0.15118939f, 0.042199817f, 0.07733195f, -0.09125852f,
+ -0.05524409f, -0.07953472f, -0.01265925f, -0.07017295f,
+ -0.016310899f, -0.4659805f, 0.0049836733f, -0.008441579f,
+ 0.20453092f, 0.30072087f, 0.10932274f, -0.020565579f,
+ -0.017270429f, 0.049762093f, 0.070773534f, -0.013842427f,
+ -0.2424094f, -0.21660446f, 0.017875466f, 0.1955454f,
+ -0.14835694f, 0.01955756f, 0.021649325f, 0.11581203f,
+ 0.3504403f, 0.07016408f, -0.11817077f, 0.050413284f,
+ 0.04251333f, 0.14099135f, 0.04939574f, -0.011439442f,
+ 0.1947704f, 0.0016300456f, 0.042983986f, -0.030659486f,
+ 0.575975f, -0.3114599f, -0.42801318f, -0.029511334f,
+ 0.37424067f, -0.6117787f, -0.7511595f, -0.2654566f,
+ 0.6528452f, -0.43783733f, -0.052537177f, -0.07251026f,
+ 0.71581745f, 0.039542492f, 0.028468277f, -0.0013578939f,
+ 0.0026192132f, 0.52800673f, -0.7198216f, -0.1673782f,
+ 0.0065197228f, -0.12067525f, 0.08465208f, -0.7365325f,
+ -0.81870526f, -0.047346335f, -0.2751097f, 0.0034850854f,
+ -0.01906466f, 0.10501717f, -0.16600505f, 0.17017035f,
+ -0.011267985f, 0.13460365f, 0.022217432f, -0.02590444f,
+ 0.21303077f, 0.09286849f, 0.5976808f, 0.043297f,
+ 0.03929925f, -0.09748425f, -0.1769791f, 0.6810458f,
+ -0.3811842f, 0.9313576f, -0.09311178f, 0.31261903f,
+ 0.78327787f, -0.09036632f, 0.024962839f, -0.10817148f,
+ -0.40112275f, -0.28589854f, 0.054542962f, 0.08773311f,
+ -0.30867502f, 0.45740384f, 0.052251313f, 0.08925956f,
+ 0.08772373f, 0.029512813f, 1.195059f, -0.012923255f,
+ 0.43220267f, 0.3147976f, 0.6020298f, 0.18100457f,
+ 0.31244612f, 0.188036f, 0.4152837f, 0.35523862f,
+ -0.87271065f, -0.010777392f, 0.08881842f, -0.036664523f,
+ -0.080190755f, -0.014040985f, -0.020461792f, -0.13827746f,
+ -0.015935756f, -0.09950514f, -0.020858845f, 0.004920855f,
+ 0.011477501f, 0.04906598f, 0.46790114f, 0.58110714f,
+ 0.33177146f, 0.018152865f, -0.00951082f, 0.057226717f,
+ 0.066246055f, -0.047815528f, -0.9541803f, -0.09264122f,
+ -0.021261549f, 0.48496038f, -0.08538269f, 0.13958946f,
+ -0.32246417f, -0.69906473f, 0.46623996f, -0.074570954f,
+ -0.032730646f, 0.08616909f, 0.038514446f, -0.18126495f,
+ 0.35198662f, -0.25946158f, 0.06983888f, -0.26328114f,
+ -0.20488398f, 0.090558656f, -0.05637775f, -0.20968424f,
+ -0.23382376f, 0.36864328f, 0.08311527f, -0.072663106f,
+ 0.26031157f, -0.3503402f, 0.0045389193f, -0.06563228f,
+ 0.4851282f, -0.042695247f, -0.4900866f, 0.011501379f,
+ 0.562998f, 0.2481706f, -0.3950703f, -0.06884072f,
+ 0.0823812f, -0.21429951f, 1.1193359f, -0.085300505f,
+ -0.049596835f, -0.2749794f, -0.069914974f, -0.029349169f,
+ -0.034084298f, -0.037534066f, -0.015921267f, 0.05027904f,
+ -0.037166644f, 0.18331198f, 0.24933574f, -0.051819608f,
+ 0.022866981f, 0.033182368f, -0.22860463f, 0.0800943f,
+ 0.03176589f, -0.0743759f, 0.07215051f, 0.018190738f,
+ 0.101414554f, 0.029839646f, -0.0038027568f, -0.04536245f,
+ 0.035849728f, -0.7128887f, -0.05545402f, 0.009510489f,
+ 0.10543335f, 0.47377396f, -0.057965666f, 0.033583213f,
+ -0.020518221f, -0.013835225f, -0.053670328f, -0.004646709f,
+ 0.1457204f, -0.14785545f, 0.0145564675f, -0.020159261f,
+ 0.02567913f, 0.06996309f, 0.000113487105f, 0.0049398798f,
+ 0.61946684f, -0.022109661f, -0.083728686f, -0.05257397f,
+ -0.08649003f, 0.049364086f, 0.004363764f, 0.06365912f,
+ -0.13148701f, 0.005670676f, 0.062098484f, -0.04213581f,
+ -0.0778877f, 0.25250268f, 0.03605116f, 0.085881256f,
+ -0.53607863f, -0.019799303f, -0.6345343f, 0.09572075f,
+ 0.34656703f, 0.5723619f, 0.0886463f, 0.07926537f,
+ 0.4276744f, 0.020085964f, 0.035311732f, -0.042219937f,
+ 0.041789412f, -0.51259524f, 0.37091804f, 0.08479286f,
+ -0.010747486f, 0.14164951f, 0.14597265f, -0.4060792f,
+ 0.81134194f, -0.000275421f, 0.1722264f, 0.020304106f,
+ -0.05114458f, -0.03802352f, 0.21508722f, -0.017121863f,
+ -0.009662913f, 0.70292586f, -0.10711065f, 0.049616486f,
+ 0.23800449f, -0.052506674f, -0.060837578f, -0.04198064f,
+ 0.010142814f, 0.03373766f, 0.11423663f, -0.007292978f,
+ 0.0300077f, 0.028677864f, 0.0032152743f, 0.03568886f,
+ -0.45962086f, -0.03217226f, 0.026694749f, 0.3349748f,
+ -0.95961785f, -0.0012292906f, 0.13929568f, -0.028391844f,
+ -0.2391165f, -0.17993444f, 0.10227986f, -0.043884754f,
+ 0.2257843f, -0.0010832004f, 0.14452751f, 0.027362512f,
+ -0.34933203f, 0.057860978f, -0.65615594f, -0.25600934f,
+ 0.12278566f, 0.038426895f, -0.13145491f, 0.19160621f,
+ -0.11179396f, -0.13360748f, 0.011848545f, -0.016339805f,
+ -1.4244974f, 0.021068389f, 0.005341398f, 0.06702198f,
+ -0.0037066936f, -0.039333005f, -0.19027004f, 0.010179922f,
+ -0.0028981937f, 0.07685986f, -0.11178591f, -0.009574676f,
+ -0.2429369f, 0.08859648f, -0.069659896f, 0.032874f,
+ -0.050171494f, 0.0021067262f, -0.20527768f, 0.038712397f,
+ -0.0048306026f, -0.13994616f, 0.08846664f, -0.02875715f,
+ -0.07423745f, -0.48714954f, -0.084742054f, 0.04000459f,
+ 0.027164286f, -0.05524626f, -0.010248742f, 0.08500068f,
+ 0.10514755f, -0.79183495f, -0.0084920535f, -0.027611095f,
+ 0.1363658f, -0.03296017f, -0.016201565f, -0.044009157f,
+ 0.21094036f, -0.15509428f, -0.007822779f, 0.0073626232f,
+ 0.25479916f, 0.08596463f, -0.0957727f, -0.02049587f,
+ -0.43579677f, -0.0005007978f, 0.003548094f, 0.01382899f,
+ -0.01914757f, 0.1895343f, 0.24262342f, 0.17168543f,
+ 0.009847808f, -0.5261314f, 0.3794997f, 0.5145625f,
+ -0.06116573f, -0.5698193f, 0.14867938f, 0.13423395f,
+ 0.61137944f, -0.02967468f, 0.017687893f, -0.41631263f,
+ 0.0036969197f, -0.520653f, -0.28780672f, -0.1984357f,
+ -0.009695293f, 0.55061275f, 0.40988764f, 0.54744685f,
+ -0.11738721f, -0.02157182f, 0.08566557f, 0.10414729f,
+ 0.025057223f, -0.06437783f, -0.412097f, -0.0042307065f,
+ 0.09893954f, 0.2875615f, -0.03762128f, 0.15852936f,
+ -0.1905499f, 0.25901344f, -0.2712739f, 0.03601561f,
+ 0.004387972f, 0.032269176f, 0.09028176f, -0.24344392f,
+ 0.578315f, 0.5995628f, 0.01948521f, -0.06656699f,
+ -0.44860473f, -0.030275544f, 0.0028631205f, 0.12409984f,
+ -0.30653486f, -0.028968133f, 0.06414857f, -0.053680833f,
+ 0.27649155f, -0.32420692f, -0.34588304f, -0.12012893f,
+ 0.6642773f, -0.0021417525f, 0.21634579f, 0.06150053f,
+ -0.35427606f, 0.36812726f, -0.20247942f, -0.41530645f,
+ 0.3420178f, -0.4176834f, 0.8878698f, -0.5970141f,
+ 0.45512876f, 1.4492253f, 0.1722368f, -0.049125254f,
+ 1.0650928f, 0.08097685f, -0.026237335f, -0.4207098f,
+ 0.005027489f, -0.04193478f, -0.043561045f, -0.012743689f,
+ 0.019975206f, -0.16044186f, -0.4483372f, -2.28855f,
+ 1.2129511f, 0.08362525f, -0.021391185f, 0.014288105f,
+ -0.086535186f, 0.10276763f, -0.0326646f, 0.033307243f,
+ -0.12122989f, 0.1601969f, 0.3750691f, -0.25423017f,
+ -0.5497675f, 0.5791837f, 0.08404447f, -0.06366751f,
+ 0.014551356f, -0.027809473f, 0.010874697f, 1.0109668f,
+ 0.1564346f, -0.45842546f, 0.028419739f, 0.44784868f,
+ -0.31267413f, 0.0060340995f, -0.05775016f, -0.17912991f,
+ -0.17069522f, -0.49763724f, -0.6009535f, -0.04213809f,
+ -0.5667009f, 0.78173965f, 0.63236094f, -0.047163267f,
+ -1.3790908f, -0.030614113f, 0.09831555f, -0.016570905f,
+ -0.15039837f, -0.56222135f, 0.1209177f, 0.0040850574f,
+ 0.643309f, 0.37430063f, -0.8213815f, -0.1254193f,
+ 0.28455067f, -0.87394685f, -0.11946831f, -0.0205662f,
+ -1.1427615f, -0.024777368f, -0.03410667f, 0.17991698f,
+ -0.018672744f, 1.0937966f, -0.23827723f, 0.12444517f,
+ -0.0017131112f, -0.17560297f, -0.25089082f, 0.09696484f,
+ -1.2969805f, 0.018859835f, -0.03143368f, -0.118405364f,
+ 0.034291662f, -0.036787283f, 0.24460082f, -0.12537868f,
+ -0.042896256f, 0.18362634f, 0.0306683f, 0.2335185f,
+ -0.5465708f, 0.05745756f, -0.4459384f, -0.061183605f,
+ -0.034782838f, 0.055547994f, -0.036664758f, -0.1426998f,
+ -0.85535485f, -0.042115655f, 0.013754716f, 0.16788097f,
+ 1.0865614f, 0.046767868f, -0.015336946f, -0.14634065f,
+ 0.17659083f, 0.09522337f, -0.07126352f, 0.034097165f,
+ -0.83545536f, 0.042223338f, -0.27888677f, -0.056111097f,
+ 0.72079843f, -0.0026155086f, -0.36980224f, -0.022680655f,
+ -0.23543695f, 0.60747737f, 0.09853932f, 0.5169744f,
+ -0.20616166f, 0.3630501f, 0.4437663f, -0.18226935f,
+ 0.48641518f, 0.0735053f, -0.053551715f, 0.015459311f,
+ -0.7235898f, -0.0578264f, 0.023913f, 0.37927547f,
+ 0.047405608f, 0.5324787f, -0.62654907f, 0.028373837f,
+ -0.038460612f, -0.3026755f, -0.4027482f, -0.23406893f,
+ -0.33507702f, -0.20954898f, 0.15652028f, -0.010712538f,
+ 0.01711212f, -0.0034597977f, 0.40976873f, 0.007278071f,
+ 0.045177642f, 0.14301045f, -0.04012602f, -0.05232543f,
+ -0.8025117f, 0.02132764f, 0.08941675f, 0.05352809f,
+ -0.017599287f, 0.004846159f, 0.03168245f, 0.019768503f,
+ -0.24690223f, -0.9910201f, -0.081315175f, 0.43069622f,
+ 0.13105994f, 0.02795268f, 0.11568813f, -0.05840702f,
+ -1.028616f, 0.12262573f, -0.7954706f, -0.065387f,
+ 0.24543488f, 0.4708144f, 0.16503695f, -0.003493587f,
+ 0.04624817f, 0.033537313f, -0.13927694f, -0.010720684f,
+ -0.056295592f, -0.09152959f, 0.5566358f, 0.38096347f,
+ -0.33571973f, 0.5519083f, -0.31118378f, -0.013910142f,
+ 0.31484014f, -0.3146499f, 0.07225512f, 0.09995701f,
+ -0.23302361f, -0.020723084f, 0.00447599f, 0.35873586f,
+ 0.008779534f, -0.21167934f, -0.46931377f, -0.0015569436f,
+ 0.0069306614f, 0.13568762f, 0.6329485f, 0.47609016f,
+ -1.017479f, 0.08514554f, -0.054525312f, -0.015685027f,
+ -0.02551825f, -0.09945909f, 0.012709011f, -0.014438304f,
+ 0.014892543f, 0.6138525f, 0.24285355f, 0.324777f,
+ 0.2631906f, -0.046061434f, 0.5822417f, -0.02044724f,
+ 0.04120801f, 0.029072214f, 0.009368578f, -1.3319585f,
+ 0.82650673f, 0.75060326f, 0.057633195f, -0.26075315f,
+ -0.25324252f, -0.008837681f, 0.021120483f, -0.08743953f,
+ -0.21820296f, 0.28588092f, -0.07246965f, 0.05744877f,
+ 0.49222636f, -0.15256125f, -0.27819487f, 0.08569978f,
+ 0.5888137f, 0.004761576f, -0.13969503f, -0.04535663f,
+ 1.1006471f, 0.14696535f, -0.7222154f, -0.24816453f,
+ -0.25851348f, -0.19520083f, 0.59072864f, 0.04043634f,
+ 0.22155058f, -0.18216798f, 0.047094192f, -0.09079342f,
+ -0.15362072f, 0.045292247f, 0.013311644f, -0.22785743f,
+ 0.0048120604f, -0.6702232f, 0.27164027f, -0.1300511f,
+ 0.0075031165f, 0.2357332f, 0.2618415f, -0.2510505f,
+ 1.2682629f, -0.021749303f, -0.13178375f, 0.061893355f,
+ -0.04040402f, 0.07121228f, -0.20826876f, 0.13440458f,
+ -0.021375604f, -0.6405225f, 0.0291113f, -0.28026247f,
+ 0.64686376f, 0.6986859f, 0.21298127f, -0.053625584f,
+ -0.035023686f, -0.049800046f, -0.017050091f, -0.13471982f,
+ -0.26632822f, -0.63169664f, -0.023212554f, -0.18290624f,
+ -0.87847924f, -0.05548868f, -0.03842725f, 0.12939766f,
+ -0.53649724f, -0.0198538f, 0.016247164f, -0.013685116f,
+ 0.4078656f, -0.061889652f, -0.1661327f, 0.04119042f,
+ -0.48725393f, -0.030756727f, -0.0393449f, 0.072909534f,
+ 0.31524822f, -0.7435991f, 0.07250814f, -0.36367157f,
+ -0.13777909f, -0.50330985f, -0.36533332f, -0.22574647f,
+ 0.33942258f, -0.1205188f, -0.122316636f, -0.1542835f,
+ 1.2764274f, 0.009208026f, -0.012883828f, -0.31381887f,
+ -0.0005838401f, -0.5005434f, -0.034416754f, 0.011208452f,
+ 0.033190683f, 0.64193505f, -0.06387107f, -0.5451846f,
+ 0.69400233f, 0.049208295f, -0.10842329f, 0.049047656f,
+ 0.047148947f, -0.01606147f, -0.23653583f, -0.042192724f,
+ 0.002961032f, -0.33935216f, 0.15133108f, -0.2676888f,
+ 0.5528071f, 0.55782247f, -0.58090425f, 0.005583649f,
+ -0.038588822f, -0.016774394f, -0.11061423f, -0.31087685f,
+ 0.093570895f, 0.9662744f, -0.0011636106f, -0.32283235f,
+ -0.33830914f, 0.043657377f, -0.08842878f, 0.25152713f,
+ -0.3390634f, -0.013931634f, 0.017108178f, 0.10159245f,
+ -0.52931947f, -0.28755113f, -0.35465404f, 0.07202651f,
+ -0.010871618f, -0.04374995f, -0.49648622f, -0.009184744f,
+ 0.59283644f, 0.9503989f, -0.70526075f, -0.21888113f,
+ 0.19994907f, -0.22587712f, -0.27021778f, -0.30130005f,
+ 0.44768167f, 0.4252455f, -0.20019029f, 0.11665344f,
+ -1.5746366f, -0.052289493f, -0.010745986f, -0.0034409862f,
+ 0.012636438f, 0.55377954f, 0.03912772f, -0.032566406f,
+ -0.0007150571f, -0.076324955f, -0.058061037f, 0.7175767f,
+ 0.029997677f, -0.020369094f, -0.023034604f, -0.08009664f,
+ 0.0373871f, 0.027182478f, 0.42394277f, 0.053810295f,
+ 0.043056875f, -0.7842552f, 0.25498968f, -0.058218997f,
+ -0.3043738f, -0.063931525f, 0.4486553f, 0.16389361f,
+ 0.10456862f, -0.022132555f, 0.027993731f, 1.6262962f,
+ -0.45953575f, -0.1466535f, -0.041071527f, -0.16899912f,
+ 0.31199768f, -0.027238147f, 0.031063844f, -0.20033169f,
+ -0.34962478f, -0.5633951f, -0.29469877f, -0.014739486f,
+ -0.045203693f, -0.021671806f, 0.6919137f, -0.22483699f,
+ -0.40708676f, 0.054062307f, -0.05197003f, -0.025337625f,
+ -0.73292476f, -0.24933857f, 0.82847023f, 0.25491473f,
+ -0.103149645f, 0.3296997f, -0.57859015f, -0.41116172f,
+ 0.38764971f, 0.13762185f, 0.03478033f, -0.046209205f,
+ 0.73506415f, 0.01631328f, -0.002025712f, 0.07973871f,
+ -0.01579648f, -0.14011623f, 0.23126943f, 0.21014656f,
+ -0.016556315f, -0.53184044f, -0.19866489f, 0.3992862f,
+ -0.5639805f, 0.040748715f, 0.12185311f, -0.028548738f,
+ -0.004940064f, 0.010781208f, -0.15731747f, -0.051332895f,
+ -0.00518912f, 0.20104253f, -0.1829066f, 0.16936184f,
+ -1.171597f, -0.65006244f, -0.48726544f, -0.04810957f,
+ -0.033585478f, 0.029386131f, 0.0049733287f, 0.037679423f,
+ 0.39788154f, 0.31621927f, 0.043903824f, 0.071929984f,
+ 0.5217289f, 0.015064338f, 0.015279443f, 0.13921888f,
+ -0.02883947f, 0.71855783f, -0.2109562f, 0.010081428f,
+ 0.07372295f, 0.07552343f, 0.05230777f, -0.082722954f,
+ 0.3761182f, 0.015632277f, 0.07442989f, -0.027991854f,
+ -0.3138945f, -0.3929018f, -0.07415922f, 0.13380954f,
+ -0.0078057814f, 0.019742513f, 0.016172424f, 0.017375441f,
+ -0.052661207f, -0.4781233f, -0.054727115f, -0.02118209f,
+ -0.229847f, -0.0039229733f, 0.0038308224f, -0.011887334f,
+ -0.0035713979f, 0.22918047f, 0.0775326f, -0.048812997f,
+ -0.0002771447f, 0.027191475f, 0.052423544f, 0.044309687f,
+ -0.011567655f, 0.04573382f, -0.0006798016f, -0.0062655336f,
+ -0.0026455366f, 0.029365595f, -0.031987756f, -0.025443032f,
+ 0.008478328f, -0.066848956f, -0.014157594f, -0.044244073f,
+ 0.05221468f, -0.15761097f, 0.020356005f, 0.0061391434f,
+ 0.014106313f, -0.014540627f, 0.0037104625f, -0.017201824f,
+ 0.0011053516f, -0.14445814f, 0.0023510815f, 0.00787147f,
+ 0.29393092f, 0.032393318f, -0.0032046593f, -0.007847573f,
+ -0.23467864f, 0.012481185f, 0.010948113f, -0.03298336f,
+ -0.08948784f, 0.007594894f, 0.026183078f, 0.010640864f,
+ -0.0049760737f, -0.0031692777f, 0.02226733f, 0.007591629f,
+ 0.09223627f, 0.19171855f, 0.23845881f, 0.078096315f,
+ 0.0803689f, -0.0066049527f, -0.05647101f, -0.047144923f,
+ 0.008050752f, 0.40838066f, 0.021131983f, -0.0056757247f,
+ 0.2058494f, 0.0027337354f, -0.018146334f, -0.010976582f,
+ -3.3641663e-05f, -0.28797475f, -0.17023762f, 0.08223661f,
+ 0.014548555f, -0.07619067f, 0.031254116f, -0.042499606f,
+ -0.0410853f, -0.046029616f, 0.009751654f, 0.012806218f,
+ 0.011698864f, -0.011414234f, 0.07011464f, 0.0030709608f,
+ -0.0092857275f, 0.09550094f, 0.0034886636f, 0.07658829f,
+ 0.15900756f, 0.047673162f, -0.0750839f, -0.021272903f,
+ -0.020894287f, 0.01958254f, -0.02827355f, 0.02208786f,
+ 0.026711171f, -0.28134233f, 0.001291069f, -0.009675154f,
+ -0.29068983f, -0.00798855f, 0.006092804f, -0.038108557f,
+ -0.091256246f, 0.019281834f, -0.29095393f, 0.026257845f,
+ 0.1309394f, -0.010564512f, 0.01122478f, 0.018628186f,
+ -0.0030694103f, -0.011639599f, -0.026464157f, -0.006576357f,
+ -0.0137291355f, -0.3282288f, -0.31412655f, 0.021462375f,
+ 0.07361313f, -0.011061627f, -0.04343106f, 0.004366071f,
+ 0.04880275f, -0.19794904f, 0.008122329f, 0.015943844f,
+ 0.052147835f, 1.397853e-05f, 0.018740727f, 0.004774532f,
+ 0.0020803867f, 0.038010113f, 0.011765175f, -0.00074394944f,
+ -0.004462361f, 0.009734726f, -0.04006569f, 0.034498766f,
+ 0.08515529f, -0.004778649f, 5.659808e-07f, -0.009094901f,
+ 0.0025187423f, -0.0027704558f, 0.011113446f, 0.017968861f,
+ 0.0052414043f, 0.0351474f, -0.008167569f, -0.003334091f,
+ 0.013070372f, 0.038207587f, 0.025277864f, 0.017965896f,
+ 0.0063548395f, -0.009195849f, 0.013117058f, -0.008964758f,
+ -0.0050932416f, 0.55528945f, -0.0044487696f, -0.0010013592f,
+ 0.20431626f, -0.011959204f, 0.002481012f, 0.015911352f,
+ -0.20152493f, 0.009970937f, -0.04473091f, -0.007384808f,
+ 0.036247272f, -0.007880976f, -0.19301462f, 0.006047891f,
+ 0.024284927f, 0.009477591f, -0.063653596f, 0.0006182951f,
+ -0.026845317f, 0.016548611f, -0.101348214f, -0.048169345f,
+ 0.015660312f, 0.031950053f, -0.05867493f, 0.009937294f,
+ 0.05164086f, 0.1988346f, 0.070667565f, -0.016466783f,
+ 0.5142037f, 0.015506373f, 0.002062815f, -0.0055541117f,
+ -0.0024006916f, -0.14113165f, -0.16147952f, 0.032159813f,
+ 0.0030151126f, 0.025911462f, 0.029074294f, -0.01653342f,
+ 0.1755527f, -0.036357738f, -0.014033097f, 0.035746846f,
+ 0.0029733854f, -0.016317012f, 0.01112932f, 0.0031189811f,
+ -0.021564832f, -0.044499937f, 0.005005789f, 0.11142677f,
+ 0.043077905f, -0.18040922f, 0.07165663f, -0.023367831f,
+ -0.027968097f, 0.008608303f, -0.0071139387f, 0.017615711f,
+ 0.0026985256f, 0.05792996f, 0.0112460125f, -0.0021565093f,
+ -0.25188747f, -0.015041715f, 0.0045530135f, -0.022716084f,
+ -0.20556125f, -0.025442574f, 0.018738063f, -0.016900785f,
+ -0.006068103f, 0.27570358f, -0.042092964f, -0.02577058f,
+ 0.0030602594f, -0.013339391f, 0.0013522366f, 0.021537406f,
+ -0.034035444f, -0.003193429f, -0.11484706f, -0.036917094f,
+ -0.082767345f, -0.06713119f, 0.09249502f, 0.11092656f,
+ 0.13265409f, -0.011778177f, -0.053474896f, 0.04773392f,
+ -0.7436733f, -0.011030959f, 0.0025669588f, 0.03686601f,
+ 0.008572666f, 0.37047702f, -0.07090887f, -0.070549674f,
+ -0.031963717f, -0.033052254f, -0.007627265f, 0.072491236f,
+ -0.1277905f, 0.039086353f, 0.04481494f, -0.061706945f,
+ -0.015030148f, -0.024301423f, -0.078540646f, 0.0069334363f,
+ 0.029021041f, 0.20176485f, -0.015211222f, -0.14521697f,
+ -0.05711621f, 0.022002827f, -0.08114605f, 0.02858364f,
+ 0.035283055f, -0.028423185f, 0.023677899f, 0.030181028f,
+ 0.036563523f, -0.63772595f, -0.021246273f, 0.028351536f,
+ -0.30178908f, -0.008489201f, -0.00720574f, 0.08880132f,
+ -0.12652794f, 0.020220162f, -0.06382559f, 0.014522165f,
+ -0.021124972f, -0.0022601688f, 0.014533422f, 0.012019225f,
+ 0.019383505f, 0.03329861f, 0.057719886f, -0.027655464f,
+ -0.036482707f, -0.09650988f, -0.22755843f, -0.103737235f,
+ -0.1061986f, 0.055280935f, 0.11512776f, -0.024457429f,
+ -0.019746944f, 0.0768614f, -0.0035145748f, -0.03087659f,
+ -0.017005183f, 0.006165983f, -0.005233692f, 0.00896437f,
+ -0.005052489f, -0.050315905f, -0.09293298f, 0.003728282f,
+ 0.024696782f, 0.0045733238f, -0.026022436f, 0.0006269679f,
+ -0.1816113f, 0.027006544f, -0.03422424f, 0.037619673f,
+ -0.0013818704f, 0.027788023f, 0.025225077f, 0.002407957f,
+ -0.013550099f, 0.010801919f, -0.014714544f, -0.00040215856f,
+ 0.03926722f, 0.08828439f, 0.008558555f, -0.009270109f,
+ -0.004385327f, 0.010233158f, -0.019036032f, -0.030206276f,
+ -0.033121765f, -0.13951068f, 0.013713388f, -0.013071642f,
+ 0.35433635f, 0.013762486f, -0.010873466f, -0.0213374f,
+ 0.005254113f, -0.005535398f, -0.012361244f, 0.013643458f,
+ 0.091230646f, 0.00091912574f, 0.034441207f, 0.00010668336f,
+ 0.048458822f, -0.03128664f, 0.01909649f, 0.010139524f,
+ -0.015756112f, 0.043172717f, -0.087600514f, -0.006707771f,
+ 0.0788697f, -0.023733482f, -0.07106929f, -0.09264153f,
+ 0.009167255f, 0.09036573f, 0.0326717f, -0.0015202122f,
+ -0.08533217f, 0.0073640617f, -0.004058215f, -0.0011605297f,
+ 0.01386132f, -0.06359304f, 0.056008916f, -0.03057141f,
+ -0.0023246289f, -0.0074864766f, -0.04017876f, -0.0038305363f,
+ -0.33230972f, -0.008375357f, 0.0024231453f, 0.0020027861f,
+ -0.023743609f, 0.003059942f, 0.022246484f, 0.03625221f,
+ -0.0015598051f, 0.015130484f, -0.0056256033f, -0.050133888f,
+ 0.014826869f, 0.09293818f, 0.009386748f, -0.01082221f,
+ 0.006315008f, -0.005312084f, -0.00029892215f, -0.00229708f,
+ -0.030131938f, 0.26342997f, -0.0152957775f, 0.0012141207f,
+ 0.35715994f, -0.010755444f, -0.0011738731f, -0.010328856f,
+ 0.057593875f, 0.008639433f, 0.0038792936f, -0.0056522437f,
+ -0.13717589f, -0.013227977f, 0.010183696f, 0.0035481777f,
+ -0.02044172f, 0.008773298f, -0.028279128f, -0.009188993f,
+ 0.03104827f, -0.0039341585f, 0.042983476f, -0.0277756f,
+ 0.21703114f, 0.0035122873f, -0.07184546f, 0.102759235f,
+ -0.027148139f, -0.25413436f, 0.0024625089f, 0.00561767f,
+ -0.034852516f, -0.010747183f, 0.012776845f, -0.007462028f,
+ -0.0118268225f, -0.1509328f, -0.04881937f, 0.006288324f,
+ 0.008702177f, 0.004101342f, 0.02440534f, 0.009749633f,
+ 0.30794364f, 0.0019058379f, -0.0279524f, -0.0017068943f,
+ 0.018848538f, -0.012945478f, 0.03892611f, -0.03576354f,
+ 0.0016191575f, -0.01910429f, 0.01790638f, 0.11121567f,
+ -0.019189795f, -0.03395928f, -0.013320871f, 0.007923205f,
+ -0.004614204f, 0.021835346f, 0.016944999f, 0.009357709f,
+ 0.0020172119f, 0.34877446f, 0.030333728f, -0.0035031175f,
+ -0.1998395f, 0.009938196f, 0.022008477f, -0.06687329f,
+ -0.029088462f, -0.00017337677f, -0.0074062604f, 0.027843181f,
+ 0.07596423f, 0.0009457906f, 0.014091932f, -0.008748461f,
+ 0.0077689365f, -0.020553576f, 0.01837996f, 0.008025833f,
+ -0.0035311829f, -0.06502362f, 0.28695494f, 0.14743194f,
+ -0.14751524f, -0.011262906f, -0.06166913f, -0.04363869f,
+ 0.05364559f, 0.13614431f, -0.0089710215f, 0.00044184062f,
+ 0.32402644f, -0.0052708285f, -0.0152359875f, -0.0112769f,
+ -0.0007417664f, 0.06521429f, -0.12372744f, 0.027686572f,
+ -0.0117184f, -0.011172566f, 0.05778782f, 0.012171272f,
+ 0.124548495f, -0.007949408f, 0.010774258f, -0.0131666465f,
+ 0.0038883104f, 0.002711419f, 0.0055943294f, -0.0094756745f,
+ -0.00091055874f, -0.009653356f, -0.002916096f, -0.04356369f,
+ 0.026793452f, 0.0028958032f, -0.01881665f, -0.0032189377f,
+ -0.006172408f, 0.0002701205f, -0.0022835762f, -0.011573634f,
+ -0.0073187775f, -0.016342338f, -0.01424531f, -0.0010785601f,
+ -0.12265341f, 0.004557373f, -0.018967267f, 0.07438131f,
+ -0.12901184f, 0.0025153654f, -0.0014594496f, -0.019617334f,
+ 0.22699693f, 0.0065134554f, -0.006703861f, 0.0034494703f,
+ -0.09282076f, 0.025492774f, -0.014938298f, -0.00860825f,
+ -0.013677321f, -0.02413302f, 0.3443878f, -0.016550088f,
+ 0.7370409f, 0.21976984f, 0.041853994f, 0.5457159f,
+ 0.05494297f, -0.71273977f, -0.15618049f, -0.08607849f,
+ -0.34837216f, -0.026116956f, -0.027282152f, -0.48484486f,
+ -0.01972729f, -0.4756282f, -0.7625491f, 0.1974317f,
+ -0.008518391f, 0.21032718f, 0.3529119f, -0.58088607f,
+ -0.78457123f, 0.119458534f, 0.17464821f, -0.01248624f,
+ 0.05795382f, 0.049865842f, 0.2041681f, -0.10759984f,
+ -0.01563597f, -0.5524628f, 0.76221806f, 0.29417214f,
+ -1.0110563f, 0.013609915f, -0.18232289f, 0.006193254f,
+ -0.0007576604f, 0.02664505f, -0.008444347f, 0.07788375f,
+ 0.8406587f, 0.32788396f, 0.044858735f, 0.12410785f,
+ 0.5378322f, 0.14373532f, -0.043855127f, -0.18614891f,
+ 0.34531936f, -0.68530166f, -0.28789997f, -0.08463399f,
+ -0.65566736f, -0.99668235f, -0.26005903f, -0.19189383f,
+ 0.29277557f, -0.06944413f, 0.3055539f, -0.09321121f,
+ -0.6146292f, -0.043432035f, 0.11318668f, 0.30939588f,
+ 0.36775333f, -0.4715244f, -0.120446056f, 0.021062594f,
+ 1.205382f, -0.5297925f, 0.19506985f, 0.15144552f,
+ 0.5552785f, -0.0143052535f, -0.006230928f, -0.24239509f,
+ 0.001486383f, -0.28595662f, -0.6882348f, -0.06312308f,
+ -0.020342628f, -0.2291637f, 0.41151556f, -0.6599691f,
+ 1.0784816f, -0.09360707f, -0.20338158f, -0.11509781f,
+ -0.07894941f, -0.15031481f, -0.09404559f, 0.040257566f,
+ 0.004616838f, 0.21255566f, 0.9674317f, -0.011768347f,
+ 0.18840504f, 0.27666524f, 0.006372471f, 0.047953054f,
+ -0.010728265f, 0.017533423f, 0.1166005f, 0.6587811f,
+ 0.22406898f, 0.025338586f, -0.03944574f, -0.042628296f,
+ -0.5850943f, -0.15973023f, 0.010755617f, 0.31585294f,
+ -0.43246442f, -0.6066614f, -1.2405294f, 0.24921182f,
+ -1.2466887f, 0.7401801f, 0.13918546f, -0.29029468f,
+ 0.37135035f, 0.12756585f, 1.6130141f, 0.060275257f,
+ -0.85155255f, -0.33253935f, 0.6336804f, -0.81441504f,
+ -0.18905365f, 0.29859978f, 0.052700102f, 0.18371491f,
+ -0.23572278f, 1.2365474f, -0.0059242914f, -0.021684501f,
+ -0.0024338127f, 0.023151318f, 0.023861215f, 0.6414295f,
+ -0.0107756015f, 0.24430475f, -0.26460126f, -0.21450184f,
+ 0.030691184f, -0.9183229f, -0.013647338f, -0.06979839f,
+ -0.49380782f, -0.017276933f, 0.032797486f, 0.12864773f,
+ 0.038327277f, 0.06514179f, 0.085509636f, 0.0010040601f,
+ 0.0065498776f, 0.72391725f, 0.92027056f, -0.24296992f,
+ 0.097144224f, -0.5410544f, 0.6978373f, -0.07658475f,
+ -0.0070851175f, -0.0059128716f, -0.09708186f, -0.05550283f,
+ 0.44738656f, -0.29417402f, 0.02657336f, -0.4943723f,
+ 0.04342458f, 0.09017252f, -0.017559253f, -0.21154761f,
+ 0.16282438f, -0.97755176f, -0.82661426f, -0.1845149f,
+ -1.1869662f, -0.010852375f, 0.78427875f, -0.0027530713f,
+ -0.51421833f, -0.07265414f, 0.75912565f, 0.025225304f,
+ -0.6499076f, 1.0230305f, -0.3401785f, 0.47835416f,
+ -0.096426524f, 0.15648079f, 0.14861038f, 0.10011849f,
+ 0.3102945f, 0.8523988f, 0.18256864f, 0.026489822f,
+ -0.64302886f, 0.019270737f, 0.05573781f, 0.42643732f,
+ 0.00809397f, 0.37845564f, -0.1627062f, -0.33784425f,
+ 0.03001826f, 0.07961383f, -0.9723518f, 0.5377511f,
+ 0.4330208f, -0.0036892816f, -0.27828068f, 0.13962105f,
+ 0.013209306f, -0.16687979f, 0.16017999f, 0.09929566f,
+ 0.095344245f, -0.14031428f, 0.44403052f, -0.44417542f,
+ 0.44575283f, -0.09336303f, -0.09511803f, 0.11820466f,
+ 0.07390441f, -0.05140716f, 0.030119361f, 0.43220082f,
+ 0.87674034f, -1.712979f, -0.00980086f, -0.00025476364f,
+ -0.39092174f, -0.13213517f, -0.0004488836f, 0.20266174f,
+ -0.2455436f, -0.26730222f, -0.33604172f, 0.052814744f,
+ 0.7721085f, 0.5771454f, 0.05258471f, 0.1296466f,
+ -0.32460204f, 0.05864159f, 0.29164928f, 0.13599122f,
+ 0.8109872f, -0.33575436f, -0.09037249f, -0.025299827f,
+ -0.82131195f, 0.106357194f, -0.18223777f, 0.08711271f,
+ 0.6264812f, 0.39385918f, -0.3640404f, -0.10629906f,
+ 0.33068985f, -0.006836846f, -0.08355463f, 0.35429785f,
+ -0.0190048f, 0.017468685f, 0.063729145f, 0.21092674f,
+ 0.008653142f, -0.723953f, -0.52032936f, -0.5889153f,
+ -0.7983231f, -0.06594285f, 0.4534988f, -0.16118486f,
+ 0.033103406f, 0.30102712f, -0.3718333f, -0.077720545f,
+ -0.07116778f, -0.36530006f, 0.26453966f, 0.05678729f,
+ -0.02656765f, -0.12273443f, -0.07437828f, -0.2205288f,
+ -0.12644781f, 0.0096302265f, -0.16005842f, 0.09942739f,
+ 0.28666392f, 0.73464197f, 0.032734327f, 0.5365079f,
+ -0.7333569f, 0.20394847f, -0.004946177f, -0.16971895f,
+ -0.14489444f, 1.4337333f, -0.58747196f, -0.13101f,
+ 0.23464805f, -0.2090858f, -0.010714871f, 0.10838685f,
+ 0.121889815f, -0.15656818f, -0.90085685f, -0.1491452f,
+ 0.079399936f, 0.20478018f, -0.61299366f, 0.3219869f,
+ 0.69017905f, -0.573174f, 0.88105553f, -0.51098084f,
+ 0.2839732f, -0.9338436f, 0.09737202f, 0.061114464f,
+ -1.4474089f, 0.015664741f, 0.04154113f, -0.005590741f,
+ 0.009578148f, 0.76603526f, 0.27598417f, 0.1584812f,
+ -0.030440742f, -0.007647062f, 0.4833707f, 0.19734098f,
+ 0.33204794f, 0.15709585f, -0.19537179f, 0.027727377f,
+ -0.07390019f, -0.14446525f, -0.64262766f, 0.004115173f,
+ 0.013965493f, -0.78710556f, 0.371178f, 0.17862314f,
+ -0.010230953f, -0.02967964f, -0.07554181f, 0.1446332f,
+ 0.071846634f, -0.017874409f, 0.09863388f, -0.21470304f,
+ 0.8174611f, -1.359671f, -0.036550608f, 0.2605473f,
+ 0.025775872f, -0.11712959f, 0.0043917117f, 0.040231273f,
+ -0.56222993f, -0.32952553f, -0.5860293f, 0.11711925f,
+ 0.98885465f, 0.44401336f, 0.1912957f, 0.16186453f,
+ 0.12837292f, 0.09623812f, 0.012914279f, 0.017447041f,
+ -0.3902695f, -0.7015154f, -0.1670187f, -0.2844426f,
+ -0.57678306f, 0.130944f, 0.55207556f, -0.4120813f,
+ 0.2227803f, -1.2753959f, 0.15916531f, 0.10720631f,
+ 0.8520681f, 0.019271132f, 0.016374182f, -0.067113675f,
+ 0.044040736f, -0.15258417f, 0.175413f, 0.23085782f,
+ -0.00784479f, 0.35195833f, -0.06657129f, 0.15608238f,
+ 0.2903644f, -0.15890138f, 0.01422551f, 3.6155376e-05f,
+ -0.086418726f, 0.115444414f, 0.34283534f, 0.07201587f,
+ -0.09144701f, 0.06294239f, -0.17385422f, 0.29746783f,
+ -0.0041174944f, 0.9545657f, -0.3587797f, -0.099627994f,
+ -0.03587145f, 0.02555887f, 0.006042229f, 0.017327461f,
+ 0.5376432f, 0.9401248f, -0.055094562f, 0.14814095f,
+ -0.24288212f, -0.0398266f, 0.037610736f, -0.14103232f,
+ 0.1951181f, -0.2586588f, 0.1259387f, -0.052774984f,
+ 0.6104627f, 0.15300821f, -0.009942706f, 0.007187638f,
+ -0.039316703f, -0.009981615f, -0.3253851f, -0.026685627f,
+ -0.4497551f, 0.04969143f, -0.04497608f, -0.19232413f,
+ -0.6280112f, 0.17320472f, 0.0049350373f, -0.5119433f,
+ 0.7009196f, 1.2547711f, 0.060407694f, -0.17742929f,
+ 1.373868f, 0.02210516f, 0.04963606f, 0.043907885f,
+ -0.028946804f, -0.78293675f, 0.57730246f, -0.099193476f,
+ -0.005139176f, 0.118006915f, -0.20975055f, 0.2325305f,
+ -0.3301266f, 0.25981203f, -0.22520976f, 0.24865825f,
+ 0.04127455f, -0.1536492f, -0.06180238f, 0.010154743f,
+ 0.08137378f, 0.3501325f, 0.15056124f, 0.0016292988f,
+ 0.29376718f, 0.06690604f, -0.18972114f, 0.13992737f,
+ 0.06721675f, -0.05916506f, 0.017599855f, -0.13531733f,
+ -0.49635127f, 0.749469f, 0.004851781f, 0.079691924f,
+ 0.84881306f, -0.020977713f, -0.055211425f, 0.2821434f,
+ -0.51946276f, -0.5657611f, 0.08304703f, -0.04578232f,
+ 0.07650989f, 0.08796448f, -0.1486227f, 0.008059939f,
+ -0.36211497f, 0.0073701045f, -0.22072487f, 0.083062865f,
+ 0.1336751f, 0.4393539f, 0.49447033f, -0.107674204f,
+ 1.017564f, -0.18160932f, -0.32538083f, -0.8867412f,
+ 0.4654386f, -0.6171205f, -0.1356557f, 0.070447914f,
+ -0.6806565f, -0.06385581f, -0.08105891f, 0.19224541f,
+ -0.015061828f, 0.22266607f, -0.020398807f, -0.097178325f,
+ 0.006524372f, 0.07665616f, 0.16923898f, -0.18738335f,
+ 0.27903926f, -0.2145893f, 0.21206288f, -0.21109332f,
+ 0.05719954f, 0.074653186f, 0.0006055157f, -0.05346313f,
+ -0.010489333f, 0.9479759f, 0.093053326f, -0.08096564f,
+ -0.9002712f, -0.35926625f, -0.039251544f, -0.08477608f,
+ -0.044152535f, 0.06452973f, -0.015974997f, 0.17217024f,
+ 0.20786014f, 0.4448249f, 0.045225326f, 0.07583153f,
+ 0.21099012f, 0.05975245f, 0.027918167f, -0.009789194f,
+ -0.21668072f, -0.3266794f, -0.07853268f, 0.036635544f,
+ 0.8428246f, 0.24315497f, 0.11222235f, -0.06672066f,
+ 0.2897849f, 0.010839814f, 0.079621926f, -0.06650276f,
+ 0.66640353f, 0.31793934f, 0.53107846f, 0.25276315f,
+ -1.0314702f, -0.19460422f, -0.09489199f, -0.14478776f,
+ -0.43846875f, -0.5283423f, -0.05859613f, -0.05232465f,
+ 0.104246214f, 0.09635764f, -0.026412753f, -0.09133365f,
+ 0.04334463f, 0.010813169f, 0.84202915f, 0.060536698f,
+ 0.03049121f, -0.19143122f, 0.022696959f, 1.2742474f,
+ -0.6591722f, 0.1890969f, 0.1556264f, 0.029603846f,
+ -0.12774724f, 0.11891661f, -0.51016444f, 0.18304925f,
+ -0.035618834f, -0.092526816f, -0.14290752f, -0.29915187f,
+ 0.11079907f, 0.19200562f, 0.25691193f, 0.040961053f,
+ 0.032788474f, -0.13855319f, -0.04088719f, 0.09643746f,
+ -0.28801113f, -0.5328631f, -0.07329775f, -0.26443198f,
+ 0.37221664f, -0.009253239f, -0.059853602f, 0.31746075f,
+ 0.2633619f, 0.26534364f, -0.070109576f, 0.06833996f,
+ 0.008257315f, -1.2458268f, 0.047516987f, 0.02138565f,
+ -0.4107217f, -0.10129792f, -0.5451474f, 0.056732874f,
+ 0.446441f, 0.06943919f, 0.4711551f, -0.34459698f,
+ 1.1583481f, -0.16762608f, 0.58947223f, 0.3927579f,
+ -0.050633885f, -0.3251315f, -0.0029146085f, 0.051568832f,
+ 0.1812147f, -0.040395778f, 0.01849805f, 0.28985307f,
+ -0.03978191f, 0.73897f, -0.17195508f, -0.07885496f,
+ -0.0029975162f, 0.47930247f, -0.41002056f, -0.9239777f,
+ 0.356172f, -0.049186915f, -0.12032332f, -0.07610425f,
+ 0.036021505f, -0.022196224f, 0.4271711f, 0.0060595586f,
+ -0.027331632f, -0.43677238f, 0.16248968f, 0.24111597f,
+ 0.42482492f, -0.3851411f, -1.3643f, -0.06809617f,
+ -0.03274611f, 0.07961072f, -0.002664774f, 0.26837954f,
+ 0.5759822f, 0.5968552f, 0.04330689f, -0.106867716f,
+ -0.12295376f, -0.018749647f, 0.007796518f, -0.3983895f,
+ 0.33233544f, -0.0509593f, 0.2933523f, 0.031923257f,
+ -0.10490004f, 0.20415697f, 0.51272297f, 0.3312203f,
+ 0.49989042f, 0.07058827f, 0.17110246f, -0.05626516f,
+ -0.21083409f, 0.5410044f, -0.36998302f, 0.35698834f,
+ -0.6860957f, 0.1177695f, 0.2817654f, 0.6462636f,
+ 0.13505563f, 0.029112196f, -0.19777651f, -0.023899363f,
+ -0.8930575f, -0.046861768f, -0.059789658f, 0.15581863f,
+ -0.05101801f, -1.0463655f, -0.09849543f, -0.009844953f,
+ -0.018339073f, -0.023216499f, 0.2905773f, 0.13671601f,
+ -0.1519527f, 0.123234525f, 0.083237015f, -0.044211056f,
+ 0.061838582f, -0.04877831f, 0.04155708f, -0.10635646f,
+ 0.09913501f, 1.2400111f, 0.4197746f, -0.334335f,
+ 0.90251094f, -0.01882254f, 0.622279f, 0.07658976f,
+ 0.0026994413f, 0.038100753f, -0.015115521f, 0.057918f,
+ -0.18978429f, -0.5754688f, 0.05699169f, -0.02108283f,
+ -0.0041081966f, 0.11082881f, -0.036198426f, 0.29460067f,
+ 0.061936017f, -0.7387069f, -0.28173372f, 0.056153044f,
+ -0.6650216f, -0.3982168f, -0.99010795f, -0.07112472f,
+ 0.28529876f, 0.0048533413f, 0.6431435f, 0.016369823f,
+ -0.37083927f, -0.58621913f, 0.15593578f, -0.098923266f,
+ 0.3835701f, 0.19458699f, -0.6270994f, 0.055326678f,
+ -0.5892951f, -0.10250459f, -0.058017947f, -0.0500002f,
+ 1.0813302f, -0.016622312f, 0.02355821f, 0.0048844987f,
+ 0.006905939f, -0.013338265f, -1.0197109f, 0.073926926f,
+ -0.030929698f, 0.52939284f, -0.1336776f, 0.04957343f,
+ 0.20402181f, -0.040065117f, -0.06234864f, -0.059094917f,
+ 0.07990316f, -0.109560564f, 0.379377f, -0.12892726f,
+ 0.05883856f, -0.3029621f, 0.059575167f, 0.11151769f,
+ 0.79485536f, -0.64154994f, 0.29885545f, -0.020568196f,
+ 0.015822971f, 0.03479702f, 0.008484442f, 0.23359865f,
+ 0.4339689f, 0.79100764f, 0.0821293f, 0.46663418f,
+ 0.08273576f, 0.031012546f, 0.025193207f, -0.17573565f,
+ 0.29147983f, -0.24529156f, 0.55945474f, 0.023358854f,
+ -0.2728956f, -0.06776653f, -0.3670159f, 0.03295921f,
+ 0.44948828f, 0.016795594f, 0.5028866f, -0.042178556f,
+ -0.4020223f, 0.53188103f, -0.31257254f, 0.21422355f,
+ 0.3935557f, 0.3400123f, -0.37817818f, -0.120563634f,
+ -0.4689006f, 0.013835511f, 0.0043251603f, 0.14064293f,
+ 0.2135006f, -0.075142086f, -0.060730662f, -0.476166f,
+ -0.008060943f, -0.3600266f, 0.35044354f, 0.1628309f,
+ -0.029300055f, -0.5274336f, 0.17091957f, 1.2667406f,
+ 0.084669024f, 0.0024507123f, 0.204444f, -0.014148077f,
+ 0.03321813f, -0.031326264f, -0.38613653f, -0.1249787f,
+ 0.029439861f, 0.33227772f, 0.41733068f, 0.24092191f,
+ 0.71207905f, 0.033660192f, 0.81783754f, 0.074495636f,
+ 0.046739914f, 0.088574246f, 0.1300375f, -0.61960363f,
+ -0.39675522f, -0.22519617f, 0.0086545795f, -0.21197566f,
+ 0.2884501f, 0.0073786094f, 0.002973694f, 0.21082595f,
+ -0.36077842f, 0.010644188f, 0.53736806f, 0.027492557f,
+ 0.52925026f, -0.5660192f, 0.07976161f, -0.29637426f,
+ -0.089748435f, 0.08751818f, -0.24176085f, -0.041299198f,
+ 0.22127008f, -0.91142184f, 0.23664747f, -0.37168682f,
+ 0.2244729f, -0.33971626f, 0.07743506f, 0.4744059f,
+ 0.22304215f, 1.1574953f, 0.10740623f, -0.01647204f,
+ -0.024691809f, 0.029902752f, 0.0004967777f, -0.24056627f,
+ 0.03964065f, 0.3492355f, 0.12237721f, -0.030260043f,
+ -0.009578884f, -0.23527135f, -0.058053013f, 0.0007535268f,
+ 0.38808f, -0.004984167f, 0.035892427f, 0.03263236f,
+ -0.035921767f, -0.029049013f, -0.23575243f, 0.014510196f,
+ -0.03240288f, -1.161839f, -0.45570314f, -0.15499985f,
+ -0.23469459f, -0.32370627f, -0.23670626f, -0.068712294f,
+ 0.009225237f, -0.02270937f, 0.017265193f, -0.14709258f,
+ 0.42192665f, 0.7054413f, -0.0039274464f, -0.031726215f,
+ 0.059486233f, -0.034832355f, -0.01834301f, -0.088121295f,
+ 0.30428f, 0.1672203f, -0.007859113f, -0.008235436f,
+ 0.29746005f, 0.038922336f, 0.13321911f, -0.012839961f,
+ -0.33659527f, -0.033224475f, 0.2455084f, 0.07280211f,
+ -0.44840586f, 0.38163394f, 0.1668213f, 0.107182935f,
+ -0.5690649f, 0.13328189f, -0.090864494f, 0.06257151f,
+ -0.19618018f, 0.7930288f, 0.18541399f, -0.06353087f,
+ -0.8127873f, 0.060817927f, 0.058208685f, 0.06388027f,
+ -0.0063326843f, -0.7794209f, 0.2242176f, -0.03615311f,
+ 0.032769743f, -0.7447917f, 0.2952349f, 0.20845611f,
+ 0.37743908f, 0.057241473f, -0.16473332f, -0.0014906168f,
+ -0.036850706f, 0.027658273f, -0.43748623f, 0.04219507f,
+ -0.09739661f, -0.17390975f, -0.14041021f, 0.1073052f,
+ -0.8608927f, -0.3481562f, -0.5879814f, -0.06009895f,
+ -0.020137617f, -0.040714476f, -0.010179172f, 0.8325032f,
+ 0.080654f, -0.68897545f, -0.043406148f, 0.06135377f,
+ -0.31423855f, -0.05678672f, -0.004611709f, 0.10392977f,
+ -0.29799238f, 0.28376228f, 0.25725293f, 0.013354679f,
+ 0.7524418f, -0.041514717f, 0.07750995f, -0.14534397f,
+ -0.2084966f, -0.023471935f, -0.16369154f, -0.010825834f,
+ -0.16754146f, -0.7818233f, 0.44100496f, -0.20894991f,
+ 0.51912165f, 0.034028653f, 0.14276005f, 0.49181336f,
+ -0.16831997f, -0.63280016f, 0.055227194f, 0.047120724f,
+ 0.05128073f, 0.013323013f, -0.015078525f, 0.18295433f,
+ -0.03059061f, 0.64679056f, 0.24297364f, -0.08067258f,
+ 0.024165541f, -0.2762105f, -0.18287578f, 0.31537032f,
+ -0.43043426f, -0.06245467f, -0.011336931f, 0.17545088f,
+ -0.05947775f, 0.15721373f, 0.40208974f, 0.06968284f,
+ -0.025681067f, -0.1476274f, 0.0012969864f, -0.010128546f,
+ -0.07251881f, 0.017586714f, -0.45845085f, 0.0033184346f,
+ -0.0425675f, -0.023000922f, -0.02691019f, -0.3913428f,
+ 0.026115164f, 0.63840586f, -0.014119582f, 0.5065781f,
+ 0.02331122f, 0.007825207f, -0.028942913f, -0.35412887f,
+ -0.064343564f, -0.09023654f, -0.22507589f, -0.18645145f,
+ -0.23687884f, 0.3444332f, -0.7556541f, 0.20568167f,
+ -0.71224624f, -0.035792105f, 0.89834493f, 0.084351234f,
+ 0.21622443f, 1.1395546f, -0.3405421f, 0.10579692f,
+ -0.36842042f, 0.23300497f, -0.09251233f, 0.017425757f,
+ -0.4776083f, -0.50860006f, -0.00506694f, -0.049970508f,
+ 0.08510162f, -0.012389474f, 0.06479131f, 0.16046247f,
+ 0.022882288f, 0.37430558f, 0.063889116f, -0.07180888f,
+ -0.007117351f, 0.5762777f, 0.28153864f, -0.08458469f,
+ -0.015691886f, -0.19636166f, -0.11380584f, -0.0514433f,
+ 0.05619865f, -0.045396272f, 0.4241318f, 0.0467627f,
+ 0.021351043f, 0.46672842f, -0.0374787f, 0.121876925f,
+ 0.39811295f, 1.0430447f, 0.8271677f, 0.0014852999f,
+ 0.0013601307f, -0.031007672f, -0.06378976f, 0.08823172f,
+ -0.21467008f, -1.0351243f, -0.05469802f, -0.06263135f,
+ -0.18540896f, -0.03866192f, 0.105857424f, 0.11660512f,
+ -0.54437745f, -0.40414053f, 0.49238837f, -0.02880411f,
+ -0.119563304f, -0.06916231f, -0.17999798f, 0.23810087f,
+ 0.43403852f, 0.030938448f, -0.19581047f, -0.06416222f,
+ 0.40060848f, -0.5109783f, -0.40700713f, 0.22357987f,
+ 0.07365835f, -0.13451937f, -0.024111586f, -0.033002455f,
+ 0.36852574f, 0.1857777f, -0.00914144f, 0.01579696f,
+ 0.392604f, -0.02773597f, 0.012704645f, -0.028812287f,
+ 0.016203403f, -0.20124152f, -0.21486133f, 0.02654619f,
+ -0.035865624f, -0.058766283f, -0.107334286f, -0.36448625f,
+ 0.14557078f, -0.008536258f, 0.049338624f, -0.038204994f,
+ 0.011244072f, -0.033780113f, 0.16506694f, -0.020390673f,
+ 0.038392797f, -0.2322821f, 0.087919466f, 0.11318588f,
+ 0.16570993f, -0.3386265f, -0.10503774f, 0.015185814f,
+ 0.021595746f, 0.039245714f, 0.04684769f, 0.12119348f,
+ 0.13098665f, 0.020718308f, 0.018853672f, 0.0046133967f,
+ -0.78144586f, 0.0009466915f, 0.016749192f, -0.08631823f,
+ 0.036451295f, -0.078017354f, -0.24983151f, 0.03899275f,
+ -0.14362872f, 0.11425662f, 0.24315023f, 0.05293064f,
+ 0.19647299f, 0.027661774f, -0.17482337f, -0.029206395f,
+ 0.21463291f, 0.024083214f, 0.008204505f, 0.14180578f,
+ -0.18499517f, -0.07123965f, -0.21684702f, 0.06702407f,
+ 0.052598942f, -0.18686822f, 0.07971645f, 0.007258266f,
+ -0.02677093f, -0.012595187f, -0.019087076f, 0.0924216f,
+ -0.027972767f, -0.17419529f, 0.10676114f, -0.06976905f,
+ 0.010642747f, 0.0036010172f, -0.20801206f, 0.05957105f,
+ -0.009705011f, -0.02004573f, 0.013705871f, 0.03944793f,
+ 0.019542554f, -0.0011640656f, 0.09961661f, -0.030314127f,
+ -0.016598757f, 0.4632623f, -0.007916389f, 0.001611903f,
+ 0.45786276f, 0.05486137f, 0.085380994f, -0.04303254f,
+ -0.026627004f, 0.032902054f, 0.0068959156f, -0.006989213f,
+ 0.024187608f, 0.5480803f, 0.029864637f, 0.019170225f,
+ 0.54142517f, 0.034762193f, 0.0043952335f, 0.12300451f,
+ -0.0009171313f, 0.024975624f, 0.08321905f, -0.06942961f,
+ -0.17452133f, -0.03641074f, -0.34778738f, -0.026574342f,
+ -0.34436762f, -0.025469506f, 0.09237217f, 0.0037632093f,
+ -0.10520878f, 0.10409247f, -0.019641703f, -0.31777638f,
+ 0.34614268f, -0.0059153107f, -0.11017002f, 0.03708411f,
+ 0.0070557958f, 0.21021356f, 0.045497328f, 0.02981299f,
+ 0.055342067f, 0.004147845f, 0.016786193f, 0.0153238755f,
+ 0.003542733f, 0.20812456f, 0.34953317f, 0.03227215f,
+ -0.009476508f, -0.019857109f, 0.0044706324f, -0.055955235f,
+ 0.004776317f, -0.015303418f, -0.012754145f, -0.017409205f,
+ -0.030013422f, 0.013797115f, 0.027180683f, 0.03881722f,
+ -0.020029666f, -0.14721735f, -0.0070128054f, 0.017539624f,
+ 0.12478119f, 0.043880183f, -0.0023068772f, 0.024605729f,
+ 0.021797262f, -0.027921626f, -0.009763723f, 0.0020222133f,
+ 0.027557734f, 0.026287168f, -0.023106497f, -0.0015039981f,
+ -0.051839154f, -0.026985688f, 0.002151105f, 0.03692945f,
+ -0.31593338f, 0.03164542f, 0.089390695f, 0.003362087f,
+ -0.15851644f, -0.031689283f, 0.06296285f, -0.008181843f,
+ -0.11867603f, 0.012413907f, 0.0214014f, -0.018727198f,
+ -0.0426638f, 0.20147838f, -0.1028718f, -0.0036374251f,
+ -0.40647778f, -0.19493577f, 0.3752049f, 0.0807817f,
+ -0.89991605f, 0.040306605f, -0.095143035f, 0.02054182f,
+ -0.83123004f, -0.024969922f, -0.04787539f, -0.051592227f,
+ -0.04328094f, 0.23488046f, -0.16466802f, 0.021117952f,
+ 0.016180646f, -0.08718111f, 0.026560752f, 0.101075314f,
+ -0.08311053f, 0.09408546f, -0.0019121995f, -0.019270953f,
+ 0.005797375f, -0.043516774f, -0.35817727f, -0.112790756f,
+ -0.016242424f, 0.08382269f, 0.03367453f, -0.16484928f,
+ 0.010441323f, -0.13785595f, -0.0409201f, 0.043843802f,
+ -0.025862627f, 0.03240676f, 0.038020674f, -0.0772461f,
+ -0.023793815f, -0.704274f, 0.03587981f, 0.06052224f,
+ -0.5352012f, 0.049891483f, -0.036600545f, 0.13559696f,
+ -0.2484008f, 0.064189464f, 0.0097085945f, 0.007196093f,
+ 0.102674015f, 0.3840656f, 0.094639376f, 0.013822084f,
+ -0.2124524f, 0.034151725f, -0.105098024f, -0.0005228716f,
+ 0.24756269f, 0.1424572f, 0.041731756f, -0.10348538f,
+ 0.4009097f, 0.1995913f, -0.019967727f, -0.102226436f,
+ -0.3299374f, 0.09745966f, -0.005326191f, -0.024075637f,
+ 0.009186021f, 0.021077976f, 0.03551511f, 0.028429003f,
+ 0.029925289f, 0.2333578f, -0.1411267f, 0.059183564f,
+ -0.019922223f, -0.07338914f, -0.032708723f, -0.23205642f,
+ -0.1821223f, -0.03695869f, -0.054379873f, -0.01183018f,
+ -0.024239486f, 0.023656221f, 0.18712884f, 0.08669921f,
+ -0.0013952735f, 0.04663786f, -0.009314115f, 0.05152984f,
+ 0.0011203762f, 0.056692377f, 0.008123729f, 0.021261951f,
+ 0.05039645f, -0.049110055f, -0.03538058f, -0.12498278f,
+ 0.06673356f, 0.25414506f, -0.069535375f, -0.0077127228f,
+ 0.4924165f, -0.08168061f, 0.017388187f, -0.15185893f,
+ -0.07843938f, -0.012254293f, 0.026495202f, 0.034279007f,
+ -0.24157973f, -0.006723147f, -0.047224104f, -0.0017746777f,
+ 0.26144376f, 0.021473698f, 0.025175797f, 0.013687166f,
+ -0.14409575f, 0.34995544f, -0.23362161f, 0.38284454f,
+ -0.045443755f, 0.077751145f, -0.15340765f, 0.08372792f,
+ 0.17760195f, -0.17624249f, -0.0413419f, -0.014397848f,
+ -0.3317352f, -0.014015485f, -0.01156194f, 0.042882193f,
+ -0.005091595f, -0.2840449f, 0.11648029f, -0.07208617f,
+ 0.010208536f, 0.032412097f, 0.08766446f, -0.0053608194f,
+ -0.07376641f, -0.046934202f, 0.0057727383f, 0.019748792f,
+ 0.046597198f, 0.0034460435f, 0.024970181f, -0.023231411f,
+ 0.03546244f, -0.079934224f, 0.015596419f, -0.05053669f,
+ 0.08569229f, 0.05055774f, 0.029161759f, -0.031442184f,
+ -0.031035999f, 0.02684163f, -0.00031124122f, 0.015303563f,
+ 0.0031851882f, -0.24963251f, 0.029159553f, -0.03669849f,
+ -0.038112562f, 0.036869984f, 0.0111821275f, 0.024697429f,
+ -0.28817937f, -0.00079438224f, -0.0013917756f, -0.02810756f,
+ 0.32126507f, -0.086026415f, 0.09272252f, -0.018879123f,
+ 0.17123716f, -0.015221068f, -0.021860672f, 0.020673323f,
+ 0.054739896f, -0.0019808845f, 0.2006404f, -0.0354101f,
+ -0.14840211f, 0.13524641f, -0.029820744f, 0.15596575f,
+ 0.027866907f, -0.3931937f, 0.009307324f, -0.041856192f,
+ 0.4195334f, 0.030039292f, 0.020635704f, 0.0041578845f,
+ -0.0047783013f, -0.09068384f, -0.046916872f, -0.0052404087f,
+ 0.011654076f, -0.023494227f, -0.18440649f, -0.14656721f,
+ 0.0954962f, -0.07110997f, 0.024872648f, 0.01761914f,
+ -0.007899783f, 0.06400377f, -0.031171096f, 0.041772433f,
+ 0.0059915064f, 0.0729879f, 0.0017729359f, 0.08190929f,
+ -0.09871103f, -0.38448036f, -0.011405057f, -0.07843767f,
+ -0.007015773f, -0.032265883f, -0.050212573f, -0.045467086f,
+ 0.0421407f, 0.35119316f, -0.0101177525f, -0.007317614f,
+ -0.18281259f, -0.040150918f, 0.011767739f, -0.04453397f,
+ 0.13973962f, 0.006653113f, -0.0814154f, -0.07221126f,
+ -0.05463804f, 0.23193192f, -0.006844186f, -0.025843276f,
+ 0.17486395f, -0.025700431f, -0.10179771f, 0.010653787f,
+ 0.060017563f, -0.16209632f, 0.11449042f, -0.010502559f,
+ -0.13768238f, 0.0776874f, 0.12851636f, -0.3487838f,
+ -0.095491566f, 0.5061131f, 0.004699245f, 0.0395197f,
+ 0.48971573f, 0.029810946f, 0.003771613f, 0.03669924f,
+ -0.005258139f, -0.13504106f, 0.055656716f, -0.06813669f,
+ 0.02257357f, 0.025331886f, 0.053514797f, -0.10512417f,
+ 0.033107907f, 0.053273875f, -0.014258646f, 0.019819744f,
+ -0.010751032f, -0.05169088f, -0.039202876f, -0.024584014f,
+ -0.014301216f, 0.013771403f, 0.027258331f, -0.080075994f,
+ 0.021337554f, 0.28745618f, -0.040376086f, -0.0049371775f,
+ -0.0077190027f, -0.010111727f, -0.016531333f, 0.051101536f,
+ 0.06127352f, 0.1385393f, 0.03917571f, 0.0155003425f,
+ 0.6983078f, 0.05653165f, -0.028055506f, 0.023805311f,
+ -0.044585016f, 0.025098668f, -0.0054986244f, 0.010548027f,
+ 0.26768875f, -0.018874228f, 0.009944058f, 0.020396857f,
+ -0.08920602f, -0.041310262f, -0.09972779f, -0.028257033f,
+ 0.10058009f, 0.11810426f, 0.105025135f, -0.08980336f,
+ -0.017743519f, -0.026065068f, 0.08467908f, 0.15755005f,
+ 0.032308314f, -0.38266826f, -0.0052567553f, -0.018541567f,
+ -0.31884855f, -0.0033855608f, 0.015173292f, 0.03492227f,
+ -0.0052438616f, 0.13969687f, 0.14442259f, 0.081195496f,
+ -0.005535243f, 0.022085f, 0.1016608f, -0.018690964f,
+ 0.11192402f, 0.021725414f, -0.02576954f, 0.0027053654f,
+ -0.0090895435f, 0.016813898f, -0.028822886f, 0.031301152f,
+ -0.025792776f, -0.3441749f, -0.017700277f, 0.0683383f,
+ 0.02897161f, 0.07979331f, 0.027515693f, 0.021872973f,
+ -0.0015342848f, -0.013467164f, -0.004095432f, 0.023451626f,
+ -0.03141499f, -0.0070645884f, -0.040035065f, -0.0121210655f,
+ -0.25759777f, -0.035949964f, 0.0055408482f, -0.025981521f,
+ 0.15752834f, 0.022893222f, -0.009513555f, 0.03193345f,
+ -0.16268303f, -0.015065128f, 0.002990979f, -0.006749999f,
+ -0.06762066f, 0.016756933f, -0.063944265f, 0.0035096898f,
+ 0.012832619f, -0.12583801f, -0.10361163f, 0.016847063f,
+ -0.30356416f, -0.08753216f, 0.013587182f, -0.04853945f,
+ 0.09258596f, -0.595734f, 0.07621007f, 0.028226474f,
+ 0.11653453f, 0.014305161f, -0.03572098f, -0.020092476f,
+ -5.028066e-05f, 0.39858902f, -0.101363264f, -0.006985386f,
+ 0.018423608f, 0.113841124f, 0.23526287f, -0.04591773f,
+ 0.048335053f, 0.12016577f, 0.11604561f, -0.012941354f,
+ 0.0064596073f, 0.06305918f, -0.0031923028f, -0.011079159f,
+ -0.031388175f, -0.025233401f, 0.015479208f, 0.07140223f,
+ 0.12967551f, 0.016608208f, -0.05260178f, 0.02348822f,
+ -0.023521082f, -0.016804343f, 0.055261917f, 0.01559136f,
+ 0.07412834f, -0.18553576f, 0.0133041935f, 0.023041157f,
+ 0.25482047f, 0.011561217f, -0.08013211f, 0.058282018f,
+ -0.33348078f, -0.011478001f, 0.010176911f, -0.008009487f,
+ -0.17555265f, -0.13062656f, 0.07229836f, 0.018498091f,
+ 0.055944096f, -0.023085449f, 0.069280915f, 0.0004632052f,
+ 0.011609425f, 0.116409354f, 0.14598279f, -0.08717847f,
+ 0.2751391f, -0.019980943f, 0.076687515f, 0.12250851f,
+ 0.105521575f, 0.26964226f, 0.014826623f, 0.0038848792f,
+ 0.20300612f, -0.01974394f, 0.013104314f, 0.03640481f,
+ -0.011060565f, -0.15902965f, -0.051977277f, -0.014402303f,
+ 0.0014942972f, -0.029108938f, 0.03186458f, -0.07104802f,
+ 0.1794606f, -0.12412582f, -0.11993244f, 0.013557721f,
+ -0.027637169f, -0.056353565f, 0.008563983f, -0.0024211006f,
+ 0.0042245016f, 0.056154344f, 0.026768204f, -0.13855343f,
+ 0.6578533f, 0.28550568f, 0.015871359f, -0.063021004f,
+ -0.012010005f, 0.04769184f, -0.0069994857f, 0.0721509f,
+ 0.06695942f, 0.46206865f, 0.009513348f, -0.009014894f,
+ 0.4243439f, -0.027549015f, 0.067517266f, -0.105322264f,
+ -0.2496721f, -0.017098192f, 0.17967276f, 0.069669254f,
+ 0.027678309f, -0.037128963f, -0.21654868f, -0.01894588f,
+ 0.29343575f, 0.045763467f, -0.04359595f, -0.032181073f,
+ -0.09843235f, 0.005754713f, 0.03123999f, 0.05415099f,
+ -0.3624584f, 0.034359362f, 0.13360563f, -0.12254925f,
+ 0.05571077f, 0.2954961f, -0.058760747f, -0.028686538f,
+ 0.2842881f, 0.034194775f, 0.028363697f, 0.016320467f,
+ 0.011457651f, 0.3160511f, -0.0070568845f, -0.10483816f,
+ 0.018886091f, -0.008249834f, -0.23930171f, 0.08655187f,
+ -0.36937752f, 0.04078214f, -0.10617822f, 0.019064857f,
+ -0.021203682f, 0.023821276f, -0.020560093f, 0.04778811f,
+ -0.013517978f, 0.10169968f, 0.04066341f, -0.087617196f,
+ 0.09730186f, -0.0081164045f, -0.0050847214f, -0.003399725f,
+ -0.003615481f, -0.034521457f, -0.036007885f, 0.0045111016f,
+ -0.04123943f, 0.2727132f, -0.027769974f, -0.011584593f,
+ -0.34363896f, 0.0012007324f, -0.023922365f, -0.08876652f,
+ -0.2320869f, -0.07147619f, -0.08929906f, -0.01552145f,
+ 0.12413311f, 0.017039146f, -0.15962934f, -0.03659493f,
+ -0.24719009f, -0.04124639f, 0.06434402f, 0.07011196f,
+ -0.005159923f, -0.05547862f, 0.20533228f, 0.099618636f,
+ -0.022242675f, -0.05411723f, 0.16292173f, -0.18126139f,
+ -0.64612865f, 0.37352502f, 0.014249969f, -0.00805684f,
+ -0.03794947f, -0.04549369f, -0.007842923f, -0.0026688413f,
+ -0.004089527f, -0.25928187f, -0.46536663f, 0.044254128f,
+ -0.048747506f, -0.12100154f, 0.03916575f, 0.067457505f,
+ 0.14707415f, -0.11804048f, -0.12616503f, -0.020250162f,
+ 0.023454564f, -0.095441766f, -0.05238088f, -0.0731991f,
+ 0.022247234f, 0.0058394084f, -0.016508393f, 0.019025408f,
+ -0.14768739f, -0.23789543f, 0.16275641f, -0.034816783f,
+ -0.0027867637f, 0.05477125f, -0.0012464748f, -0.023041869f,
+ -0.27114633f, 0.09058911f, -0.010423337f, -0.0063181813f,
+ -0.85314894f, 0.018130133f, 0.07139832f, -0.09873822f,
+ -0.54078627f, -0.025560029f, -0.044354845f, 0.0461378f,
+ 0.0011850167f, 0.17343207f, 0.13114093f, -0.06611923f,
+ -0.02514242f, 0.062003285f, -0.09506236f, -0.0012148271f,
+ 0.17022438f, 0.04749238f, -0.1834854f, 0.0021111346f,
+ 0.272188f, 0.2445931f, -0.11142204f, -0.13138093f,
+ -0.75776154f, 0.090043284f, -0.029486887f, 0.03013433f,
+ -0.35654384f, 0.043769997f, -0.02869192f, 0.05795309f,
+ 0.046786115f, 0.008934759f, -0.01887807f, 0.0060589667f,
+ -0.008114739f, -0.13578036f, 0.07617361f, 0.46362865f,
+ -0.53107387f, 0.26993725f, 0.16893399f, 0.09077569f,
+ -0.09036259f, -0.044298053f, 0.07000591f, 0.0508268f,
+ 0.03454967f, 0.109655276f, -0.105818965f, -0.12510741f,
+ 0.36164555f, -0.19409722f, -0.07524897f, 0.06711271f,
+ 0.0709107f, -0.052518334f, 0.030238898f, -0.1931829f,
+ -0.20503463f, 0.02347714f, 0.010425894f, 0.038153846f,
+ 0.36493194f, 0.017584099f, -0.0506026f, 0.29149145f,
+ -0.10596705f, 0.17835453f, -0.020478437f, -0.051014584f,
+ 0.13846184f, -0.26947403f, -0.19500656f, -0.017489137f,
+ -0.2949346f, -0.07587699f, 0.23618093f, 0.04182354f,
+ -0.4050102f, -0.52661484f, -0.2308211f, -0.3059586f,
+ 0.24937741f, -0.06127778f, 0.33258122f, 0.07749381f,
+ 0.02627258f, 0.09476639f, -0.0037316438f, -0.032562505f,
+ -0.048568618f, -0.023910917f, -0.035978306f, 0.032151364f,
+ -0.013153706f, 0.088596076f, 0.12444852f, 0.09094766f,
+ -0.010383882f, 0.078128465f, 0.35670263f, 0.100836985f,
+ 0.35349497f, -0.08701474f, -0.052346155f, -0.045925252f,
+ 0.033292755f, 0.018800126f, -0.20984133f, 0.060858272f,
+ -0.031119697f, -0.21258071f, -0.060939927f, 0.04894128f,
+ -0.04324744f, -0.05154224f, -0.20838645f, 0.011621934f,
+ -0.015864855f, -0.0037287045f, -0.045410223f, 0.0032781886f,
+ 0.025742257f, 0.018253684f, -0.01997052f, 0.017051527f,
+ 0.16060224f, -0.06462539f, 0.010504479f, -0.077153556f,
+ -0.38457802f, -0.00050445675f, 0.00822544f, 0.15020335f,
+ 0.17394003f, 0.13057764f, -0.116647564f, 0.10151067f,
+ 0.497525f, 0.049087044f, -0.12913972f, -0.04222156f,
+ 0.22111478f, -0.24238032f, 0.2632637f, 0.2995954f,
+ 0.25682637f, -0.02575642f, 0.04736736f, -0.07932246f,
+ -0.30815133f, -0.11608425f, 0.047240376f, 0.03908266f,
+ -0.3646165f, 0.034582447f, 0.06470896f, -0.043189704f,
+ 0.0055312463f, -0.051425345f, 0.044540774f, -0.119404346f,
+ 0.04107931f, 0.22014666f, -0.14142561f, -0.26668242f,
+ -0.35146827f, -0.07677405f, -0.049039807f, 0.08650813f,
+ -0.008261981f, 0.09837729f, -0.030273343f, 0.103633404f,
+ -0.023113215f, -0.2162023f, 0.024318997f, 0.081028104f,
+ 0.08865292f, -0.07532978f, -0.0545915f, 0.028159745f,
+ 0.06883205f, -0.027615083f, -0.037130035f, -0.08683418f,
+ 0.1637969f, 0.93737805f, -0.027899763f, -0.047430463f,
+ 0.25806937f, -0.026074504f, -0.038574032f, -0.11791512f,
+ -0.025677256f, 0.0006895005f, 0.14205346f, -0.10320031f,
+ -0.0007170265f, 0.2627601f, 0.033411782f, 0.05582086f,
+ -0.12341749f, -0.044926137f, 0.15310004f, 0.09496527f,
+ 0.029041795f, 0.13133906f, -0.18162057f, 0.09876338f,
+ -0.19665037f, -0.0036508269f, -0.11784524f, 0.13387276f,
+ -0.914087f, 0.10857751f, -0.07577188f, -0.14254159f,
+ -0.10765499f, -0.032557987f, 0.00906234f, -0.049553804f,
+ -0.010589195f, -0.09447344f, -0.019747304f, 0.06705909f,
+ 0.004527592f, 0.21338157f, -0.14008054f, -0.2245878f,
+ 0.41321698f, -0.09260768f, 0.06514647f, -0.10633421f,
+ 0.09903094f, 0.030779937f, 0.18182102f, -0.06943939f,
+ 0.0053518736f, -0.24508157f, -0.06874588f, 0.15206f,
+ 0.58584446f, 0.11387102f, 0.2780542f, -0.011037695f,
+ -0.0837833f, -3.9212746e-06f, -0.015619999f, 0.10774793f,
+ -0.33020297f, -1.0971227f, -0.010384727f, -0.031747162f,
+ 0.07639645f, 0.024388716f, 0.06630788f, -0.109696105f,
+ 0.174175f, -0.06794803f, 0.38085237f, -0.03859811f,
+ 0.16059998f, -0.33999088f, -0.05029746f, -0.04073743f,
+ 0.4222312f, 0.027492793f, 0.08537221f, -0.062446814f,
+ -0.22645412f, 0.05644324f, 0.06631799f, 0.08546292f,
+ -0.45039618f, -0.10834065f, -0.41716492f, -0.009549151f,
+ 0.13853107f, -0.25366473f, -0.035752945f, 0.095722385f,
+ 0.3454757f, -0.0024262394f, -0.024842797f, -0.058163628f,
+ 0.003748294f, -0.20092212f, -0.1636033f, 0.04170323f,
+ -0.012188888f, 0.024498971f, -0.22068584f, 0.08202344f,
+ -0.10583735f, 0.093302906f, 0.13873139f, -0.06824633f,
+ -0.026937071f, -0.029902417f, -0.006228726f, -0.09269274f,
+ 0.033455838f, -0.111818865f, 0.101494685f, -0.0943401f,
+ -0.04984743f, -0.19620828f, 0.06361557f, 0.008574682f,
+ 0.0064347633f, 0.024299923f, 0.08337907f, 0.10065298f,
+ 0.020795407f, -0.35476524f, 0.051008116f, 0.03787163f,
+ -0.28726056f, 0.041256476f, -0.013203858f, 0.19011863f,
+ -0.014345373f, -0.11963287f, 0.060224358f, 0.001624695f,
+ 0.027478257f, 0.17466614f, -0.113667026f, -0.0711722f,
+ -0.47591582f, -0.008747455f, 0.13125208f, -0.04413978f,
+ -0.03169427f, 0.37471533f, -0.12064751f, -0.2754032f,
+ 0.16328976f, 0.087605156f, 0.11883878f, -0.2686852f,
+ 0.14912747f, 0.9129003f, 0.24462488f, -0.019842597f,
+ -0.3038397f, 0.059876975f, -0.014393491f, 0.3249037f,
+ 0.03216904f, -0.05964532f, 0.36229244f, 0.030768696f,
+ 0.026031945f, -0.15866566f, -0.31903645f, -0.69639254f,
+ -0.7310048f, 0.15564294f, -0.13840768f, 0.23754539f,
+ -0.098436296f, 0.055268507f, 0.0055405037f, 0.05974476f,
+ -0.041789416f, 0.73346573f, 0.13617736f, 0.12714507f,
+ -0.884539f, 1.0091012f, 0.3021098f, -0.0323887f,
+ -0.009044974f, -0.011013575f, 0.025212489f, 0.25568038f,
+ -0.01995673f, -0.2970408f, -0.031074863f, 0.091080666f,
+ -0.36696315f, -0.048830986f, -0.14328952f, -0.008649576f,
+ 0.21956812f, -0.21225096f, -0.20690781f, 0.09359085f,
+ -0.106459245f, 1.0114702f, -0.04040631f, -0.37932363f,
+ 0.3244153f, -0.06164259f, 1.2034312f, 0.113387905f,
+ -0.79045904f, 0.025537603f, -0.57895124f, -0.25736755f,
+ 0.33763042f, 0.13629328f, 0.3228019f, -0.2460714f,
+ -0.34749082f, -0.21221468f, 0.013229358f, 0.007849904f,
+ -0.09439048f, -0.10041404f, -0.014329191f, 0.342001f,
+ -0.07612257f, 0.4310619f, 0.004858797f, -0.3741592f,
+ 0.01888924f, -0.29911962f, 0.52158684f, 0.3568788f,
+ -0.28992397f, -0.30242366f, 0.028908376f, -0.0120418025f,
+ 0.21593833f, 0.007795788f, -0.13440005f, -0.056530222f,
+ 0.07584264f, -0.7728734f, 0.011301854f, -0.0566521f,
+ 0.5026326f, 0.8227943f, 0.5819271f, 0.018348988f,
+ -0.03106895f, 0.024701858f, -0.06298925f, -0.4247193f,
+ -0.62038875f, -0.03146938f, 0.072699495f, 0.5364508f,
+ 0.024669126f, 0.072877705f, 0.062296472f, -0.08051034f,
+ 0.048950087f, 0.30924484f, 0.17977136f, -0.23923962f,
+ 1.4299453f, 0.5247971f, -0.72291213f, 0.2517312f,
+ -0.7197519f, 0.034028362f, -0.7099122f, 0.034040168f,
+ 0.34438238f, -0.23541018f, -0.49269953f, 0.13248616f,
+ 1.0236604f, -0.078801826f, -0.16693637f, 0.17717649f,
+ -0.23573923f, -0.21141201f, -0.120655395f, 0.06266774f,
+ -0.8473835f, 0.009083969f, -0.026895434f, 0.22872835f,
+ 0.04944834f, 0.534406f, -0.99497485f, 0.32725906f,
+ -0.06416801f, -0.06948683f, 0.37052348f, 0.49556625f,
+ 0.46178114f, 0.08309768f, 0.094399646f, -0.14811659f,
+ -0.10934902f, -0.061819624f, 0.037856314f, -0.041314326f,
+ -0.022453394f, 0.026153205f, -0.3031349f, 0.073152505f,
+ 0.4636013f, -0.19611353f, 0.55364454f, -0.022579925f,
+ 0.013198554f, 0.04925085f, 0.08781529f, -0.30285686f,
+ 0.36973464f, 0.2965862f, -0.003569614f, 0.060436606f,
+ -1.1341517f, -0.000532439f, 0.04793594f, 0.07216132f,
+ -0.23346506f, 0.52479935f, 0.1464531f, 0.13617949f,
+ 2.0384896f, -0.105255336f, -0.59004164f, -0.30562738f,
+ 0.7177213f, 0.034921072f, 0.3205338f, -0.12601468f,
+ 1.1533227f, -0.3880056f, 0.043148294f, 0.42079985f,
+ -0.17193703f, 0.22619446f, 0.049354423f, -0.77775913f,
+ 0.20467025f, 0.0601003f, -0.1433114f, 0.062041957f,
+ -0.07125585f, -0.025515977f, 0.055646036f, -0.16891506f,
+ 0.0066119856f, 0.18186113f, -0.28908655f, -0.07448616f,
+ -0.06099478f, -0.18463112f, 0.7408452f, 0.10451712f,
+ 0.59713185f, 0.011808154f, 0.19948347f, -0.1942559f,
+ 0.024249254f, -0.22222823f, -0.27743322f, -0.10082206f,
+ 0.1134088f, 0.10513429f, -0.00879327f, -0.18762848f,
+ 1.1399536f, -0.11029924f, -0.568332f, 0.07769343f,
+ 0.07679477f, -0.02207139f, 0.05998676f, -0.05264789f,
+ 0.61781216f, -0.69434506f, 0.023449317f, -1.0300057f,
+ -0.19697936f, -0.03363423f, 0.16260675f, 0.05975394f,
+ 0.45895565f, 0.28685907f, 0.76590514f, -0.02224205f,
+ 0.67116505f, -1.3962969f, -0.040076744f, -0.096626125f,
+ 0.06635505f, 0.09036792f, -0.45535806f, -0.080383174f,
+ 1.6122707f, -0.94417936f, 0.74903625f, 0.11030377f,
+ -0.4834179f, -0.53682107f, -0.6783411f, 0.33747366f,
+ 0.015411983f, 0.06155854f, 0.31879917f, -0.014756324f,
+ 0.4072679f, 0.14422415f, 0.02257583f, -0.9620533f,
+ 0.07302215f, 0.26378122f, -0.16962239f, 0.2761f,
+ 0.07420674f, -0.43746975f, -0.8725474f, 0.11385393f,
+ -0.7421569f, 0.039172374f, -0.24595444f, 0.25772554f,
+ -0.244946f, 0.24299788f, -0.3633344f, 0.29905078f,
+ -0.18191627f, 0.37074617f, 0.035404265f, 0.24358176f,
+ 0.27218568f, -0.632723f, -0.5817618f, -0.14074694f,
+ -0.004385921f, -0.06191797f, -0.106322676f, 0.86034644f,
+ -0.52116895f, -0.26144f, -0.13420281f, -0.6360968f,
+ 0.60241f, -0.1591222f, -0.09922482f, -0.25876456f,
+ 0.14535125f, -0.4541276f, 0.025239097f, 0.1718671f,
+ -0.53208625f, -0.5524315f, -0.039276343f, -0.30534968f,
+ 0.34853458f, -0.12443412f, -0.5872484f, 0.10676215f,
+ -0.34417072f, 1.1670928f, 1.0736312f, 0.07680264f,
+ 0.4156342f, 0.17537427f, -0.7665346f, -0.29354298f,
+ -0.0050023734f, -0.04258378f, -0.2387618f, -0.08467183f,
+ 0.42268723f, -0.08767258f, -0.047283344f, 0.23669867f,
+ -0.06780925f, -0.54969394f, -0.7190987f, -0.23302172f,
+ -0.014354179f, 0.30621633f, -0.3051999f, 0.2628563f,
+ 0.31594953f, 0.058032714f, 0.009820679f, -0.08672767f,
+ 0.17611031f, -0.04803902f, 1.2603974f, -0.13245155f,
+ 0.06519573f, 1.0150018f, -0.09415721f, -0.2405925f,
+ -0.20232332f, -1.3403261f, 0.10783294f, 0.10768811f,
+ -0.025393436f, 0.023185762f, 0.007885881f, 0.49237794f,
+ -1.0976028f, 0.13209686f, 0.07731457f, -0.16247457f,
+ 0.70454973f, 0.15993425f, -0.038257573f, 0.17631641f,
+ 0.074659236f, -0.11468215f, -0.19480796f, -0.10802724f,
+ -0.88421184f, 0.021586034f, 0.26105604f, -0.35078818f,
+ -0.73685634f, 0.023243247f, 0.31929913f, -0.033363067f,
+ -0.8641895f, 1.2458714f, 0.464125f, -0.490875f,
+ -0.40288174f, -0.39072502f, 0.8177878f, -0.08288707f,
+ 0.39277485f, -0.8122168f, 0.047632433f, -0.043179218f,
+ 0.6118364f, -0.03998651f, -0.03691527f, 0.04290488f,
+ -0.020977058f, -0.46612176f, 0.25268257f, -0.0069690985f,
+ 0.032162305f, -0.14446986f, -0.64998484f, 0.10407514f,
+ -0.022644442f, -0.18548883f, -0.076555066f, -0.052315116f,
+ 0.040487017f, 0.12418838f, -0.06581944f, 0.043230563f,
+ -0.053519256f, 0.26218545f, 0.10332675f, 0.28627408f,
+ -0.7922847f, -0.27413923f, 0.8562489f, -0.09338601f,
+ -0.07025838f, 0.062687986f, -0.021091377f, 0.38839665f,
+ -0.5097297f, 0.13570262f, -0.013551081f, 0.2850198f,
+ 0.43225703f, 0.059338875f, 0.014675641f, -0.292565f,
+ 0.08382532f, -0.5498127f, -0.011722153f, -0.033808995f,
+ -1.1456052f, -0.059543375f, -0.041206688f, -0.043054666f,
+ -0.2792654f, -0.034356803f, -0.30407497f, 0.039788257f,
+ -0.6693136f, -0.19416061f, 0.08250881f, 0.045018207f,
+ 0.09005202f, 0.13708596f, -0.7345606f, 0.032880202f,
+ 0.002773967f, 0.6933291f, -0.15152267f, 0.04124958f,
+ 0.2909599f, -0.0418392f, 0.044414714f, 0.3499032f,
+ -0.013567902f, -0.30224213f, 0.36684716f, -0.19976237f,
+ -0.08472514f, -0.49547845f, 0.5967588f, -0.3181031f,
+ 0.1909068f, 0.1631685f, 0.20300804f, -0.07398592f,
+ 0.08431161f, -0.31984255f, 0.30535796f, -0.2113431f,
+ 0.13565339f, 0.18804315f, -0.08895703f, -0.38672397f,
+ 0.3049398f, -0.36714885f, -0.5210866f, 0.13866353f,
+ 0.04745384f, 0.0021649874f, 0.10712952f, -0.26438662f,
+ 0.86476547f, -0.059409518f, 0.12085741f, 0.44303414f,
+ -0.031061662f, 0.0629151f, 0.07278105f, 0.3673688f,
+ 0.64466274f, -0.12810412f, -0.21832849f, -0.11059053f,
+ -0.9482539f, 0.4439253f, -0.22168507f, 0.40618593f,
+ -0.14485061f, 0.08350181f, 0.4896635f, -0.10057077f,
+ 0.11504429f, 0.120011166f, -0.36035705f, -0.4229199f,
+ -0.7256207f, 0.08285671f, 1.5316836f, 0.034197293f,
+ -0.14230463f, -0.341547f, 0.07439968f, -0.006914271f,
+ -0.45269355f, 0.08833469f, 0.011056307f, 0.024695158f,
+ 0.020084012f, 0.099096335f, 0.25358173f, 0.21398556f,
+ 0.07607506f, 0.97280204f, 0.013915502f, 0.28505942f,
+ -0.24482507f, -0.020727087f, -0.059841555f, 0.04802167f,
+ -0.10898688f, 0.21097082f, -0.38212472f, 0.15113872f,
+ -0.09283699f, -0.6528816f, -0.34464082f, 0.13450538f,
+ -0.2791918f, 1.1069067f, -0.5347909f, -0.066618524f,
+ 0.0010082513f, -0.07331504f, -0.094182f, -0.87208575f,
+ -0.37903002f, 0.97297215f, -0.109094866f, -0.046955086f,
+ -0.3483534f, -0.10977503f, -0.074627f, -0.06880349f,
+ 0.16807042f, -0.030140534f, 0.16189478f, 0.12817997f,
+ -0.7117143f, 0.009910748f, -0.05670285f, -0.04272981f,
+ 0.4868581f, -0.055356238f, 0.1437974f, 0.044802204f,
+ -0.2281682f, -1.0407685f, -1.10449f, 0.38705474f,
+ 0.55700284f, 0.054319266f, 0.17546584f, 0.09377478f,
+ 0.0691031f, 0.23006532f, -0.07407986f, 0.05488546f,
+ -0.40993392f, -0.08562034f, 0.025067156f, 0.085569486f,
+ -0.028683476f, 0.6317628f, -0.0062414776f, -0.10891703f,
+ -0.009419099f, -0.0017895151f, 0.15834562f, 0.008589931f,
+ 0.2575441f, -0.21115077f, 0.05117742f, -0.06665339f,
+ 0.14363325f, -0.03470979f, 0.038883667f, -0.09196877f,
+ 0.03184261f, 0.05478398f, -0.17630069f, -0.2573496f,
+ 0.12929407f, 0.7328931f, -0.14096919f, 0.06852452f,
+ 0.009680866f, 0.065612614f, 0.006132216f, 0.11632337f,
+ 0.10733758f, 0.6908586f, 0.009121123f, -0.104479045f,
+ -0.11740521f, -0.007743931f, 0.09066011f, -0.14430511f,
+ -0.34796375f, 0.21608111f, 0.09643164f, -0.097871475f,
+ 0.24798791f, 0.4424827f, -0.18372996f, 0.11532624f,
+ -0.14374557f, 0.10727805f, 0.095323585f, -0.037243757f,
+ 0.43360215f, 0.1262697f, -0.3113404f, 0.6261793f,
+ -0.55364215f, -0.055913005f, 0.13228677f, -0.21232735f,
+ -0.031071663f, 0.26775345f, -0.123087905f, -0.073548496f,
+ -0.04535448f, 0.05668471f, -0.039474994f, -0.015760496f,
+ 0.036642678f, -0.37976912f, 0.014344721f, 0.2764061f,
+ 0.003396505f, 0.091873795f, 0.027854813f, -0.021595705f,
+ -0.31558773f, 0.20808417f, -0.0008966157f, -0.046638113f,
+ -0.080795385f, 0.018209431f, -0.0038698066f, 0.0015695245f,
+ -0.037309095f, 0.27691674f, -0.24805611f, 0.01720194f,
+ -0.11822874f, 0.19693965f, -0.09978049f, -0.057651673f,
+ -0.013316525f, -0.025991902f, 0.023111572f, -0.059525117f,
+ -0.0031035386f, 0.44304305f, 0.015462055f, 0.09192947f,
+ 0.2348244f, 0.0653976f, -0.1023137f, -0.04301245f,
+ 0.25854537f, 0.32081884f, -0.050223034f, 0.081210405f,
+ 0.7892681f, -0.031089436f, 0.14434892f, -0.47456914f,
+ -0.12067732f, -0.1015324f, -0.004418794f, -0.009250439f,
+ -0.826756f, -0.76427954f, -0.0229488f, 0.09885697f,
+ -0.119204186f, -0.0637855f, 0.07313211f, 0.08560364f,
+ 0.2364243f, -0.24740186f, 0.15448801f, 0.06837843f,
+ 0.21489446f, 0.002055058f, 0.033073653f, -0.0029347318f,
+ -4.752986e-06f, 0.013927263f, 0.30982777f, -0.15801759f,
+ -0.02159852f, -0.008609173f, -0.79410297f, 0.30346203f,
+ 0.02432355f, -0.010910378f, -0.01586077f, 0.068648435f,
+ -0.05253993f, -0.059201702f, 0.01676645f, 0.021701114f,
+ 0.033603426f, -0.022794653f, -0.10687186f, 0.19401155f,
+ -0.68274987f, 0.11003813f, -0.11972349f, 0.0011492603f,
+ 0.022162398f, -0.011306055f, -0.0033036473f, 0.07259998f,
+ -0.05023286f, 0.2585532f, -0.02207043f, -0.024503613f,
+ -0.7715357f, -0.06987834f, 0.055681698f, 0.04510221f,
+ 0.28608975f, 0.08713987f, -0.16077831f, 0.006710155f,
+ 0.099058144f, -0.05270074f, 0.2631609f, -0.43805116f,
+ 0.41567963f, 0.036079973f, -0.2217559f, 0.026003951f,
+ -0.35580215f, 0.07116521f, -0.048763413f, -0.6043493f,
+ -0.17015582f, 0.18611456f, 0.17093529f, -0.111157656f,
+ 0.026508765f, 0.05328622f, 0.15068167f, 0.13175355f,
+ 0.026217207f, -0.021003423f, -0.045217324f, 0.023561416f,
+ -0.008302405f, -0.7257205f, -0.8346668f, 0.0052150004f,
+ -0.011936211f, -0.10524216f, 0.24904121f, -0.82284194f,
+ -0.5026786f, -0.04353961f, -0.06409287f, 0.15775245f,
+ -0.025749074f, 0.10089261f, 0.3199348f, 0.06713799f,
+ -0.023585148f, -0.19025435f, 0.062173232f, 0.1630595f,
+ -1.4069483f, -1.2519909f, 0.1506844f, 0.028279502f,
+ -0.020037215f, 0.05021318f, 0.031467505f, 0.13518126f,
+ -0.7949625f, -0.578399f, -0.029812563f, 0.020708252f,
+ 0.24983078f, -0.023186797f, -0.073338956f, 0.12228809f,
+ 1.0474988f, 0.026697708f, -0.16211182f, -0.02286698f,
+ -0.530206f, -0.15098804f, 0.4347541f, 0.12767296f,
+ -0.11545867f, 0.012850747f, -0.34616202f, 0.053013895f,
+ -0.6702074f, -0.5078009f, 0.3810539f, -0.71273243f,
+ 0.03393023f, 0.029582042f, -0.14617716f, -0.3602231f,
+ 0.36268297f, -0.10584018f, -0.14022973f, -0.14725831f,
+ 0.10291631f, -0.06593041f, 0.012531861f, 0.012344546f,
+ -0.049154114f, 0.24117942f, 0.0719334f, -0.17350358f,
+ 0.003915242f, -0.24474317f, 0.6478302f, -1.5262464f,
+ -0.12902346f, 0.029557541f, 0.1277067f, -0.09773165f,
+ 0.14675668f, -0.12938756f, -0.01681068f, -0.14215997f,
+ 0.064542994f, -0.5424284f, 0.16382688f, -0.079306f,
+ -1.0596013f, -0.6169577f, -0.70194364f, -0.006419877f,
+ -0.033150125f, 0.027010096f, 0.038551915f, -0.10990917f,
+ -0.2600481f, 0.5864274f, 0.07178996f, 0.089369096f,
+ 0.1686587f, 0.1164526f, 0.022910211f, -0.04381541f,
+ 0.7413507f, -0.22947909f, 0.001177176f, -0.070519485f,
+ -0.49329266f, 0.04367826f, -0.5298884f, 1.0154194f,
+ 0.08257006f, -0.014412054f, -0.33587262f, -0.036987413f,
+ 1.0232702f, 0.7374638f, -0.37531385f, 0.078159094f,
+ -0.42453313f, 0.13754259f, 0.3738883f, 0.20979722f,
+ 0.16062103f, 0.15277098f, -0.15460703f, -0.008163742f,
+ -0.6952092f, 0.061190665f, 0.014100509f, 0.14679798f,
+ 0.06300186f, -0.24652582f, 0.43501368f, 0.16905977f,
+ -0.0028131967f, 0.25045046f, 1.8537064f, -0.38158232f,
+ 0.2907746f, 0.037067577f, 0.023703957f, -0.17834178f,
+ -0.110688865f, 0.041320577f, -0.1739947f, 0.097147964f,
+ -0.038915772f, -1.0525107f, -0.18669376f, -0.18276736f,
+ -0.10204605f, -0.74495244f, -0.11965212f, -0.019543486f,
+ 0.0380155f, -0.06872461f, -0.06849624f, -0.04956384f,
+ 0.27530462f, -0.123560704f, -0.050031234f, -0.05998796f,
+ -0.5620408f, -0.062972575f, 0.06436391f, -0.05483286f,
+ 0.6969287f, 0.3106553f, 0.115848355f, 0.17155589f,
+ -0.33006325f, -0.01731338f, -0.5510372f, 0.28030333f,
+ 0.08703667f, -0.0038054627f, 0.17232978f, -0.027623452f,
+ 0.32169512f, -1.5871913f, -0.057548586f, 0.34266344f,
+ 0.5817186f, -0.038918745f, -0.12682343f, 0.19700053f,
+ -0.57196194f, -1.0830029f, 0.16090432f, 0.17087045f,
+ 0.43502557f, 0.0043005156f, 0.007888717f, -0.094669074f,
+ -0.0018399992f, 0.6866147f, 0.35908246f, -0.103262484f,
+ -0.028033085f, 1.1970206f, -0.33869582f, 0.92941f,
+ 0.6957342f, -0.054552928f, -0.043642055f, 0.17129679f,
+ -0.04842257f, -0.09996442f, -0.50748825f, 0.04595869f,
+ 0.06974046f, -0.3096483f, 0.18659435f, -0.177076f,
+ 1.2662702f, 0.55787104f, -0.2942221f, 0.040368367f,
+ 0.085443534f, -0.031215366f, 0.009762889f, -0.7305549f,
+ 0.07410768f, -0.16351777f, -0.004754955f, -0.30242857f,
+ 0.0056068245f, -0.11292729f, -0.0037507468f, 0.24091145f,
+ 0.12718472f, -0.06633802f, 0.68315405f, 0.007032978f,
+ 0.02001363f, 0.30205742f, -0.12953602f, 0.040600114f,
+ 0.051005676f, 0.03815344f, 0.66393584f, 0.037897f,
+ 0.59683746f, 1.4347484f, 0.56821597f, 0.13473532f,
+ 0.35953316f, 0.0563827f, -1.129347f, 0.14100431f,
+ -0.33619714f, 0.33980617f, -0.022705909f, -0.27767184f,
+ 0.35933244f, 0.109876886f, -0.032753777f, -0.4390094f,
+ 0.016726546f, 0.091009274f, -0.4375568f, 0.109843165f,
+ 0.10731138f, 0.6742454f, -0.72505414f, 0.8788859f,
+ -0.26461828f, 0.00014677049f, -0.25321773f, 0.039589442f,
+ -0.027948616f, 0.25999793f, -0.09067927f, 0.19287735f,
+ -0.1386475f, 0.09231071f, 0.63792086f, 0.0456562f,
+ 1.4802929f, -0.33638597f, 1.5548582f, -0.0755962f,
+ -0.06542752f, -0.109518394f, -0.21816503f, 0.32451048f,
+ -0.38606623f, -1.3467056f, -0.05771466f, 0.011806992f,
+ 0.24214269f, 0.054469414f, -0.12076603f, -0.18438731f,
+ 0.26150334f, -0.77964354f, 0.66036934f, -0.006907575f,
+ 0.94310176f, -0.047564626f, -0.12459562f, -0.1288331f,
+ -0.02310457f, -0.1432274f, -0.5919779f, -0.033097554f,
+ -0.047399458f, 0.6575466f, 0.47733974f, 0.27609003f,
+ -0.17208083f, -0.25832102f, -0.44431672f, -0.25788766f,
+ 0.0647812f, 0.18345042f, 0.065801516f, 0.11088621f,
+ 0.30694783f, -0.07969917f, 0.013065712f, -0.027408697f,
+ -0.03675291f, -0.22444597f, -0.26660684f, -0.0423065f,
+ -0.03671671f, 0.06147494f, -1.0272169f, -0.012600886f,
+ -0.18622403f, -0.009829057f, 0.17015405f, -0.011638127f,
+ 0.08327624f, -0.09933968f, 0.61040473f, -0.20746969f,
+ 0.052961357f, 0.06289247f, 0.15325418f, 0.32770425f,
+ 0.43237996f, -0.7207486f, -0.3597442f, 0.02313438f,
+ -0.022957202f, 0.12079732f, 0.17552765f, 0.09537385f,
+ -0.18647258f, 0.20771635f, 0.07975148f, 0.03185079f,
+ 0.58540964f, 0.06976464f, 0.040587377f, 0.06018017f,
+ -0.18940072f, -0.17524518f, 0.03268289f, -0.11436423f,
+ 0.40239325f, 0.035653744f, 0.35413626f, -0.2379591f,
+ -0.17466733f, 0.059225168f, 0.053488348f, 0.005287904f,
+ -0.20015226f, 0.59177816f, -0.24876745f, -0.14199366f,
+ -0.13058542f, 0.6742349f, -0.9208947f, -0.82893944f,
+ -0.12967128f, 0.46362147f, 0.0085395835f, -0.011128945f,
+ -0.041954752f, 0.098719165f, 0.044110432f, -0.116927594f,
+ 0.026879564f, -0.14542711f, 0.62152386f, 0.04561305f,
+ -0.052609798f, -0.0057426826f, -0.20440601f, 0.34141743f,
+ -0.17668298f, 0.16086818f, -0.16761118f, 0.18087144f,
+ -0.098341435f, -0.17910129f, 0.00588145f, -0.065292574f,
+ 0.040965915f, 0.14990978f, -0.26601386f, -0.17971718f,
+ 1.1753075f, 0.6090735f, 0.14474608f, -0.040550165f,
+ 0.030703275f, -0.005693001f, -0.0060431613f, 0.20193526f,
+ -0.11487033f, 0.20959593f, 0.05881714f, -0.28643057f,
+ 0.5993628f, 0.024360266f, -0.04903763f, -0.024807177f,
+ 0.2558259f, -0.0041167033f, 1.3278406f, -0.00022546915f,
+ -0.0066788085f, 0.11269115f, -0.6393286f, -0.13057902f,
+ 0.17305179f, -0.054360848f, 0.7104905f, 0.028987624f,
+ -0.018385831f, 0.2916586f, 0.07999739f, 0.18517292f,
+ -0.020511745f, -0.1408964f, 0.37775484f, 0.03706271f,
+ -0.14997162f, -0.22352493f, -0.095369905f, -0.078609355f,
+ 0.37362596f, -0.007422314f, 0.01716415f, -0.33643755f,
+ -0.011640838f, 0.9804831f, -0.8765342f, -0.11526846f,
+ 0.016241504f, 0.0834439f, 0.24938221f, 0.43530577f,
+ -0.17967409f, 0.060004942f, -0.18962084f, -0.057849843f,
+ 0.049205188f, 0.027014751f, -0.3618276f, 0.06463575f,
+ -0.008790414f, -0.41527075f, 0.33245564f, 0.0635144f,
+ 0.35435766f, -0.71002597f, 0.45353934f, 0.056404024f,
+ 0.04984829f, -0.07844404f, -0.10153153f, -0.16910267f,
+ -0.27426124f, -0.57366544f, -0.03872668f, 0.36981413f,
+ -0.20567529f, -0.0671241f, 0.038127255f, -0.1908396f,
+ -0.43794653f, -0.300699f, 0.03810855f, -0.04637313f,
+ -0.07825446f, -0.66607875f, 0.099506505f, 0.4618191f,
+ -0.21216582f, -0.012609533f, -0.66332155f, -0.050607603f,
+ -0.068617776f, 0.54738265f, -0.41726017f, -0.068510786f,
+ 0.2148451f, -0.27475464f, 0.32930395f, 0.51796204f,
+ 0.035376858f, 0.5729698f, 0.057437688f, -0.041185137f,
+ 0.19861127f, -0.0067881914f, -0.0354746f, 0.2985983f,
+ -0.030902801f, -0.22139318f, 0.33385754f, 0.09889366f,
+ 0.06312611f, -0.2605545f, -0.8692756f, 0.6506811f,
+ 0.27332118f, -0.22367969f, -0.15818653f, -0.08020813f,
+ 0.08442767f, 0.08438274f, 0.25335822f, -0.013252974f,
+ -0.0707109f, 0.60785663f, 0.059798244f, 0.020673513f,
+ 0.69145876f, 0.3078428f, 0.086675614f, -0.12633818f,
+ -0.1143299f, 0.05912017f, -0.060371514f, 0.18596748f,
+ 0.37670124f, -0.003628737f, 0.079237714f, -0.15343362f,
+ -0.35025606f, 0.062457837f, -0.030156262f, -0.35673183f,
+ 0.29073933f, 0.045790825f, 0.64579564f, -0.05976654f,
+ 0.15903799f, 0.043759156f, -0.29644904f, -0.432136f,
+ 0.10118945f, -0.011308259f, -0.12030175f, -0.062758f,
+ 0.084805444f, -0.8083226f, 0.43035427f, -0.18179037f,
+ 0.40694982f, 0.83693177f, -0.68118596f, -0.048874084f,
+ -0.41409034f, -0.9658551f, -0.1647207f, -0.060028862f,
+ 0.46796852f, -0.08843349f, 0.0018470837f, -0.027149493f,
+ -0.052258525f, 0.11657547f, 0.1357844f, -0.004508176f,
+ -0.018252524f, -0.3274388f, 0.19633138f, -0.45682177f,
+ 0.30466136f, -0.2587637f, 0.33736455f, -0.3494535f,
+ 0.13151664f, 0.14746036f, 0.7392358f, 0.028742446f,
+ -0.07479255f, -0.32294506f, 0.061178464f, 0.18492086f,
+ 1.2575277f, 0.52585644f, -0.458295f, 0.084664166f,
+ 0.005415777f, -0.0665856f, -0.050662316f, 0.05724804f,
+ -0.096814625f, 1.0459784f, -0.045347326f, -0.5063199f,
+ 0.60344905f, -0.010746045f, 0.25959834f, 0.03684422f,
+ 0.3755645f, -0.58493453f, 0.5561573f, -0.13981144f,
+ -0.2215942f, 0.16491924f, 0.14369565f, -0.5216677f,
+ 0.265607f, 0.12088327f, 1.1548406f, -0.16280115f,
+ -0.9972398f, -0.12449365f, -0.24688128f, -0.12873472f,
+ -0.03333164f, -1.0723888f, -0.017521527f, 0.097760566f,
+ -0.5475124f, 0.5536252f, 0.18261194f, 0.06514212f,
+ -0.2336779f, 0.002555238f, -0.0024142095f, -0.24205987f,
+ 0.038783897f, -0.55545896f, -0.017620027f, 0.1433381f,
+ 0.014220394f, 0.08684262f, 0.9545443f, -0.41551736f,
+ 0.20494984f, 0.05409108f, 0.11572054f, 0.063330464f,
+ -0.06993678f, -0.09732998f, -0.6020154f, -0.044715337f,
+ 0.03763303f, -0.09459819f, 0.22890855f, 0.18063238f,
+ 0.42201984f, -0.7593245f, 0.58606285f, -0.14459786f,
+ -0.048074257f, 0.14058621f, 0.16228783f, -0.005248199f,
+ -0.17536658f, -0.03920895f, 0.040929627f, 0.3210367f,
+ -0.51269615f, -0.025370827f, -0.043593645f, 0.20184574f,
+ -0.76075745f, -0.03160007f, 0.7261296f, 0.18416426f,
+ -0.38696828f, -0.11348639f, -0.3569068f, 1.190259f,
+ 0.48452505f, 0.0074393274f, -0.69991297f, 0.01420315f,
+ 0.8623881f, -0.7378301f, 0.34439692f, -0.15435752f,
+ 0.032793503f, 0.3598972f, -0.17439131f, 0.2123784f,
+ -0.43014812f, 0.062233f, 0.15052405f, 0.06728421f,
+ 0.2762911f, 0.11501471f, 0.004879046f, 0.59562266f,
+ 0.0379139f, -0.36828464f, 0.11159488f, -0.090248995f,
+ 0.0014012711f, 0.00839495f, -0.13987511f, 0.90194494f,
+ -0.7654592f, 0.28434956f, 0.10638739f, 0.27433598f,
+ -0.2084862f, 0.19358912f, 1.1313139f, 0.13933653f,
+ -0.05773256f, 0.44830528f, -0.11732113f, 0.073594145f,
+ -0.0051245736f, -0.34510124f, -0.6829936f, 0.13841322f,
+ 0.06736955f, -0.13331702f, 0.07526768f, 0.19182876f,
+ -0.23150502f, 0.86191076f, -0.11696823f, -0.22119623f,
+ -0.19162506f, -0.0735014f, -0.1773721f, 0.25855657f,
+ 0.16835546f, -0.19743842f, 0.025447622f, -0.034983907f,
+ -0.030079162f, -0.26982272f, -0.274046f, -0.4706862f,
+ -0.8860954f, -0.0883265f, 0.4923665f, 0.12776333f,
+ -0.6985579f, 0.7035462f, -0.573505f, -0.19217657f,
+ -0.12275149f, -0.44570956f, 1.1768265f, 0.5517704f,
+ -0.4743277f, 0.69454f, 0.20293105f, 0.29453084f,
+ -0.12017214f, -0.031464122f, -0.034596562f, -0.16331851f,
+ 0.024054134f, -0.15350792f, 0.5104947f, -0.13960429f,
+ -0.031589217f, 0.23318407f, -0.047485057f, 0.60308546f,
+ -0.4170153f, 0.053604674f, -0.15115482f, 0.18353412f,
+ -0.054382622f, -0.10619973f, 0.14280728f, -0.012675893f,
+ 0.08070296f, -0.20265356f, 0.51052827f, 0.041624393f,
+ 0.08734615f, 0.30017322f, -0.21919109f, 0.010112398f,
+ 0.04970472f, 0.1468012f, 0.14246646f, 0.29738256f,
+ 0.39467713f, -0.5914723f, -0.0011392761f, -0.6534514f,
+ -0.58961296f, -0.137007f, -0.12877026f, 0.17956233f,
+ 0.49242783f, -0.5456644f, 0.75918263f, 0.30353123f,
+ 0.05103957f, -0.7746776f, 0.2718962f, -0.16832887f,
+ -0.16596973f, 0.06909379f, -0.39522335f, 0.21909793f,
+ 0.12775636f, -0.49460694f, 0.37282586f, -0.027514068f,
+ 0.68375903f, -0.3336777f, -0.109146796f, -0.2857266f,
+ -0.5162939f, -0.5532106f, -0.06643443f, -0.28090572f,
+ -0.032329313f, 0.048060995f, -0.010584183f, 0.08611912f,
+ -0.00852446f, 0.43881863f, -0.15162201f, 0.057884566f,
+ 0.04682708f, -0.43206438f, -0.9950264f, -0.17777479f,
+ 0.3539261f, 0.059806917f, -0.14065355f, 0.0010142551f,
+ 0.017586324f, 0.21993496f, -0.3476685f, 0.070004694f,
+ -0.07171079f, 0.5529898f, 0.19610457f, -0.23854491f,
+ -0.16113456f, -0.58313465f, -0.66670287f, 0.047221616f,
+ -0.018200029f, -0.14062363f, -0.16721842f, -0.31761357f,
+ -0.17364737f, 0.09550011f, -0.016673448f, 1.2703098f,
+ -0.11997756f, 0.19467974f, -0.06230934f, -0.2797428f,
+ 0.51019675f, -0.08659786f, 0.24228068f, -0.29557306f,
+ -0.036805607f, 1.1115487f, -1.4618791f, 0.01937896f,
+ -0.66293925f, -0.11823256f, 0.012563107f, -0.027988309f,
+ -0.55198354f, 1.48292f, -0.2487565f, 0.2725445f,
+ -0.12893778f, 0.56532866f, -0.1898636f, 1.1753992f,
+ -0.85474813f, -0.74347305f, -0.226513f, 0.07298958f,
+ -1.0707071f, -0.12918127f, 0.0038514365f, 0.75334466f,
+ -0.02445111f, -0.13673548f, 0.8408102f, -0.011796719f,
+ -0.05825908f, 0.40508544f, 1.0070946f, 0.8512222f,
+ 0.580682f, -0.1543996f, 0.24988945f, -0.22670421f,
+ 0.14171122f, -0.30923358f, -0.39221507f, -0.19395508f,
+ 0.12736964f, -0.06346243f, -0.17747009f, -0.12067997f,
+ 0.12659909f, 0.37409833f, 0.4911539f, -0.032747656f,
+ -0.015764099f, 0.098963514f, 0.04324998f, 0.061905418f,
+ -0.17375757f, -0.8400404f, 0.05955598f, -0.22746526f,
+ 1.1662142f, 0.031076442f, 0.18904184f, 0.19436231f,
+ -0.041918986f, -0.313535f, -0.018078817f, 0.1301373f,
+ 0.4379767f, -1.0663239f, 0.23149821f, 0.19537582f,
+ 0.8177001f, 0.11316294f, 0.5923989f, -0.056942824f,
+ 0.10361174f, -0.63197005f, 0.11389801f, 0.28767753f,
+ -0.10785917f, -0.0028997986f, -0.31122452f, -0.048697572f,
+ 0.10340513f, 0.26811495f, 0.02385071f, 0.028452646f,
+ -0.49635813f, 0.002379026f, 0.011824669f, -0.12306075f,
+ -0.0022144208f, -0.4406479f, 0.2132567f, -0.12029822f,
+ -0.00083951454f, -0.039546967f, -0.41021103f, 0.45510072f,
+ 0.09671541f, -0.10612592f, -0.20379615f, 0.0033340752f,
+ -0.0081552705f, -0.053996276f, 0.032100677f, -0.0209379f,
+ 0.012087565f, -0.06712352f, 0.11062984f, -0.028603734f,
+ 0.41279152f, -0.0022300908f, 0.18050687f, -0.10287772f,
+ -0.021507537f, 0.043036792f, -0.04461817f, 0.0030169326f,
+ -0.1616123f, 0.149089f, 0.029395318f, 0.20086749f,
+ -0.34108025f, -0.016428098f, 0.057194266f, 0.044825077f,
+ -0.032594092f, -0.08138203f, 0.067586824f, -0.0007271414f,
+ 0.2607637f, -0.11909297f, 0.027430708f, -0.1262224f,
+ 0.091255896f, 0.005778258f, -0.17827f, -0.009833421f,
+ 0.07353523f, -0.6493434f, -0.1883088f, -0.28835455f,
+ -0.1078159f, -0.22515795f, 0.42343077f, 0.0073934714f,
+ -0.07775237f, 0.08020301f, -0.078097485f, -0.105158955f,
+ 0.35064107f, 0.024206674f, 0.023833247f, 0.21352105f,
+ 0.010686013f, 0.62904745f, -0.13217805f, 0.1025501f,
+ 0.0055421595f, 0.09314121f, 0.25391075f, -0.29046878f,
+ -0.17482565f, 0.030218355f, 0.07240809f, 0.0031198887f,
+ 0.0025917666f, 0.04565952f, 0.020857586f, 0.06252299f,
+ -0.022046385f, 0.1490084f, 0.045816485f, 0.10913728f,
+ 0.499339f, -0.052541234f, -0.16371772f, 0.084730044f,
+ 0.04129974f, -0.0941789f, -0.0027805853f, -0.18353815f,
+ 0.16755617f, 0.1028595f, -0.07512991f, 0.114224814f,
+ 0.3569994f, -0.024968363f, 0.032140683f, -0.22413824f,
+ -0.50803405f, 0.21814808f, -0.25306115f, -0.029509235f,
+ -0.08627275f, -0.28849718f, -0.07246629f, -0.1204825f,
+ -0.0023493909f, 0.014092514f, 0.5053854f, 0.024695236f,
+ -0.27239412f, -0.15073039f, 0.02492758f, 0.3631751f,
+ 0.15844767f, -0.04642232f, -0.24611035f, -0.07490449f,
+ -0.055985406f, -0.040833198f, 0.1283129f, 0.04731968f,
+ -0.08914244f, 0.0091035245f, 0.023777392f, 0.019496769f,
+ 0.0051546968f, 0.070326135f, 0.18791635f, 0.0601067f,
+ -0.0052290894f, -0.18046115f, -0.063175835f, 0.24250478f,
+ -0.274263f, -0.08791708f, 0.16429912f, 0.005448248f,
+ -0.022674154f, 0.059742913f, -0.064498246f, -0.0037776513f,
+ -0.029013874f, -0.25364783f, -0.015377337f, 0.04581958f,
+ 0.26069716f, -0.21741578f, 0.0053679748f, -0.037854746f,
+ -0.051705696f, 0.029370528f, -0.010333309f, -0.034810916f,
+ 0.059809763f, -0.59215397f, 0.016021516f, -0.022767818f,
+ 0.1166717f, 0.0144192f, 0.026583314f, 0.10907548f,
+ -0.37963197f, -0.0335569f, -0.0011182226f, -0.088536836f,
+ 0.032055147f, 0.022710849f, -0.12237235f, -0.11469093f,
+ -0.21210971f, -0.03257199f, 0.40899962f, -0.04795021f,
+ -0.008442735f, 0.24859948f, -0.14580902f, -0.17078315f,
+ 0.20320588f, 0.027104031f, -0.06129194f, -0.02814229f,
+ -0.17939949f, 0.17422538f, -0.077081814f, -0.06134444f,
+ -0.11957499f, 0.024762228f, -0.011767404f, -0.21934804f,
+ 0.0026742625f, -0.37806046f, 0.395741f, 0.35451582f,
+ 0.03984193f, 0.2990162f, 0.15248322f, 0.63409054f,
+ -0.049523063f, 0.12907007f, 0.35311309f, 0.09635897f,
+ -0.05676273f, 0.20821944f, -0.2694863f, 0.01930387f,
+ -0.06410627f, 0.04208369f, 0.24951501f, 0.19093779f,
+ 0.3573838f, -0.59520483f, -0.13383949f, 0.088385336f,
+ -0.009618764f, -0.104598455f, -0.008538134f, 0.04333432f,
+ 0.19658424f, 0.7447745f, -0.04310788f, 0.2425188f,
+ -0.45809892f, 0.09552404f, -0.12543613f, -0.11057406f,
+ 0.5495674f, -0.17238289f, -0.024263157f, -0.13504346f,
+ 0.31844178f, 0.12674306f, 0.07616537f, 0.12903252f,
+ -0.053657874f, -0.072559476f, -0.4454876f, 0.011174537f,
+ 0.22073524f, 0.20383377f, 0.3207662f, 0.5224032f,
+ -0.15929484f, -0.33845553f, 0.52572143f, 0.019899f,
+ 0.020405946f, -0.6018185f, 0.18882087f, 0.15045601f,
+ 0.8992633f, -0.0073720347f, 0.010778583f, 0.41368032f,
+ 0.002764939f, 0.22914428f, 0.08554652f, -0.24111158f,
+ 0.0029605469f, 0.039361905f, -0.16735673f, 0.09448692f,
+ 0.63502353f, -0.28406873f, -0.27785093f, -0.07334996f,
+ 0.02057091f, -0.034106113f, 0.12507156f, 0.03880981f,
+ -0.009745902f, -0.049776305f, 0.20766719f, 0.06828406f,
+ -0.031883493f, 0.023847152f, 0.27061906f, -0.1189462f,
+ -0.027280282f, 0.122390114f, -0.027198102f, 0.06855315f,
+ -0.11524947f, 0.43170023f, 0.039990507f, 0.21404813f,
+ -0.2028136f, -0.10889018f, 0.08720372f, 0.21388337f,
+ -0.23414706f, -0.1951347f, -0.19234537f, 0.078535706f,
+ -0.2005093f, -0.37662098f, -0.35234085f, -0.04501241f,
+ 0.26853657f, 0.042732865f, 0.3904414f, -0.04193134f,
+ -0.1319489f, 0.020548036f, 0.58164674f, -0.5019735f,
+ -0.00360139f, 0.008710196f, -0.53809905f, 0.20433472f,
+ 0.05979546f, 0.5530417f, -0.10963971f, -0.10995569f,
+ 0.42611244f, -0.021491088f, 0.0223882f, -0.12059418f,
+ -0.03015182f, -0.0645243f, 0.3055774f, -0.15295373f,
+ 0.026462812f, 0.025397286f, -0.17185941f, -0.39315516f,
+ -0.3312435f, 0.18606834f, -0.14801937f, 0.07903748f,
+ 0.08059581f, -0.1194738f, 0.25239334f, -0.09264395f,
+ 0.052000247f, -0.03161937f, 0.11563025f, -0.20333059f,
+ 0.018767746f, -0.21142711f, 0.033453695f, 0.05486646f,
+ 0.018842708f, -0.049200125f, 0.04289644f, 0.060349777f,
+ 0.10841093f, -0.52317965f, 0.061054703f, 0.04386135f,
+ 0.04643112f, 0.11080242f, -0.10327854f, -0.087826066f,
+ -0.22801481f, -0.13845244f, 0.020444352f, -0.057976514f,
+ 0.42071402f, -0.1477805f, -0.21667919f, 0.031323623f,
+ 0.1021433f, -0.019618012f, 0.5704744f, 0.050565466f,
+ -0.1132876f, 0.38108015f, 0.89559615f, 0.26470417f,
+ -0.35218224f, 0.07094074f, -0.082870595f, 0.598978f,
+ -0.29158223f, -0.28026947f, 0.08005068f, 0.052471504f,
+ -0.62287796f, -0.020048285f, -0.0066040424f, 0.024922827f,
+ 0.008125545f, 0.42961928f, 0.29208717f, -0.24263906f,
+ -0.035120066f, -0.0034637484f, -0.41128638f, 0.5402242f,
+ -0.14740479f, -0.06506991f, -0.1535905f, -0.06305502f,
+ 0.04291404f, -0.1481976f, 0.13896187f, 0.014012274f,
+ 0.06013854f, -0.20381388f, 0.048039317f, -0.08725523f,
+ -0.040391516f, -0.10869383f, 0.03352583f, 0.006260872f,
+ 0.052461658f, 0.066925496f, 0.06255518f, 0.29096314f,
+ 0.096500345f, -1.0350126f, -0.005861517f, 0.305941f,
+ 0.20665193f, -0.08968552f, 0.062319644f, 0.03884756f,
+ 0.45326132f, -0.38024685f, -0.099675894f, 0.109421074f,
+ 0.028132925f, 0.1765073f, 0.048257437f, 0.097620904f,
+ -0.014895345f, 0.06464828f, -0.14183639f, 0.04086546f,
+ -0.20390834f, -0.12099001f, -0.008877763f, -0.32313755f,
+ -0.16096477f, -0.342688f, 0.88636404f, 0.17343438f,
+ -0.1578319f, 0.6337537f, -0.18106265f, -0.028100913f,
+ 0.15625139f, -0.0024134796f, -0.02507518f, 0.2740408f,
+ 0.0063930145f, -0.5271774f, 0.5852923f, 0.14737153f,
+ -0.014328431f, -0.3725874f, 0.054065894f, 0.17558894f,
+ -0.04583382f, 0.2741302f, 0.2072049f, 0.037100773f,
+ -0.03203545f, -0.0068311673f, -0.24766918f, -0.06598099f,
+ 0.009893676f, 0.22915947f, 0.23638669f, -0.22990292f,
+ -0.043377865f, 0.08146472f, -0.15124626f, 0.04700613f,
+ -0.004188818f, -0.04849851f, 0.010260099f, 0.16815564f,
+ -0.2421033f, 0.5608691f, 0.028587138f, 0.03534107f,
+ 0.04437917f, 0.12895173f, -0.09162607f, 0.06928925f,
+ -0.38815245f, -0.1275231f, -0.09601173f, -0.01757392f,
+ -0.45373854f, -0.042529546f, 0.032542404f, 0.1254749f,
+ -0.18202591f, -0.04533466f, 0.32147184f, -0.0029436506f,
+ -0.16672648f, 0.1898102f, -0.4047172f, 0.24937452f,
+ 0.39518636f, 0.2856015f, -0.18719803f, 0.21341841f,
+ -0.105118945f, -0.73317f, 0.0419687f, 0.038014386f,
+ -0.44953552f, -0.008781562f, -0.038692217f, -0.07130775f,
+ -0.0075867875f, 0.15706892f, 0.16502954f, 0.06308957f,
+ -0.012597183f, 0.14245723f, 0.5343113f, 0.12058092f,
+ 0.04816337f, -0.10404585f, -0.021507008f, -0.0800524f,
+ -0.022313768f, 0.05215755f, 0.09795594f, 0.049333427f,
+ -0.017702665f, 0.10952629f, 0.11397921f, 0.1449078f,
+ -0.33739704f, -0.078896254f, 0.110511266f, -0.026410189f,
+ -0.01439752f, 0.031203557f, -0.03112509f, -0.027734976f,
+ 0.07902446f, 0.12360821f, -0.04552893f, -0.04526376f,
+ 0.095318325f, -0.100349195f, 0.043086667f, -0.081863455f,
+ -0.20606963f, -0.18531309f, -0.018263036f, 0.13190107f,
+ 0.07888813f, -0.01382369f, 0.018464422f, 0.02618622f,
+ 0.062439315f, 0.027020983f, 0.29469058f, -0.03478768f,
+ -0.24600734f, 0.08285195f, -0.88827795f, -0.0962262f,
+ 0.24293824f, 0.07378746f, -0.18225484f, -0.012565531f,
+ 0.12814565f, -0.13082457f, -0.10122437f, -0.049953904f,
+ 0.3147195f, -0.043198477f, -0.024817107f, 0.021508185f,
+ -0.023242656f, -0.55942094f, -0.009363146f, 0.042884603f,
+ -0.004297196f, -0.01508818f, 0.020276075f, 0.21943416f,
+ -0.098088406f, -0.034750875f, 0.023339257f, -0.00033176175f,
+ 0.085179806f, 0.02886756f, -0.019651227f, -0.020029573f,
+ 0.007351027f, -0.18978223f, 0.12319732f, 0.14344627f,
+ 0.52407455f, -0.49374008f, -0.01802031f, 0.033477638f,
+ -0.03393009f, 0.005960792f, -0.024561897f, 0.037639778f,
+ 0.13082707f, 0.12536314f, 0.0028163525f, 0.008278291f,
+ 0.24157722f, 0.054332413f, -0.032833345f, 0.13896385f,
+ 0.12004303f, -0.13897906f, -0.0040197256f, -0.039096486f,
+ -0.5349053f, 0.03525455f, -0.0031136817f, -0.023776146f,
+ 0.6855273f, -0.0034104863f, 0.027913604f, -0.012732404f,
+ -0.10206741f, -0.06776763f, -0.20316778f, -0.09420485f,
+ -0.2835454f, 0.03141139f, 0.038135894f, 0.028089035f,
+ 0.1116777f, 0.38514847f, 0.13747084f, 0.08220727f,
+ 0.27208593f, -0.0029012512f, 0.011849713f, 0.01815216f,
+ 0.0124553f, 0.31097436f, -0.3655298f, -0.07899617f,
+ -0.016324779f, 0.110559925f, 0.29151034f, 0.004704325f,
+ 0.259912f, -0.02812138f, -0.09432197f, 0.008673609f,
+ -0.023071159f, -0.061535105f, 0.026601654f, -0.0061678486f,
+ 0.021016214f, -0.106803745f, 0.07087839f, -0.21975054f,
+ -0.06209465f, -0.22728893f, -0.044092316f, -0.0050268387f,
+ 0.030731624f, 0.046827227f, 0.05391278f, 0.13944063f,
+ 0.030861972f, 0.873758f, 0.0042389613f, 0.024148699f,
+ -0.4684984f, -0.048465192f, 0.03412932f, -0.07405764f,
+ 0.2723209f, -0.09946223f, -0.167358f, 0.046794392f,
+ -0.61188716f, 0.045533102f, -0.37822083f, 0.048472974f,
+ -0.49506643f, 0.046440955f, 0.158569f, -0.006109473f,
+ -0.20098878f, 0.19239779f, -0.050345175f, -0.25978413f,
+ 0.16562684f, -0.0070971833f, 0.23336567f, 0.07233002f,
+ 0.30231535f, -0.26421908f, -0.09739093f, -0.018538348f,
+ -0.5854403f, 0.003950279f, -0.00095332164f, 0.049794875f,
+ -0.008842661f, -0.27439782f, 0.2331019f, 0.007902495f,
+ 0.015512793f, -0.09043787f, 0.0056865923f, 0.11554465f,
+ -0.008732929f, 0.05358633f, 0.051173653f, -0.022386277f,
+ 0.004397757f, 0.015978128f, 0.0037322952f, -0.006059263f,
+ -0.0015184586f, 0.48015764f, 0.16693848f, -0.018343871f,
+ 0.4673947f, -0.4560093f, 0.02693681f, -0.034233626f,
+ -0.00915256f, -0.015059712f, -0.035003413f, 0.002898302f,
+ -0.030599644f, -0.001538352f, 0.013743077f, 0.017058363f,
+ -0.10197961f, 0.03865407f, -0.02194548f, 0.009667572f,
+ 0.27016306f, -0.12590827f, -0.13706999f, -0.013613967f,
+ -0.079895444f, 0.037849758f, -0.24419288f, -0.18340911f,
+ -0.1932865f, -0.030076161f, 0.042335976f, 0.020296862f,
+ -0.21950805f, -0.5662344f, 0.37949803f, 0.22107333f,
+ -0.25802281f, 0.1234263f, -0.6307055f, 0.060795095f,
+ 0.055129625f, 0.011179638f, 0.13345826f, 0.011835805f,
+ -0.26108626f, 0.034845825f, 0.019723834f, -0.09686462f,
+ 0.020925295f, -0.17766403f, 0.29346967f, -0.037207402f,
+ 0.005625791f, 0.17679776f, -0.47757193f, 0.22783616f,
+ 0.16516423f, 0.015435609f, -0.02372002f, 0.0536022f,
+ -0.052801516f, -0.013822196f, -0.11613216f, 0.001530818f,
+ -0.03145606f, 0.006045487f, 0.009529459f, -0.14042652f,
+ -0.13323236f, 0.27313554f, 0.1638065f, -0.025276538f,
+ 0.01514294f, -0.02124888f, 0.023400163f, 0.12592638f,
+ 0.120837614f, 0.15632197f, -0.027845526f, 0.08471428f,
+ 0.1802741f, -0.014137118f, 0.00631814f, 0.18426138f,
+ -0.4357598f, -0.034723498f, -0.11279939f, -0.03967317f,
+ 1.2227325f, 0.037458267f, -0.49046177f, 0.034628f,
+ -0.90939826f, -0.016180456f, 0.24080719f, 0.025757542f,
+ -0.21751052f, -0.10842869f, -0.0021742678f, -0.46703017f,
+ 0.1448441f, -0.06552447f, 0.34058526f, 0.33884957f,
+ 0.52796f, -0.20207123f, -0.11037399f, 0.050227724f,
+ 0.18499212f, -0.038110655f, -0.037496246f, -0.07423208f,
+ -0.015796147f, 0.7927077f, -0.019978128f, 0.13128003f,
+ -0.025423305f, -0.08123932f, -0.03515996f, -0.17574602f,
+ -0.42119622f, 0.0149783855f, 0.17337406f, -0.020909427f,
+ 0.0035510657f, -0.028585535f, -0.004857342f, -0.04000675f,
+ 0.020947661f, -0.8371577f, 0.18380268f, 0.12644005f,
+ -0.47416002f, -0.11229589f, 0.04878847f, 0.055968642f,
+ -0.0024506734f, 0.027739534f, 0.02975578f, 0.14149982f,
+ 0.017028997f, -0.930311f, 0.016942346f, 0.1260006f,
+ -0.31258988f, 0.00079154904f, -0.019085003f, -0.13274002f,
+ -0.8633556f, 0.13696687f, -0.26458025f, 0.03138964f,
+ -0.0044467505f, 0.20018221f, 0.44500586f, 0.19915874f,
+ 0.90545577f, 0.025314143f, 0.15985878f, 0.0029355786f,
+ -0.22377701f, 0.51731515f, 0.45001996f, 0.63877046f,
+ -0.37091684f, 0.024431072f, 0.10766028f, -0.27835217f,
+ 0.07619482f, -0.06065307f, 0.042444598f, -0.053410213f,
+ -0.2986331f, 0.046403732f, -0.015346399f, 0.13456061f,
+ 0.03224526f, -0.83799493f, -0.14640379f, 0.009240726f,
+ -0.004935805f, 0.022839667f, -0.40300173f, 0.29409474f,
+ -0.0057607866f, 0.010855908f, -0.1474261f, -0.02922972f,
+ -0.06759966f, 0.089326724f, 0.16961202f, 0.13192524f,
+ -0.035449278f, 0.0027146998f, -0.0068802205f, 0.043017272f,
+ 0.15714061f, -0.2815524f, -0.09183252f, -0.022902168f,
+ 0.03400313f, -0.038457677f, -0.06449285f, 0.014995363f,
+ 0.07312485f, -0.45351207f, -0.046386093f, -0.061988764f,
+ 0.4369888f, -0.031724986f, 0.023320282f, -0.038755704f,
+ -0.5915052f, 0.10639439f, -0.17455791f, 0.07786761f,
+ 0.33975995f, 0.18869898f, 0.47326547f, 0.061649017f,
+ -0.14124529f, -0.015207456f, 0.1424136f, -0.019343734f,
+ 0.17271714f, 0.27857488f, -0.026874544f, -0.24405365f,
+ 0.31561223f, 0.41891858f, 0.11224997f, -0.11666048f,
+ 0.50373906f, -0.34512606f, 0.0471324f, -0.03093332f,
+ 0.10824271f, -0.0068406085f, 0.04778212f, -0.061466023f,
+ -0.02312108f, 0.075250976f, -0.08324511f, -0.09799827f,
+ 0.019824369f, 0.13000363f, 0.028013133f, 0.40387544f,
+ -0.30719697f, -0.11252928f, -0.042437263f, 0.07551188f,
+ 0.06820186f, -0.0064464705f, 0.07779856f, -0.01744975f,
+ 0.01821874f, 0.055865876f, 0.053633522f, 0.08511449f,
+ -0.82246125f, 0.6942819f, -0.10645871f, 0.011099172f,
+ -0.0026968424f, -0.012094347f, -0.03705987f, 0.049437348f,
+ 0.087295756f, 0.13788779f, -0.0017246396f, -0.07767527f,
+ 0.39595684f, -0.006122576f, 0.0012576799f, -0.25704527f,
+ -0.010118404f, 0.09155252f, -0.38770628f, -0.11880891f,
+ 0.19410603f, -0.28863358f, -0.2086641f, -0.030381698f,
+ 0.5018192f, -0.011517371f, -0.21369566f, -0.0003515289f,
+ 0.19388983f, -0.023768121f, -0.09938848f, 0.43101996f,
+ -0.14072245f, -0.04065768f, 0.24480632f, -0.2633492f,
+ 1.4327307f, -0.047750115f, 0.056324914f, 0.03516344f,
+ 0.93008566f, 0.0150803225f, 0.01168994f, -0.10302992f,
+ 0.022748979f, -0.6068356f, -0.1422501f, -0.09841886f,
+ 0.048702933f, 0.0826839f, -0.07321677f, 0.67559403f,
+ 0.79227316f, -0.10862632f, 0.0060945577f, 0.006695339f,
+ -0.016319305f, 0.05437101f, -0.37131596f, 0.03014805f,
+ -0.002062072f, 0.11507918f, 0.2635469f, 0.08383332f,
+ -0.70387816f, 0.42497152f, 0.10203546f, -0.08018998f,
+ -0.054603316f, -0.0077110697f, -0.013247804f, -0.11852484f,
+ -0.09842244f, 0.70757586f, 0.013559294f, 0.120575815f,
+ -0.46216908f, 0.0029474732f, 0.032966305f, 0.13656545f,
+ -0.6969706f, -0.13113086f, -0.97098213f, 0.015276256f,
+ -0.22510596f, 0.4081767f, 0.44420186f, 0.110563464f,
+ -0.54222864f, -0.037506588f, 0.02831625f, -0.009117393f,
+ -0.06719863f, 0.31313667f, -0.06647934f, -0.46002543f,
+ -0.022920491f, 0.09747543f, -0.24225435f, -0.004130935f,
+ -0.38934442f, 0.66127276f, -0.12695555f, -0.033605516f,
+ -0.7961417f, -0.0032432426f, 0.008441953f, 0.21257626f,
+ -0.016288996f, 1.1996956f, 0.3340835f, 0.11949709f,
+ -0.022864364f, -0.015694587f, 0.57715863f, 0.26424572f,
+ -0.24560143f, 0.17708732f, 0.063311495f, -0.0708171f,
+ -0.0007125664f, -0.09685389f, 0.3315758f, -0.091069244f,
+ 0.01209538f, -0.113875f, -0.030776108f, -0.14427556f,
+ -0.34731078f, 0.41529083f, -0.21710064f, 0.060870852f,
+ 0.021573732f, -0.0010071248f, 0.053809386f, -0.0970529f,
+ 0.16180807f, -0.27731735f, 0.019589525f, -0.095141694f,
+ -0.044908058f, 0.013511503f, -0.01926103f, 0.048170235f,
+ -0.28182176f, -0.012095345f, -0.36596087f, 0.006421566f,
+ -0.06538939f, -0.109421834f, 0.8824174f, 0.06885478f,
+ 0.18075576f, 0.024379302f, 0.18025628f, -0.019628849f,
+ -0.22503045f, -0.12696771f, -0.24319525f, 0.17932092f,
+ 0.14960875f, 0.69117856f, -1.4270625f, -0.32188645f,
+ -0.03755734f, 0.43231627f, 0.27344498f, 0.033560924f,
+ 1.1308669f, 0.04170383f, 0.1161249f, 0.10290047f,
+ 0.0530178f, -0.8195372f, 0.14340809f, 0.10879339f,
+ -0.043373164f, -0.43373662f, -0.7149809f, 1.1578687f,
+ 0.15872958f, -0.26095676f, 0.008544403f, 0.14406952f,
+ -0.1551711f, -0.032760028f, -0.35688782f, 0.13357502f,
+ -0.0421035f, 0.027032234f, -0.60723954f, 0.20435102f,
+ -0.90069985f, -0.5856397f, -0.22282559f, -0.08883665f,
+ 0.050355405f, -0.04439032f, -0.08245036f, -0.788458f,
+ -0.3155508f, 0.83670884f, -0.108701706f, -0.30785736f,
+ -0.32631257f, -0.23052703f, 0.22810306f, 0.44281456f,
+ -0.4705631f, 0.5663604f, 0.18918629f, 0.10590219f,
+ -0.1455351f, 0.19328198f, -0.2400981f, -0.05998592f,
+ 0.5623979f, 0.097001106f, -0.40353534f, 0.043848418f,
+ 0.456702f, -0.43144557f, -0.33785933f, -0.3706261f,
+ 1.1067008f, 0.40675893f, 0.9274152f, -0.051574074f,
+ 0.8839249f, -0.74366623f, 0.11890916f, -0.103235565f,
+ -1.5255792f, 0.024603536f, -0.011608358f, 0.17900163f,
+ -0.006907739f, 0.84226966f, -0.63275164f, -0.11485185f,
+ 0.03924578f, 0.51860523f, -0.03599022f, -0.42553434f,
+ 0.4172557f, 0.049358927f, -0.06416589f, 0.07883076f,
+ -0.013297642f, 0.25293332f, 0.16869776f, 0.1012792f,
+ -0.06330224f, -0.63432425f, 0.21824975f, 0.06856262f,
+ 0.6994193f, 0.7477583f, 0.9774959f, 0.017727677f,
+ -0.034716215f, -0.042782422f, -0.008052741f, 1.035657f,
+ -0.067479916f, -0.27132487f, -0.066339836f, -0.18157004f,
+ 0.26824996f, 0.04687068f, -0.15052707f, 0.018096969f,
+ 0.8449519f, -0.43005812f, -1.0168953f, -0.07705452f,
+ 0.36830467f, 0.4051692f, 0.18784933f, -0.35108626f,
+ -0.38559297f, -0.07720277f, 0.12630236f, 0.11204054f,
+ -0.91436225f, 0.025883678f, 0.44053805f, -0.213017f,
+ -0.2928492f, 0.05987633f, -0.8528844f, -0.04857821f,
+ 0.43391976f, 0.7901487f, -0.4212125f, 0.0023572603f,
+ 1.3131862f, -0.13587925f, -0.09520163f, 0.11520859f,
+ -0.00813047f, 0.2944408f, 1.0980585f, 0.29993072f,
+ -0.022082832f, 0.02778601f, 0.43538338f, -0.24384092f,
+ -1.2781146f, 0.15771657f, 0.29441354f, -0.13121171f,
+ 0.14804596f, -0.19173783f, 0.051168624f, -0.20905086f,
+ 0.16868094f, -0.04476833f, -0.31413016f, 0.022419244f,
+ -0.8999571f, -0.24091925f, -0.7623511f, 0.09995056f,
+ 0.021532072f, 0.12541024f, 0.052111857f, -0.6608629f,
+ 0.3341795f, 0.53531605f, 0.08999461f, -0.2748625f,
+ 0.0072318274f, 0.1185038f, 0.09254412f, -0.16930209f,
+ -0.064442664f, 0.85797244f, -0.39353243f, 0.15833013f,
+ -0.4636985f, -0.6220491f, -0.5400674f, 0.013466545f,
+ 0.3331856f, 0.07091257f, -0.6538079f, -0.1378507f,
+ -0.3114638f, 0.2935725f, 0.096345544f, 0.7213372f,
+ -1.2269837f, -0.017123858f, -0.5396661f, -0.4916296f,
+ 0.8931927f, 0.35118255f, -0.2009332f, 0.14204225f,
+ 0.16218036f, -0.12993972f, -0.07924614f, 0.34760293f,
+ -0.03621517f, -0.4007723f, -0.52079713f, 0.16013288f,
+ -0.0430677f, -0.41912177f, -0.055401962f, -1.428964f,
+ -1.3050687f, 0.1899999f, -0.110783175f, -0.048614964f,
+ 0.17444819f, -0.13499539f, 0.30877525f, -0.2327158f,
+ 0.083536744f, 0.53665775f, -0.38396963f, -0.16236576f,
+ 0.9600668f, 0.4541576f, -0.2999582f, 0.17657375f,
+ 0.04377724f, 0.18074428f, 0.21977979f, 0.5505787f,
+ -0.103395306f, 0.7129558f, 0.121172756f, 0.13546136f,
+ -0.47305703f, 0.16746308f, -0.14553757f, -0.04561804f,
+ 0.48479232f, -0.3328849f, -0.26151845f, -0.2084257f,
+ 1.1460875f, -0.23668332f, -0.25610262f, -0.089146174f,
+ -0.77647907f, -0.0037573995f, 0.6741637f, -0.14048773f,
+ -0.6221517f, -0.26196465f, -0.009807167f, -0.38151476f,
+ 0.22459498f, -0.07089305f, 0.16412924f, -0.1293459f,
+ 0.61426514f, -1.0334557f, 0.09514511f, 0.09249334f,
+ 0.26159707f, 0.009998315f, 0.05313337f, -0.5256522f,
+ 0.010847101f, 0.3139725f, 0.6804452f, 0.08978289f,
+ -0.054747127f, 1.0444702f, 0.61659354f, -0.5281457f,
+ -0.58635783f, -0.16936389f, -0.16106062f, 0.071821086f,
+ 0.0426613f, 0.0908802f, -0.60721767f, 0.008533055f,
+ -0.08796371f, 0.24267612f, 0.3807761f, 0.2576938f,
+ -0.6127855f, 0.39873612f, -0.14775804f, -0.02616993f,
+ 0.03520407f, 0.009161252f, 0.054843195f, -0.45530772f,
+ -1.3475534f, 0.11622869f, -0.038118754f, -0.038863886f,
+ 0.7863937f, -0.0852492f, 0.07670303f, -0.12483307f,
+ -0.015962662f, 0.3269995f, -0.65947026f, -0.2022227f,
+ -0.3830443f, 0.26914337f, 0.22080901f, -0.23143372f,
+ 0.19871393f, 0.03182081f, -0.958576f, -0.006148306f,
+ 0.44442523f, -0.5235016f, -0.16473155f, -0.00992192f,
+ 0.22650743f, 0.9199526f, 0.83419585f, 0.07095824f,
+ 0.501555f, 0.7035568f, 0.14709425f, 0.017904542f,
+ -0.2677291f, 0.07288853f, -0.008064132f, -0.06682379f,
+ 0.031798385f, 0.071001664f, -0.6424995f, -0.3486101f,
+ 0.018727992f, -0.2315688f, -0.5667457f, 0.11074876f,
+ 1.9332623f, 0.029474514f, -0.16418712f, 0.04541509f,
+ -0.13292895f, 0.028867874f, -1.3022006f, 0.11640154f,
+ -0.01920953f, -0.62006533f, -0.5505404f, -0.2844522f,
+ -0.52363807f, -0.6837555f, 0.093828715f, -0.09230745f,
+ -0.05048977f, -0.06117303f, 0.01381257f, 0.52368695f,
+ 1.3251978f, -0.6155247f, -0.007610098f, -0.020798478f,
+ -0.5805758f, -0.039119244f, -0.086795874f, 0.08291792f,
+ 0.00070359284f, 0.5588407f, -0.18733822f, 0.062147915f,
+ 0.6697767f, 0.41353896f, 0.025852386f, 0.26192406f,
+ 0.30571306f, -0.056476418f, -0.17157991f, 0.16531716f,
+ 0.2866209f, 0.6697731f, 0.122195944f, -0.113161504f,
+ -0.37391457f, -0.7987454f, 1.2450209f, 0.49019933f,
+ 0.6739932f, -0.098775476f, -0.2564851f, -0.15068254f,
+ -1.5085335f, 0.004130357f, -0.062131178f, -0.33020082f,
+ -0.047211625f, 0.2771528f, 0.53378135f, -0.15624785f,
+ 0.05928804f, 0.06584822f, 0.2984388f, -0.9765585f,
+ 1.2350503f, -0.114633396f, 0.1906955f, -0.21492171f,
+ -0.011633641f, 0.0014652152f, 0.9080829f, 0.1070575f,
+ 0.054358974f, -0.022745285f, 0.3059878f, -0.19808389f,
+ 0.24186097f, 0.39925137f, 0.32213488f, -0.0952274f,
+ -0.10079685f, -0.040156223f, -0.21259901f, 1.2086188f,
+ -0.06512963f, -0.667859f, 0.07060303f, -0.23296306f,
+ -0.12101658f, 0.026949052f, 0.017586801f, -0.1256824f,
+ 0.06511041f, -0.56615907f, -0.2790471f, 0.23111467f,
+ -0.7856691f, 0.20491192f, -0.019779375f, -0.30925414f,
+ 1.0263277f, 0.010791247f, -0.06551615f, -0.012535733f,
+ -0.2902834f, -0.28435728f, 0.010028781f, 0.9002915f,
+ -0.29842392f, 0.3985661f, -0.8614803f, -0.27015483f,
+ 0.51365054f, 0.30395663f, 0.2924699f, 0.117928855f,
+ 0.86165893f, 0.042812224f, 0.024886062f, 0.2530027f,
+ 0.03725419f, -0.4264661f, 0.36368707f, -0.11930596f,
+ 0.032830935f, 0.56772715f, -0.30711728f, -0.3259382f,
+ -0.21833014f, -0.0056141755f, 0.011979107f, 0.07658037f,
+ -0.07724514f, -0.02407712f, 0.9055954f, 0.06467618f,
+ 0.033087723f, -0.1260806f, -0.01599623f, -0.12876435f,
+ -0.78646404f, -0.6839767f, -0.57551366f, -0.008397286f,
+ 0.03154252f, -0.032948818f, 0.0078097503f, -1.1159564f,
+ -0.003287688f, -0.2809574f, -0.07206684f, -0.15683028f,
+ 0.1586368f, -0.07397658f, -0.036657948f, 0.14605394f,
+ 0.30563095f, 0.6291867f, -0.058372285f, 0.030757058f,
+ 0.09309644f, -0.3968637f, -0.10592142f, -0.019093292f,
+ -0.63136995f, -0.0070336834f, -0.7626018f, 0.06323458f,
+ 0.6160151f, -0.60578287f, -0.17923558f, -0.721251f,
+ 0.009235223f, -1.128904f, 0.80081135f, -0.35650787f,
+ 0.5993158f, -0.81332076f, -0.06447643f, -0.1337139f,
+ -0.23357612f, 0.021778248f, 0.0043384563f, -0.1377817f,
+ -0.00035422243f, -0.26804897f, -1.0395012f, 0.1168438f,
+ -0.0004786811f, -0.83572537f, 0.047964826f, 0.8247533f,
+ -0.19838925f, 0.08519004f, 0.010267759f, 0.0269608f,
+ 0.040442836f, 0.00046344128f, -0.22803728f, -0.06039478f,
+ -0.050429977f, 0.92023444f, 0.07921451f, 0.25079146f,
+ -0.13455756f, 0.02780637f, 0.04717037f, 0.059798628f,
+ 0.04714152f, -0.053737387f, -0.0363493f, 0.59416914f,
+ 0.44908488f, -0.5432389f, 0.004431339f, 0.050673325f,
+ 0.19572605f, 0.05607985f, 0.019816888f, -0.12899782f,
+ 0.012221228f, 0.13783246f, -0.14436783f, -0.123618655f,
+ -0.58057165f, 0.10399899f, 0.28930834f, 0.034274314f,
+ -0.6180659f, -0.050233517f, 0.33322468f, -0.08538325f,
+ -0.20860527f, 0.5722944f, 0.20229538f, 0.15640505f,
+ -0.1951563f, 0.035489276f, 0.00260116f, -0.00523914f,
+ 0.11714596f, -0.8656974f, -0.035925325f, -0.042809464f,
+ -0.0925829f, 0.055274587f, 0.029501f, -0.013476584f,
+ 0.029792221f, 0.06604819f, -0.43852723f, 0.076669626f,
+ 0.0159574f, 0.07073936f, -0.05419903f, 0.13199222f,
+ -0.27488518f, 0.11464401f, -0.08425247f, 0.002335409f,
+ -0.06850166f, 0.028359368f, -0.09814469f, 0.09970061f,
+ -0.040130116f, -0.06733076f, 0.03023095f, -0.17323971f,
+ 0.080122925f, -0.51894635f, 0.07574046f, -0.043324634f,
+ 0.008362967f, -0.03865271f, -0.059855856f, -0.0021307615f,
+ 0.0449613f, -0.11843732f, -0.0018252633f, 0.07255008f,
+ -0.013814896f, 0.026467687f, -0.04305411f, 0.14773378f,
+ -0.6031997f, -0.053566556f, 0.4925311f, 0.04727836f,
+ -0.41661814f, -0.14085284f, 0.09322934f, 0.054421626f,
+ 0.3127133f, -0.03891428f, -0.043461114f, 0.011074396f,
+ 0.0878583f, 0.21976912f, 0.80715466f, -0.25358108f,
+ -0.14139654f, 0.024900498f, -0.027325245f, -0.20966733f,
+ 0.2519835f, 0.33201054f, 0.0125616845f, 0.041223172f,
+ 0.15647507f, -0.029423654f, -0.016578779f, 0.065477505f,
+ -0.030167408f, -0.693142f, -0.5450196f, -0.015183359f,
+ -0.021198729f, 0.020915985f, -0.014155954f, -0.13982634f,
+ -0.3610945f, -0.026683128f, 0.061927788f, 0.0660015f,
+ 0.0037778665f, 0.15056227f, 0.09819291f, 0.051851742f,
+ -0.02538399f, 0.29822433f, 0.07628588f, 0.26358724f,
+ -0.09566724f, 0.018405784f, -0.048937846f, 0.044444215f,
+ 0.03675848f, 0.020041034f, 0.007537844f, 0.0031798508f,
+ -0.0019116341f, 0.24465722f, -0.08825009f, 0.07783168f,
+ -0.38458478f, -0.095040455f, 0.055911794f, -0.23567419f,
+ -0.03736208f, -0.032930057f, 0.115403764f, -0.12986329f,
+ 0.33318236f, -0.046051428f, 0.22301817f, 0.10900298f,
+ 0.014938879f, 0.018196408f, -0.17841704f, 0.014522904f,
+ 0.26520267f, -0.32917446f, -0.48388118f, -0.10822693f,
+ -0.17988275f, -0.048920922f, -0.13267308f, 0.10331466f,
+ 0.07292531f, -0.30687705f, -0.02889184f, -0.07767194f,
+ 0.6625633f, -0.035950214f, 0.00012263116f, 0.053871058f,
+ 0.0021171048f, 0.6414839f, 0.008733576f, -0.049900644f,
+ 0.037345998f, -0.076802395f, 0.16524707f, -0.06647357f,
+ 0.15391034f, -0.1342831f, -0.018381879f, -0.025339417f,
+ 0.09712461f, -0.109234326f, 0.0012208272f, -0.08913064f,
+ 0.036340605f, -0.046410896f, 0.08539788f, -0.18656294f,
+ -0.17848419f, 0.30998886f, 0.107010104f, 0.02898396f,
+ -0.077091336f, 0.019933132f, -0.0065363995f, -0.0390339f,
+ 0.08004317f, 1.0556873f, 0.014977172f, 0.04138566f,
+ 0.48318702f, 0.036574647f, 0.0049679894f, -0.094602324f,
+ -0.20561148f, -0.059051894f, -0.02188951f, 0.07656102f,
+ -0.18845052f, 0.098482706f, 0.1237382f, -0.0017177716f,
+ 0.40376475f, 0.00602456f, 0.05508343f, -0.0024579966f,
+ -0.10215995f, 0.255864f, -0.3334859f, 0.29842615f,
+ 0.19806167f, 0.0041016857f, -0.045689475f, -0.22419053f,
+ 0.23886828f, 0.60349303f, 0.14400637f, 0.03463518f,
+ 0.5574547f, -0.076435156f, -0.026638795f, -0.021511849f,
+ -0.049276665f, 0.22524874f, -0.71765876f, -0.05725931f,
+ -0.024562858f, -0.012787695f, 0.04351638f, -0.019371534f,
+ 0.29008928f, -0.042237256f, 0.31514862f, 0.081833325f,
+ 0.08148545f, 0.09293174f, -0.011612612f, -0.16558166f,
+ -0.0096260775f, 0.02161549f, -0.0112405205f, 0.27253276f,
+ 0.31644747f, -0.29599145f, 0.08207675f, 0.050390147f,
+ -0.056033887f, 0.06361624f, 0.13849421f, 0.14592321f,
+ 0.15988418f, 0.40676513f, 0.06298408f, 0.087519154f,
+ -0.54502535f, 0.11638707f, 0.037567124f, 0.010642494f,
+ -1.0438752f, -0.054054935f, 0.073006086f, -0.28454965f,
+ -0.18334194f, -0.14479207f, 0.0424794f, 0.0326943f,
+ -0.59113944f, 0.024888208f, -0.25304464f, -0.015887212f,
+ -0.10324434f, 0.16133873f, -0.5858591f, 0.14103472f,
+ 0.12950052f, -0.018725455f, -9.2088165e-05f, -0.16737019f,
+ 0.06997384f, 0.40152124f, -0.2334527f, 0.05982977f,
+ -1.9532087f, 0.006999352f, -0.023726063f, 0.11998708f,
+ 0.04317772f, 0.9577386f, -0.55170596f, 0.09410102f,
+ -0.035674036f, -0.22209407f, 0.22745277f, 0.11981369f,
+ 0.00730309f, 0.09632823f, 0.0308403f, -0.26484054f,
+ -0.030545844f, -0.35663304f, 0.077793136f, -0.16449389f,
+ 0.107675456f, 0.39692777f, -0.0222415f, -0.4044488f,
+ -0.027650315f, -0.07484659f, -0.12671652f, -0.060629636f,
+ 0.0324065f, -0.052854598f, 0.030305514f, 0.058448207f,
+ -0.032908674f, -2.1542811f, 0.046520453f, -0.18021324f,
+ -0.09497368f, -0.042631783f, 0.04589941f, 0.29218572f,
+ -0.33153504f, 0.022215495f, 0.1762381f, 0.19239554f,
+ 0.3268171f, 0.05581724f, 0.060629424f, 0.018504458f,
+ 0.27673578f, 0.06248363f, 0.08346411f, -0.052171167f,
+ -0.022954326f, -0.21938218f, -0.7242596f, 0.17057201f,
+ 0.4366095f, -0.094539225f, -0.064790055f, -0.28984737f,
+ 0.21500225f, 0.010604105f, 0.17104705f, 0.044787467f,
+ 0.23970021f, 0.106481545f, 0.045397718f, -0.065542795f,
+ 0.013406408f, -0.6831407f, -0.5379205f, -0.12010375f,
+ 0.015249491f, 0.0020471644f, -0.51495075f, -0.029751332f,
+ 0.034397732f, 0.10758866f, -0.22559164f, 0.1284714f,
+ -0.17628571f, 0.19511342f, -0.09805319f, 0.18637644f,
+ -0.111540265f, 0.3081401f, 0.15439875f, 0.095545106f,
+ -0.15705565f, 0.058271613f, 0.14238057f, -0.03784558f,
+ 0.02376647f, -0.103223f, -0.051654853f, 0.012567821f,
+ 0.06581471f, -0.6616009f, -0.023259278f, 0.06969727f,
+ 0.91234076f, -0.06734763f, -0.10037533f, -0.049375407f,
+ -0.31156683f, -0.2306018f, -0.032835282f, 0.030154409f,
+ 0.12369459f, 0.22675847f, 0.0925969f, 0.053020943f,
+ -0.31226787f, -0.08654173f, -0.10802298f, 0.055082303f,
+ -0.11445066f, 0.035009056f, 0.1457155f, -0.32004827f,
+ 0.20039676f, 0.04127983f, -0.1329818f, -0.09584188f,
+ 0.049369767f, 0.35064837f, 0.010994265f, -0.029457219f,
+ -0.54077715f, 0.030342322f, -0.041334983f, 0.008264627f,
+ 0.018087339f, -0.258081f, -0.2162387f, -0.05608222f,
+ 0.017091196f, -0.05847839f, -0.007070343f, -0.03867453f,
+ -0.46562555f, -0.085384905f, -0.25887072f, -0.018860037f,
+ -0.021268746f, -0.03830116f, 0.09298332f, 0.03462217f,
+ -0.00408626f, -0.07375606f, 0.0037044873f, 0.09342416f,
+ -0.19710895f, -0.012752456f, 0.058017038f, -0.073439986f,
+ 0.05719994f, 0.039297033f, -0.047766402f, -0.032661807f,
+ 0.19974704f, 1.271454f, -0.017191906f, 0.06850513f,
+ 0.28166613f, -0.025342416f, -0.08528757f, -0.33707255f,
+ -0.38227063f, 0.10250798f, 0.004841728f, 0.03742791f,
+ 0.32143798f, 0.002745668f, 0.06336381f, -0.018980201f,
+ -0.01793705f, -0.021121351f, -0.085057445f, 0.0048501347f,
+ 0.07522239f, 0.06463435f, 0.2790059f, 0.120004445f,
+ 0.08935567f, -0.1848386f, -0.21225686f, -0.17598732f,
+ 0.12525073f, -0.505394f, -0.04926369f, -0.10178535f,
+ -0.38714752f, 0.0102235535f, 0.053178445f, 0.04799545f,
+ -0.036673207f, -0.35414428f, -0.36733472f, 0.04380015f,
+ 0.0007702168f, -0.14980146f, 0.099212244f, 0.3452338f,
+ 0.772548f, 0.06750321f, 0.1284594f, 0.0060611637f,
+ 0.002968111f, 0.065291315f, -0.01730362f, -0.018455656f,
+ -0.025976017f, 0.14625043f, -0.15938304f, 0.23217082f,
+ -0.20198384f, -0.08315824f, -0.08546721f, 0.04844779f,
+ -0.032480776f, -0.028455008f, -0.009889058f, -0.03184275f,
+ -0.12810597f, -0.42710233f, -0.0109179f, 0.044150945f,
+ -0.62841445f, 0.068451926f, 0.019271798f, -0.09154203f,
+ -0.07783349f, 0.11026129f, 0.060383108f, 0.04872122f,
+ 0.3926573f, 0.012616217f, -0.13129878f, 0.030001648f,
+ -0.10219046f, -0.031074429f, 0.01756158f, 0.031905703f,
+ 0.03530113f, -0.27273118f, 0.5581858f, 0.03489273f,
+ -0.47374326f, 0.04271603f, -0.26016548f, -0.17242143f,
+ 0.083921425f, 0.16273628f, 0.022070494f, 0.06694596f,
+ 1.2020682f, -0.062563635f, -0.0021903757f, -0.057330657f,
+ -0.009245587f, 0.18783298f, -0.19770378f, 0.06958329f,
+ -0.0042164144f, -0.015784578f, 0.10699134f, 0.018414944f,
+ -0.22627847f, -0.07095257f, 0.07595459f, -0.0060155685f,
+ 0.09468074f, -0.06273056f, 0.15193193f, 0.03945303f,
+ 0.045170616f, 0.25282955f, -0.0070595783f, -0.16088043f,
+ -0.019908732f, 0.18589222f, 0.084458575f, 0.010455841f,
+ -0.0152623085f, 0.07215608f, 0.0009366895f, -0.020401377f,
+ 0.20492242f, 0.44521898f, 0.023138275f, 0.028447064f,
+ 0.04365213f, -0.018234678f, 0.056997325f, 0.3157128f,
+ -0.28641942f, 0.04450026f, -0.033620626f, 0.022331519f,
+ 0.34950668f, 0.022177884f, -0.07992645f, 0.018405449f,
+ 0.02057319f, 0.048855215f, 0.043158602f, -0.054629926f,
+ 0.06509705f, 0.2053433f, 0.38571423f, -0.03797933f,
+ 0.083450645f, -0.2056019f, 0.358288f, -1.0882009f,
+ 1.044153f, 0.60942477f, 0.52946913f, 0.17119163f,
+ -1.8241085f, 0.0012870888f, -0.40640578f, -0.8919643f,
+ -0.045026515f, -0.19109821f, 0.105489105f, 0.1347114f,
+ 0.32410064f, -0.28438863f, 0.28246036f, 0.4698521f,
+ -0.024851965f, 0.31705162f, -0.012393425f, 0.3228989f,
+ -0.38239938f, -0.03573651f, -0.116464615f, 0.14770032f,
+ 0.18008621f, -0.28077868f, -0.16730845f, 0.7642431f,
+ 0.05702368f, -0.3618613f, -0.03752008f, 0.1276643f,
+ 0.585361f, 0.13131131f, 0.34870395f, 0.097988956f,
+ -0.9440607f, -0.8156008f, 0.542215f, -1.0622357f,
+ -1.2093229f, -0.028241295f, -0.37565634f, 0.056919876f,
+ -0.2566839f, 0.3706058f, -1.5781128f, -0.034979932f,
+ 0.44122815f, 1.5565364f, -1.092863f, -0.26069966f,
+ -0.39675742f, -0.2280764f, -0.45980212f, -0.06134742f,
+ -0.6439414f, -0.678432f, -0.6946537f, -0.4837176f,
+ 0.22989343f, -0.16262585f, -0.10763161f, 1.2735995f,
+ -2.611971f, 0.32058582f, 0.22926573f, -0.10774189f,
+ -0.04344231f, 0.24270056f, 0.16497988f, 0.15714072f,
+ 0.2453246f, 0.12365604f, -0.3913497f, 0.61954415f,
+ -0.17122683f, -1.4253494f, 0.1127127f, 0.023995692f,
+ 0.024869462f, -0.29902044f, -0.26263312f, 0.47802868f,
+ -0.32147306f, 0.077146426f, 0.010293978f, -0.21543998f,
+ -0.10336599f, -1.2145187f, -0.17670819f, -0.4002358f,
+ 0.22584915f, -0.21680029f, 0.48625138f, 0.49151638f,
+ -0.13093252f, -0.26237968f, -0.5278925f, 0.16321336f,
+ 0.5690105f, -0.5112523f, -0.089270934f, -0.13898171f,
+ -0.47337592f, -0.3744153f, 0.057539985f, 0.5580325f,
+ -0.035433862f, 0.6760848f, 0.19995344f, -0.54381245f,
+ -0.22176597f, -0.12168725f, -0.42341638f, -0.7986522f,
+ -0.28170484f, 0.22935377f, -0.53817356f, -0.030964233f,
+ 0.7528043f, 0.24753556f, -0.916136f, -0.42756617f,
+ -0.7561556f, 0.4255967f, 0.061073612f, -1.4448339f,
+ 0.57950056f, -0.1127676f, -0.7141033f, -0.25081292f,
+ -0.8253535f, -0.060443986f, -0.20467696f, -0.04282472f,
+ -0.07094801f, -0.49331743f, -0.46969727f, -0.19542745f,
+ -0.0876794f, 0.46404946f, -0.20085783f, 0.5877174f,
+ 0.82792497f, 0.1019625f, -0.42393664f, -0.32311028f,
+ 0.2498841f, -0.45480978f, -0.23881118f, -0.27658638f,
+ 0.07408136f, -1.1649203f, 0.6975732f, 0.94062513f,
+ 1.1708267f, 0.12317601f, 0.9348379f, -0.4419651f,
+ -0.014853415f, 0.21758366f, -0.33138883f, 0.39484277f,
+ 1.1961426f, -0.11841996f, 0.019238638f, -0.1836641f,
+ 0.47974685f, 0.051553432f, 0.04099308f, 0.37553495f,
+ -0.04412717f, -0.71599615f, -2.0871377f, 0.23622243f,
+ 0.6459249f, -0.06223594f, 0.01071146f, 0.031624436f,
+ 0.6049173f, 0.13436185f, -0.16711712f, -0.23211168f,
+ -0.17078047f, 0.25401577f, -0.62266016f, 0.15229857f,
+ 0.47099158f, -0.1020257f, 0.082030706f, 1.9658407f,
+ -1.0350881f, -0.42723382f, -0.7016447f, 0.04670338f,
+ -0.19755244f, 0.013301972f, -0.0843772f, -0.3032081f,
+ -0.088372536f, 0.50299686f, 0.14063622f, -0.21735144f,
+ 0.047415778f, 0.8248845f, -0.5983825f, -0.3560128f,
+ 0.40233958f, 0.25023186f, 0.5597686f, 0.048692603f,
+ 0.029116515f, 0.66833055f, 0.46785906f, 0.3770389f,
+ -0.15532613f, -0.77030236f, -1.0823834f, -0.103778824f,
+ 0.21527937f, -0.22081487f, 0.40046063f, -0.16350305f,
+ 0.18020043f, -0.22445558f, 0.074948095f, 0.2930067f,
+ 0.87447053f, -0.34310904f, -0.30743968f, -0.10708731f,
+ 0.53745425f, -0.23701525f, -0.087258264f, 0.12586306f,
+ 0.17686228f, 0.81247056f, 0.70698035f, -0.019617625f,
+ -0.30278456f, -0.11351319f, -0.016652435f, -0.6788282f,
+ -0.037676774f, -0.17413494f, 0.19457111f, 0.21033093f,
+ -0.6760032f, 0.013517719f, 1.0470651f, 0.6049789f,
+ 0.6288979f, -0.31071478f, -0.18501133f, 1.4159018f,
+ -0.6813209f, 0.62685686f, -0.1943052f, -0.43075526f,
+ 0.11530699f, -0.09271856f, 0.19049548f, -1.0824263f,
+ -0.24771369f, 0.30014816f, -0.25779402f, -0.558056f,
+ -0.28753507f, -0.10797906f, -0.6166454f, -0.2680475f,
+ -0.47127837f, -0.7913265f, -0.37690642f, -0.39561892f,
+ 0.3623609f, -0.39860597f, 0.0044880705f, -0.32289577f,
+ 0.0012867454f, 0.35456374f, -0.453609f, -0.07697117f,
+ 1.2348375f, 0.24440674f, -1.2021745f, -0.117406376f,
+ -0.5603675f, 0.53386307f, -0.4103858f, -0.23553623f,
+ 0.3467846f, 0.75063777f, 0.1739982f, -0.5524879f,
+ 0.08997544f, 0.43330318f, 0.3974208f, -0.8853856f,
+ 0.059675336f, 0.02051778f, -0.31207734f, 0.11403173f,
+ -0.20904896f, 0.96798736f, -0.67174447f, 1.4474494f,
+ 0.7669279f, 0.27112728f, -0.28151667f, -0.4089763f,
+ 0.35902214f, 0.07160823f, -0.22646423f, 0.04928117f,
+ -0.1689081f, 0.40036663f, 0.6520693f, -0.0034064364f,
+ -1.9463657f, -0.6876552f, 0.48765022f, 0.25040662f,
+ -0.4383839f, -0.019953832f, 0.17643201f, -1.0856259f,
+ 0.17170754f, -0.29958314f, 0.18900517f, -0.22230405f,
+ 0.29309648f, 0.61689705f, -0.12724441f, -0.025701733f,
+ 0.30646983f, 0.3160884f, 0.103363976f, 0.47214168f,
+ -0.40639544f, 0.16798943f, -0.4056602f, 0.16192232f,
+ -0.2433146f, 0.3156634f, 0.12446241f, 0.13740478f,
+ 1.1481255f, -0.40750894f, -0.24632198f, 0.38345858f,
+ 0.23181187f, -0.12458214f, 0.55260915f, 0.36951035f,
+ 1.0608115f, 0.065695375f, -0.3929051f, -0.7730389f,
+ 0.33882374f, -0.16737732f, -0.37586585f, -0.6486304f,
+ 0.59434557f, 0.5104995f, 0.6835494f, -0.31424f,
+ 0.44700137f, 1.2851278f, -1.6675832f, 0.623858f,
+ -1.5100291f, -0.054602467f, -0.333511f, 0.48459032f,
+ -0.79561335f, -1.4744688f, 0.095201f, -0.12154154f,
+ -1.1413202f, 0.33304033f, 0.104119875f, 0.82653445f,
+ 0.5435994f, -0.2459473f, 0.6843038f, 0.03328334f,
+ 0.040256664f, -0.36663797f, 0.031372923f, 0.5187517f,
+ -0.33250263f, -0.8999336f, 0.15354332f, 0.06872961f,
+ -0.3084415f, 0.39192817f, -0.008069584f, 0.467933f,
+ -0.2598401f, -0.23233555f, -0.30384022f, 0.24552047f,
+ 0.60668766f, -0.6172334f, 0.08353358f, -0.20711657f,
+ 0.15435556f, 0.06591085f, -0.47658026f, 0.11396906f,
+ 0.060872313f, 0.12730353f, -0.4412255f, -0.19491428f,
+ -0.20736921f, 0.26570243f, 0.07266886f, -0.87864345f,
+ 0.12027917f, 0.89910346f, 0.004021042f, -0.12597956f,
+ -0.5005522f, -0.2594626f, 0.27693585f, -0.1975162f,
+ 0.23649012f, -0.74032015f, 0.66533715f, 0.09813386f,
+ -0.095797956f, 0.78329504f, 0.03894108f, 0.2600313f,
+ 0.21491526f, 0.43557665f, 0.07051936f, -0.016994504f,
+ -0.6179088f, -0.84454274f, -0.14589027f, -0.62441564f,
+ 0.055187084f, 0.88941365f, -0.1611365f, 1.061542f,
+ -1.1135242f, -0.047069337f, 0.0027583756f, 0.47472024f,
+ 0.24089485f, 0.45424578f, -0.17691202f, 0.33808511f,
+ 0.13184914f, -0.14672372f, 0.5337783f, -0.45010135f,
+ 0.050212324f, 1.1198629f, -0.09433707f, 0.35054207f,
+ 0.62961537f, 0.7061329f, 0.075172625f, -0.5544752f,
+ -0.6751163f, 0.85378224f, 0.06747978f, 0.6898708f,
+ 0.19000822f, 0.34473783f, 0.2162532f, -0.12841563f,
+ 0.4758548f, -0.12708929f, -0.5343015f, 0.17163843f,
+ 0.1667517f, -0.60513604f, 0.068472296f, 0.4653672f,
+ -0.6883127f, -0.3687341f, -0.14774673f, 0.5040236f,
+ -0.061768804f, 0.39860982f, -0.2722613f, 0.46524942f,
+ -0.069615565f, -0.5671665f, -1.1470032f, 0.0029101607f,
+ -0.234087f, -0.59108937f, -0.57663757f, -0.31406483f,
+ -0.7290447f, -0.5914177f, -0.17671376f, 0.15291344f,
+ 0.51567334f, -0.25655967f, -0.0041443133f, 0.32849684f,
+ 0.6603981f, -0.43965346f, 0.80735177f, -0.4136831f,
+ 0.40081325f, -0.86360306f, -0.22692303f, -0.10903406f,
+ -0.32340142f, -0.103011906f, 0.16439182f, 0.04877923f,
+ 0.1163151f, 0.2787956f, -0.044044726f, 0.678549f,
+ -0.21955304f, 0.18426646f, -0.4226142f, -0.53545576f,
+ -0.078463405f, -0.73717284f, 0.36240867f, -0.10807578f,
+ 0.6848249f, -0.42180544f, -0.39974517f, -0.45373315f,
+ 0.028324144f, 0.010423883f, -0.40237695f, -0.82905644f,
+ 0.67499435f, -0.4946653f, 1.0033568f, -0.15230036f,
+ -0.20820028f, 0.055031896f, 0.06604315f, -0.62878484f,
+ 0.17516342f, -0.8471482f, 0.12370939f, -0.45752007f,
+ -0.8929914f, 0.08515097f, 0.20184872f, 0.15763508f,
+ -0.12390233f, -0.07191736f, -0.18788448f, 0.22214134f,
+ -0.35155746f, 0.077534735f, -0.24705337f, -0.11001194f,
+ 0.9777664f, 0.0157249f, 0.2495829f, -0.24164297f,
+ 0.28684118f, -0.0033102063f, 0.17487507f, 0.23404348f,
+ 0.83881474f, -0.22542179f, 0.42540705f, -0.052471526f,
+ -0.22842456f, -0.6482513f, -0.18793747f, -0.03891399f,
+ -0.385602f, 0.01409772f, -0.025861084f, -0.18257532f,
+ 0.018620536f, 0.807893f, 0.34302884f, 0.226538f,
+ 0.008107096f, -0.15362194f, 0.2106726f, 0.15435657f,
+ -0.063385814f, 0.02306741f, -0.062045667f, -0.030209655f,
+ -0.019865485f, 0.115513995f, 0.059663016f, 0.10915979f,
+ 0.032092556f, -0.73745036f, -0.046913434f, -0.013790757f,
+ -1.0506297f, -0.06347237f, 0.06899522f, 0.06358993f,
+ -0.005616155f, -0.03868455f, -0.08406336f, 0.2705623f,
+ -0.15526614f, -1.3583297f, -0.034353364f, -0.04085379f,
+ -0.4058035f, 0.037089746f, -0.021816822f, -0.033885572f,
+ -0.05425518f, -0.08090516f, -0.47352013f, 0.08861752f,
+ -0.12779719f, -0.18638043f, 0.65598935f, 0.4483629f,
+ 0.16323844f, -0.0013124751f, -1.1546323f, -0.026041446f,
+ 1.4719104f, 0.27507696f, -0.09853977f, 0.48301107f,
+ -0.055092975f, -0.0021558306f, -0.123419754f, 0.08789823f,
+ 0.14127444f, 0.35247764f, 0.027389875f, -0.07424099f,
+ -0.8194371f, -0.032314245f, 0.054060243f, -0.3511914f,
+ -0.013870435f, -0.10766958f, -1.2878389f, -0.093141876f,
+ 0.02230611f, -0.15411167f, -0.15198158f, -0.40860695f,
+ 0.9804649f, -0.14425975f, -0.0017612803f, 0.044158444f,
+ 0.12107767f, 0.0085802805f, 0.32524484f, -0.043096177f,
+ -0.010890007f, 0.8900256f, 0.2169005f, 0.11960884f,
+ 0.01940146f, -0.10827106f, -0.25649926f, 0.025289278f,
+ 0.025809389f, -0.003964918f, -0.0026415128f, 0.089264624f,
+ 0.056359295f, 1.0149777f, 0.007716795f, -0.14280821f,
+ 0.73995674f, 0.0022680138f, 0.092453845f, -0.12598555f,
+ 0.5985929f, 0.0146993315f, 0.42985445f, -0.2383876f,
+ -0.4245343f, 0.27161863f, -0.47457674f, 0.077847086f,
+ 0.23202552f, 0.023201494f, 1.1420712f, 0.02935379f,
+ -0.7149181f, -0.103931904f, -0.5160322f, 0.44414338f,
+ -0.11529765f, 0.12552463f, -0.2438265f, -0.18581007f,
+ -0.13946258f, 0.4106759f, -0.03332496f, 0.037752327f,
+ 1.0833697f, 0.022708151f, -0.017032389f, -0.45351762f,
+ 0.0048614233f, 0.017458208f, 0.72962f, 0.022985749f,
+ -0.026920151f, -0.1022245f, 0.86617666f, -0.13487138f,
+ -0.9588706f, 0.123404525f, 0.20865f, -0.10652318f,
+ -0.022648824f, -0.111448556f, -0.50854766f, -0.17891292f,
+ 0.022291685f, -1.5728515f, -0.077521846f, -0.17620148f,
+ 0.66591465f, 0.4299335f, 0.076023795f, -0.09009821f,
+ -0.028997676f, 0.023018539f, 0.06631375f, -0.012910832f,
+ -0.0062745526f, -0.55719316f, 0.07566465f, 0.0036650451f,
+ -0.43298128f, 0.07337934f, -0.029948123f, 0.13891327f,
+ 0.07493859f, 0.18504022f, 0.2156894f, 0.024617422f,
+ 0.36001602f, -0.11752038f, 0.009000096f, 0.73129135f,
+ -0.34217682f, -0.034240283f, 0.002510548f, -0.029349605f,
+ -0.6221527f, -0.47681558f, 0.085723184f, -0.062252253f,
+ -0.34489903f, -0.5360168f, -0.22219957f, 0.7506494f,
+ -0.5696562f, -0.14934765f, 0.19206484f, 0.030275784f,
+ 0.2029586f, 0.023250317f, -0.035402305f, -0.29095113f,
+ -0.026049087f, -0.9176904f, 0.3501906f, -0.13431224f,
+ 0.02409908f, -0.1159863f, -0.35926563f, 0.70488894f,
+ 0.3380317f, 0.16890015f, -0.074252315f, 0.014093355f,
+ -0.034493376f, -0.06919091f, -0.49504325f, -0.09868316f,
+ -0.10538576f, 0.6997738f, -0.47130764f, 0.16635568f,
+ -0.3032287f, -0.26011097f, 0.42030513f, -0.07309035f,
+ 0.017553173f, 0.025072267f, 0.06574672f, 0.51846313f,
+ 0.21806413f, -0.4637822f, 0.050079398f, -0.799587f,
+ -0.7412161f, 0.060720433f, -0.10816809f, 0.07520536f,
+ 0.05993971f, -0.008011817f, 0.1401349f, -0.08820212f,
+ 1.2068778f, -0.23734984f, 0.06474299f, 0.11876477f,
+ -0.22189152f, -0.05809778f, -0.7315599f, -0.014096887f,
+ 0.8676675f, 0.8355453f, -0.77931076f, -1.1689545f,
+ -0.30085576f, 0.7863224f, 0.90634686f, -0.36906686f,
+ 0.103761524f, -0.12583199f, 0.10524085f, 0.11346452f,
+ -0.23665114f, 0.0063471887f, 0.028126238f, 0.029605132f,
+ 0.004013499f, -0.2748748f, -0.21146892f, -0.1833483f,
+ -0.02952502f, 0.3847396f, -0.46601138f, -0.4294855f,
+ -0.29386744f, -0.03917718f, -0.15225103f, 0.058285076f,
+ -0.05847375f, -0.077214465f, 0.7866027f, 0.0015675143f,
+ 0.02396371f, -0.32072708f, 0.35563022f, -0.21267937f,
+ -0.1376756f, 0.020231163f, 0.16707434f, -0.041776355f,
+ -0.031580504f, 0.05055598f, 0.01835352f, 0.026567314f,
+ 0.10592048f, 0.2901674f, -0.018138314f, -0.23337947f,
+ 1.2276589f, -0.08656278f, -0.028930152f, 0.15770397f,
+ -0.2153408f, 0.4930523f, -0.012054784f, 0.11864388f,
+ -0.03955723f, 0.369444f, 0.036490634f, -0.6854791f,
+ -0.26746598f, 0.04151133f, -0.03418111f, -0.0021040107f,
+ -1.1314867f, -1.7973019f, 1.0995361f, -0.4223585f,
+ 0.123772256f, 0.13284302f, -0.40324798f, -0.23015608f,
+ 0.022220118f, -0.0521992f, 0.047053993f, -0.1458724f,
+ 0.61582935f, -0.010940314f, 0.02309852f, 0.5510888f,
+ -0.025481382f, 0.48858052f, 0.56404006f, 0.18750401f,
+ 0.08141806f, -0.1330789f, -1.2552463f, 0.014918115f,
+ -0.3184838f, -0.24319987f, -0.13537595f, 0.12991413f,
+ 0.043316886f, 0.30099955f, -0.5867024f, 0.20107533f,
+ -0.100704335f, 0.08381246f, 0.13975249f, 0.4465769f,
+ 0.8555343f, -0.9800004f, 0.21368428f, 0.029567746f,
+ -0.030921435f, -0.044012766f, -0.11983341f, 0.081940345f,
+ 0.05426562f, 0.42579353f, -0.10281679f, 0.08174194f,
+ -0.5254476f, 0.018183528f, 0.015078943f, -0.47436664f,
+ 0.71115553f, -0.084686086f, 0.28711307f, -0.16743268f,
+ -0.88483286f, 0.036369745f, -0.699635f, 0.57981485f,
+ 0.07395088f, -0.027746355f, 0.38329363f, 0.048160814f,
+ -0.48856238f, 0.94215345f, -0.08135651f, 0.52295256f,
+ 0.38380122f, 0.44679645f, -0.9246708f, 0.5382405f,
+ 0.24365442f, -0.07851298f, -0.07978662f, 0.020387221f,
+ -1.042572f, -0.017548934f, 0.050063577f, -0.07079492f,
+ 0.033977587f, -0.033836074f, -0.16570474f, -0.028007824f,
+ -0.02745118f, 0.16171895f, 0.2863449f, 0.42538014f,
+ 0.071190715f, -0.106946714f, 0.077149324f, -0.017511066f,
+ 0.010313906f, -0.02020257f, -0.6086891f, 0.067865364f,
+ 0.079415396f, 0.7951488f, 0.035485577f, -0.115792215f,
+ 0.044399977f, 0.15395749f, -0.57748145f, 0.035166442f,
+ 0.03363195f, -0.0018181932f, 0.0058281934f, -0.060950108f,
+ 0.23513916f, 0.21932933f, -0.025450082f, 0.039933585f,
+ 0.020181186f, -0.13528074f, 0.12502548f, -0.012832133f,
+ -0.15209626f, -0.061354302f, 0.27357903f, 0.11969375f,
+ 0.9774421f, -0.020659398f, -0.13304351f, 0.03136183f,
+ -0.024932224f, 0.06778447f, 0.066350095f, 0.0450947f,
+ 0.1241216f, 0.39478204f, 0.54828393f, 0.7507089f,
+ -0.091692686f, -0.1510089f, 0.3122869f, -0.17290235f,
+ -0.28127065f, 0.21823879f, -0.19811906f, -0.10285659f,
+ 0.5137003f, 0.021810595f, -0.091129825f, -0.025261836f,
+ -0.017303713f, 0.1304148f, 0.167887f, 0.32487285f,
+ 0.009758346f, 0.070517704f, 0.89254165f, 0.61171085f,
+ -0.04351889f, 0.25184458f, 0.18591322f, -0.11174088f,
+ -0.021932485f, 0.039278604f, 0.41256437f, -0.04473867f,
+ -0.023695583f, 0.2692141f, 0.39933437f, 0.016640523f,
+ -0.9400198f, -0.5061974f, -0.24067399f, -0.001671439f,
+ -0.03806221f, -0.045066215f, -0.0042813146f, -1.324335f,
+ -0.49878275f, 0.4908444f, 0.03306541f, 0.08721119f,
+ 0.4191362f, 0.1491101f, -0.0826661f, 0.029075406f,
+ -0.25978008f, 0.60065776f, -0.14797838f, 0.01900812f,
+ 0.6658604f, -0.53679836f, 0.09356017f, -0.31625256f,
+ 0.23897965f, -0.09569908f, -1.2132516f, -0.041036315f,
+ 1.1960022f, -0.61271214f, -1.0867038f, -0.13655539f,
+ -0.6903238f, -0.66808784f, 0.25309324f, -0.38216522f,
+ 0.4631876f, 0.14079663f, 0.1393085f, 0.18622932f,
+ 0.16191109f, -0.03341815f, 0.021179227f, -0.13082092f,
+ 0.013947325f, -0.032160155f, 0.08793378f, -0.33516377f,
+ -0.065987945f, 0.08167207f, -0.23970033f, -0.56101996f,
+ 0.23441724f, -0.06946498f, -0.05778444f, 0.042477865f,
+ -0.008582049f, -0.18184909f, 0.28555623f, -0.011663777f,
+ 0.08027615f, -0.89709777f, -0.117182955f, -0.22450559f,
+ 0.29070222f, 0.5108636f, -0.20202552f, 0.055749323f,
+ 0.058570117f, 0.03941668f, 0.04774472f, 0.6013319f,
+ -0.39078993f, -0.2800138f, 0.012014207f, 0.46593022f,
+ -0.38271514f, -0.13028522f, 0.0466364f, 0.23257673f,
+ 0.30463222f, 0.17147174f, -0.081799924f, 0.11164196f,
+ -0.29176173f, 0.40660155f, 0.013120791f, 0.049147576f,
+ 0.1348603f, 0.09571338f, 0.22297016f, -0.0048430036f,
+ -0.29183993f, -0.080149636f, 0.98867273f, -0.42477462f,
+ 0.14125037f, -0.15236619f, 0.07668971f, 0.07367287f,
+ 0.16909324f, -0.5872007f, 0.10413014f, -0.036060452f,
+ 0.3397712f, 0.017834008f, 0.0039518797f, -0.060676493f,
+ 0.0018474603f, 0.11961344f, -0.20273492f, -0.012329253f,
+ 0.0047954596f, 0.07282419f, 0.22507744f, -0.14886768f,
+ 0.11863162f, 0.13861685f, 0.016758215f, 0.02013503f,
+ 0.0045134695f, 0.011718989f, 0.002748964f, -0.075596265f,
+ -0.011712068f, 0.07798186f, 0.038924433f, -0.040117968f,
+ -0.26597247f, -0.26836404f, -0.15031657f, 0.06412936f,
+ -0.022661095f, -0.045577742f, 0.09630472f, 0.044398304f,
+ 0.26439965f, -0.59739184f, -0.029713254f, 0.034264956f,
+ -0.47582313f, -0.007488266f, -0.014151966f, -0.04606333f,
+ -0.52177995f, -0.05966401f, 0.09785432f, 0.030099412f,
+ -0.20991123f, -0.03186619f, 0.02653129f, 0.015377654f,
+ -0.09675592f, 0.021038821f, -0.14438842f, 0.04725056f,
+ 0.17602092f, 0.22639449f, 0.029015718f, 0.003540292f,
+ 0.3963309f, 0.03633355f, -0.037667062f, 0.0029432338f,
+ 0.033039298f, -0.11814088f, 0.063022956f, 0.096477985f,
+ 0.32327405f, -0.06641153f, -0.002913001f, 0.08236357f,
+ 0.007286919f, 0.008138094f, -0.32232353f, 0.052288216f,
+ 0.020100998f, 0.01981959f, -0.2436155f, -0.020917388f,
+ 0.016201653f, -0.21305093f, 0.16250795f, 0.069503166f,
+ -0.023492597f, -0.05491178f, -0.03821593f, 0.029247567f,
+ 0.058607068f, 0.27676147f, 0.05213959f, 0.2575385f,
+ -0.05693815f, -0.09989158f, 0.13276483f, -0.07997532f,
+ 0.0038764423f, 0.06716401f, -0.011303134f, 0.09842928f,
+ -0.051532324f, 0.37682667f, 0.020646878f, -0.0795555f,
+ 1.3190744f, -0.07176431f, 0.007819862f, 0.0967179f,
+ -0.4524294f, -0.07631972f, 0.21985193f, 0.045916717f,
+ -0.15803592f, -0.056865104f, 0.15264519f, -0.09435941f,
+ 0.20782973f, -0.013020401f, 0.1073965f, -0.035447758f,
+ -0.23486727f, -0.076234944f, 0.07961807f, 0.010383793f,
+ -0.31449646f, 0.06376128f, 0.0861105f, 0.030919312f,
+ -0.13965851f, 0.5403995f, 0.024138385f, -0.06353013f,
+ 0.46644062f, 0.083194666f, 0.012389875f, -0.016152445f,
+ -0.006783016f, 0.32259023f, 0.15920673f, -0.19443277f,
+ 0.009236937f, -0.04102693f, -0.22377977f, 0.022489842f,
+ -0.3652825f, 0.007646732f, -0.26162547f, -0.0022239091f,
+ 0.005867499f, 0.10476531f, -0.011349147f, 0.03798596f,
+ -0.05398975f, 0.03910385f, 0.006285599f, -0.13208169f,
+ -0.22152805f, 0.099245876f, -0.004322013f, -9.509421e-05f,
+ -0.042095367f, -0.041017924f, -0.064411856f, -0.0012669074f,
+ 0.022868663f, 0.9218253f, -0.008126677f, 0.014452345f,
+ -0.5830466f, 0.06417363f, -0.00021276096f, -0.32459328f,
+ -0.3337733f, 0.013773942f, 0.10961584f, -0.11622109f,
+ -0.17915788f, -0.0062717395f, 0.14177714f, -0.024184566f,
+ -0.016976327f, -0.028730629f, 0.089368805f, 0.025500331f,
+ -0.12435368f, 0.3821977f, 0.09815966f, 0.2372888f,
+ -0.2001616f, -0.094151646f, 0.13730365f, -0.23135786f,
+ 0.17366068f, 0.5909085f, -0.045926567f, -0.040017385f,
+ -0.6347851f, 0.049142588f, 0.012359564f, -0.07764271f,
+ 0.013706438f, -0.30569544f, -0.4188995f, -0.032829396f,
+ -0.027678736f, -0.39007077f, 0.0609978f, 0.42681074f,
+ 0.027090138f, 0.04412078f, -0.085337415f, 0.008659137f,
+ -0.026561497f, -0.21243952f, -0.23448537f, 0.08747087f,
+ 0.066460885f, 0.09411147f, -0.06918915f, 0.09436527f,
+ -0.28500426f, -0.32312226f, 0.025611084f, -0.05471338f,
+ 0.0072577796f, 0.00909815f, -0.060006205f, -0.091098145f,
+ -0.46802494f, -1.2293334f, 0.07917287f, -0.016595934f,
+ -1.16504f, 0.053803295f, 0.0027831215f, 0.008942599f,
+ -0.3948617f, 0.043518443f, 0.076131225f, 0.0019365374f,
+ 0.03792635f, -0.12072798f, 0.16312622f, -0.005161815f,
+ 0.21799773f, -0.08797399f, -0.36014968f, -0.04138602f,
+ 0.3432428f, 0.18298411f, -0.49255306f, -0.14481449f,
+ -0.035866823f, 0.33912277f, -0.58728445f, -0.077401176f,
+ 0.09390359f, 0.005027801f, 0.009428041f, 0.033340048f,
+ -0.77751267f, 0.03695808f, 0.010304726f, 0.13201615f,
+ -0.015504159f, 0.33457273f, -0.26540363f, -0.042766355f,
+ -0.008469715f, 0.08982861f, 0.2994518f, -0.17007865f,
+ -0.060060877f, -0.017789882f, 0.0017739394f, -0.02445482f,
+ -0.00090395124f, 0.14287603f, 0.1677182f, 0.037914626f,
+ -0.07026462f, -0.10107948f, -0.3544169f, -0.41454762f,
+ -0.07993743f, -0.18077761f, -0.3115857f, 0.11889164f,
+ 0.10182317f, -0.07480821f, -0.061138477f, -0.30948734f,
+ 0.012147854f, 0.67344695f, -0.08709873f, -0.053990893f,
+ 0.35136977f, -0.019170972f, 0.08478967f, 0.08622846f,
+ -0.4635361f, 0.51478165f, 0.1544301f, -0.21340562f,
+ 0.13834846f, -0.016002057f, 0.20692965f, -0.045034662f,
+ -0.29404634f, 0.04912065f, 0.021004405f, 0.062051933f,
+ -0.20589022f, -0.42532277f, -0.84776926f, -0.25284198f,
+ 0.32029763f, -0.048092995f, 0.29214215f, 0.013360718f,
+ 0.056429777f, -0.08105883f, -0.09573517f, -0.039495274f,
+ -0.68320733f, -0.08515952f, -0.0009714131f, -0.017794726f,
+ 0.007969696f, -0.0154107595f, 0.06578462f, 0.22468108f,
+ 0.010683868f, 0.078772165f, 0.71895224f, 0.08367409f,
+ 0.40069708f, 0.06394202f, 0.0057395925f, 0.04232173f,
+ 0.017837223f, -0.07999653f, -0.23450539f, -0.08942668f,
+ 0.0021339576f, -0.36597013f, -0.08268445f, 0.14542471f,
+ -0.103312716f, 0.06853057f, -0.19572325f, -0.04905481f,
+ -0.033108562f, 0.044934466f, 0.056781884f, -0.014311305f,
+ 0.06620044f, -0.399756f, 0.015141333f, -0.03395024f,
+ -0.17511815f, -0.026046228f, -0.06587936f, 0.19412749f,
+ -0.47727558f, 0.030411286f, 0.050053142f, 0.2237644f,
+ -0.09887422f, 0.07958338f, 0.17883447f, 0.065223f,
+ 0.1847929f, 0.021962825f, 0.0034403224f, -0.079108335f,
+ -0.08721893f, -0.4224761f, -0.06399271f, 0.21978581f,
+ 0.38157937f, -0.09036889f, -0.15084481f, -0.1526548f,
+ 0.119625084f, -0.13855726f, 0.059266847f, 0.018215675f,
+ -0.010894182f, -0.07294883f, -0.010505289f, -0.055377163f,
+ -0.009961642f, 0.28147355f, -0.41619828f, -0.0042752232f,
+ 0.01989256f, 0.28272712f, 0.07361208f, -0.4894521f,
+ -0.10971263f, -0.14463621f, 0.123867676f, -0.05232632f,
+ 0.017162347f, 0.13102657f, -0.06829646f, -0.020931115f,
+ -0.06570789f, 0.009729908f, -0.011494637f, 0.10395261f,
+ -0.012305775f, -0.12419146f, 0.06485625f, -0.05503147f,
+ -0.034246754f, 0.05284914f, 0.013604411f, -0.09160792f,
+ 0.2508606f, 0.8492047f, -0.03032245f, -0.06467645f,
+ 0.28363255f, -0.0058166864f, -0.0034620622f, -0.024337957f,
+ -0.60226053f, -0.058378335f, -0.069567025f, -0.031342335f,
+ 0.29467267f, -0.10145354f, -0.13428536f, 0.005052874f,
+ -0.4197696f, 0.026848238f, 0.109865285f, 0.018523974f,
+ 0.11763328f, 0.1393914f, 0.35343534f, 0.109018154f,
+ -0.48544922f, 0.1368299f, 0.49552563f, -0.10577518f,
+ 0.045806605f, 0.31055748f, -0.18309835f, -0.17413588f,
+ 0.560546f, 0.033812296f, 0.0024860406f, 0.01574145f,
+ 0.014599452f, -0.40420765f, -0.29772767f, 0.00468128f,
+ -0.028804325f, 0.2753411f, -0.14398248f, -0.26464728f,
+ 0.18493845f, 0.28276762f, -0.1376211f, -0.042958207f,
+ -0.0033873017f, -0.10997798f, 0.077272855f, -0.017184507f,
+ 0.079803914f, 0.038206805f, 0.094064325f, 0.048848942f,
+ 0.22124124f, -0.049226128f, 0.16821276f, 0.0005571599f,
+ -0.047699716f, -0.017951379f, -0.0045715286f, 0.18363976f,
+ -0.33406708f, -0.78665245f, 0.06721005f, -0.09595573f,
+ 0.48394442f, 0.055823058f, -0.037521962f, -0.10687211f,
+ -0.4911064f, -0.017642232f, 0.0067783683f, 0.19611596f,
+ 0.3397407f, 0.0707443f, 0.124095924f, -0.058695804f,
+ 0.5562523f, -0.017490463f, 0.031185184f, -0.045185555f,
+ -0.2909993f, -0.26819518f, 0.49520794f, 0.22235957f,
+ -0.20119916f, -0.110272154f, -0.22553514f, -0.07978957f,
+ 0.01880893f, -0.7143089f, 0.06771368f, 0.19614862f,
+ 0.25629783f, 0.0068488107f, -0.04071218f, 0.017471593f,
+ -0.0076234974f, -0.37783563f, -0.23673432f, 0.032234915f,
+ 0.0057667717f, -0.054811515f, -0.33052707f, 0.06486647f,
+ -0.2461012f, -0.18012646f, 0.14665681f, -0.022205314f,
+ 0.015025584f, 0.07254283f, -0.05741594f, 0.029579304f,
+ -0.008596518f, 0.22286049f, 0.091302015f, -0.11564156f,
+ -0.3172151f, -0.072401375f, -0.020854922f, 0.063183054f,
+ 0.06481689f, 0.005271729f, 0.019181084f, 0.07117706f,
+ -0.009447056f, 0.20694615f, -0.030661881f, 0.03192281f,
+ 0.2319241f, -0.041075595f, 0.023072409f, 0.22021848f,
+ -0.25272888f, -0.07822297f, 0.0059068017f, -0.12660635f,
+ 0.1333056f, -0.016372683f, 0.076377876f, -0.06776241f,
+ -0.2687813f, 0.018672787f, 0.10857218f, 0.033806548f,
+ -0.12842378f, 0.29520556f, 0.59129524f, -0.43744215f
+};
+
+static const float espcn_conv2_biases[] = {
+ 0.33971384f, -0.23245853f, -1.0215325f, -0.2263814f,
+ 0.09201997f, 0.19144128f, -1.3733093f, -1.7035905f,
+ -0.6637244f, -0.08333605f, 0.44616115f, -0.076926f,
+ 0.5801112f, -0.71345073f, 0.33217007f, -0.67426187f,
+ -0.48569643f, -0.13424309f, -1.1751443f, 0.5630307f,
+ 0.3653299f, 0.64577675f, 0.2021496f, 0.03874249f,
+ 0.44926018f, 0.09768973f, -0.9930376f, -0.8841269f,
+ -0.18398902f, 0.69865096f, -0.16083398f, -0.19168021f
+};
+
+static const float espcn_conv3_kernel[] = {
+ -0.007667006f, 0.14104712f, 0.0028554099f, 0.046171032f,
+ 0.083970614f, -0.08289577f, -0.01414775f, -0.045998544f,
+ -0.10366155f, -0.051294606f, 0.02127337f, 0.01200112f,
+ 0.075513035f, 0.03427472f, 0.0009242545f, 0.039481442f,
+ -0.083404936f, -0.009379502f, -0.00012922293f, 0.08770353f,
+ -0.019010197f, 0.024323002f, 0.00657334f, 0.020961132f,
+ 0.033712275f, -0.105017915f, -0.01556234f, -0.09186359f,
+ -0.029278394f, 0.22117417f, 0.053837106f, -0.09097114f,
+ 0.088114634f, -0.15915282f, 0.06186595f, 0.0033195168f,
+ -0.4086313f, -0.17276055f, -0.007333988f, 0.034589782f,
+ -0.32201302f, 0.07693074f, 0.1128147f, 0.20464584f,
+ -0.086866386f, 0.30482367f, -0.042256493f, -0.07132304f,
+ 0.05204476f, 0.2028391f, 0.07791786f, -0.089417934f,
+ 0.07708711f, 0.22846334f, 0.04748587f, 0.009103156f,
+ -0.12805448f, 0.12475577f, -0.022960152f, 0.08536493f,
+ 0.12684518f, 0.1882899f, -0.09544437f, 0.34522983f,
+ -0.011966817f, 0.16707578f, -0.10880896f, 0.007993297f,
+ 0.22237432f, 0.0101676f, 0.009014923f, -0.04825716f,
+ 0.11847947f, -0.06317551f, -0.009806394f, -0.044970516f,
+ 0.03217826f, -0.04854188f, -0.012694379f, 0.048237607f,
+ 0.049305733f, -0.04797366f, -0.012059494f, -0.014990728f,
+ 0.16739103f, 0.29273826f, 0.01097457f, 0.028956668f,
+ 0.1346423f, 0.10767944f, -0.18557154f, -0.020515647f,
+ -0.065032914f, 0.106935486f, 0.051395193f, 0.28330383f,
+ -0.06297702f, -0.17837301f, -0.0659061f, -0.070493214f,
+ 0.018434696f, -0.23210582f, -0.08075857f, -0.06457634f,
+ -0.23998463f, -0.009786923f, -0.027664542f, 0.2262627f,
+ 0.09856223f, 0.36268407f, 0.065591045f, -0.09626932f,
+ 0.11624542f, 0.23481297f, -0.040730257f, -0.12155378f,
+ -0.037929635f, 0.008343563f, -0.013552447f, -0.015157376f,
+ -0.016931925f, -0.083783776f, 0.004607789f, 0.07565792f,
+ 0.11899113f, 0.24913028f, 0.00016717051f, 0.0129345255f,
+ -0.14638531f, -0.053604305f, 0.09540138f, -0.026006158f,
+ 0.12681499f, -0.6076643f, 0.098777324f, 0.115070805f,
+ -0.5347515f, 0.030514427f, -0.10094133f, 0.62846696f,
+ -0.033593196f, 0.78771675f, -0.09244786f, -0.008667544f,
+ -0.16986623f, 0.75780606f, -0.10130211f, 0.065105036f,
+ 0.29966506f, 0.3343311f, -0.104222424f, -0.0943782f,
+ -0.044735834f, -0.032489244f, 0.21114482f, -0.20020406f,
+ 0.41298053f, 0.17389429f, -0.016944211f, 0.17826891f,
+ -0.04719942f, -0.034800053f, -0.039783645f, -0.010532644f,
+ -0.039469235f, 0.24107635f, 0.16123307f, -0.09022655f,
+ 0.13408047f, -0.0282536f, -0.03630475f, 0.0072817653f,
+ -0.07051867f, -0.076535776f, 0.059039824f, 0.122429736f,
+ -0.03934417f, 0.045777347f, -0.047231924f, 0.052514616f,
+ 0.31010264f, 0.016500482f, 0.007496862f, -0.03231565f,
+ 0.049405616f, -0.08411538f, 0.03045642f, 0.17119631f,
+ 0.03334349f, 0.11353106f, 0.041074052f, 0.19524741f,
+ 0.06796808f, 0.17088167f, -0.056979932f, 0.023423648f,
+ -0.04356131f, 0.12627144f, -0.052736517f, 0.07245402f,
+ 0.03975933f, -0.008924116f, 0.019371016f, -0.075674504f,
+ -0.004732546f, -0.04481568f, 0.02436322f, 0.04378296f,
+ -0.05806777f, -0.096939705f, 0.039061844f, 0.071212545f,
+ 0.015327552f, -0.004279174f, 0.031178921f, 0.008691702f,
+ -0.0041847173f, -0.008024591f, -0.00088262715f, 0.045580477f,
+ -0.03011504f, 0.10775189f, 0.0190155f, 0.012543175f,
+ 0.12075272f, -0.029315438f, 0.027919387f, 0.046000794f,
+ -0.15523206f, 0.059069097f, -0.12786487f, 0.027711906f,
+ 0.15750125f, 0.01187774f, -0.012185285f, -0.007454721f,
+ -0.05292222f, -0.06527724f, -0.052345403f, -0.03817037f,
+ 0.16767734f, 0.005784969f, 0.08053919f, 0.002969095f,
+ -0.06539606f, 0.013479305f, 0.059465107f, 0.05489724f,
+ 0.018484972f, 0.10821291f, -0.07344093f, 0.022035802f,
+ -0.08965972f, 0.12242154f, -0.007821743f, 0.037775896f,
+ 0.021366084f, 0.054953437f, -0.000305967f, 0.0015507822f,
+ 0.03209467f, -0.035142414f, 0.005562415f, -0.0014824979f,
+ -0.028283753f, 0.004241433f, 0.04415266f, -0.032739647f,
+ 0.051402435f, 0.037154127f, 0.02417755f, 0.017741432f,
+ -0.024376478f, -0.053491775f, 0.01818964f, -0.05982778f,
+ -0.018173559f, -0.05709102f, -0.002068809f, 0.024851134f,
+ -0.006637969f, -0.030332753f, -0.058937836f, -0.07575009f,
+ -0.025087489f, 0.012548911f, -0.0018659293f, 0.009307657f,
+ 0.006538445f, -0.030516295f, 0.043202642f, 0.0022194071f,
+ 0.13998812f, 0.01926017f, -0.023256416f, 0.0059284833f,
+ 0.04276946f, 0.043055464f, 0.011339936f, -0.050337285f,
+ -0.098842666f, -0.045672577f, -0.019297887f, 0.007744926f,
+ -0.009274277f, -0.0882981f, 0.006480864f, 0.014436023f,
+ 0.044652563f, -0.12512758f, -0.0061487798f, 0.0036048207f,
+ -0.07216942f, 0.18390115f, 0.1189453f, 0.08375072f,
+ -0.030994987f, 0.15075774f, -0.06697724f, 0.036068875f,
+ 0.005174052f, 0.15762272f, -0.09359547f, 0.06011978f,
+ -0.20130202f, -0.2399595f, -0.007247519f, -0.062571146f,
+ -0.25810865f, -0.10054644f, 0.057966083f, 0.25557914f,
+ 0.036694355f, 0.30086866f, 0.006560981f, 0.033802185f,
+ -0.08347327f, 0.28710675f, 0.021880157f, 0.04767934f,
+ -0.08497335f, 0.5885198f, 0.023092799f, 0.038470116f,
+ 0.16157758f, 0.010583807f, -0.25718346f, -0.042735994f,
+ 0.12373039f, 0.16206901f, 0.08336538f, 0.21352498f,
+ 0.059582815f, -0.032146916f, 0.079257764f, -0.0016167751f,
+ -0.02205234f, 0.0405716f, 0.015626704f, 0.015071891f,
+ -0.06631943f, 0.07939527f, 0.05282321f, -0.031827953f,
+ 0.045815617f, 0.038473863f, 0.012097371f, -0.041949954f,
+ 0.10436737f, -0.04933808f, 0.03482716f, -0.10212701f,
+ 0.27047437f, 0.14205115f, 0.041179992f, 0.026404373f,
+ -0.065594174f, -0.12736672f, -0.0710877f, -0.053915583f,
+ 0.01613588f, 0.17389613f, -0.044684675f, 0.22719298f,
+ 0.015502862f, -0.14574938f, 0.085858285f, 0.0026169082f,
+ 0.0089747105f, -0.11735594f, 0.06839516f, 0.07142809f,
+ 0.04451523f, 0.06147266f, -0.0012151458f, -0.008291631f,
+ -0.09026896f, -0.08051338f, -0.102967136f, -0.052975707f,
+ 0.048517436f, -0.024674408f, 0.016117888f, 0.015603796f,
+ 0.13993767f, 0.029596603f, -0.024877293f, -0.013130988f,
+ -0.0232684f, 0.11352275f, -0.024990203f, -0.1607456f,
+ -0.22931759f, 0.18455116f, -0.02624186f, 0.07006299f,
+ -0.16019426f, -0.062050693f, -0.07570467f, -0.0948215f,
+ 0.11911582f, -0.24222155f, 0.20988029f, -0.12547027f,
+ -0.48145735f, -0.01521843f, -0.10649907f, 0.71631026f,
+ 0.10028422f, 0.75859886f, 0.12850475f, 0.123134464f,
+ 0.008657039f, 0.8846148f, -0.13880287f, -0.16307577f,
+ -0.10221507f, 0.07655262f, -0.03988632f, -0.04268315f,
+ 0.050553113f, -0.2896542f, 0.08483427f, 0.18624589f,
+ 0.7549801f, 0.18414652f, 0.034072693f, 0.03786343f,
+ -0.09295679f, -0.03666787f, -0.009160933f, -0.012920515f,
+ -0.029413473f, 0.010253004f, -0.0796485f, 0.038094785f,
+ -0.19285308f, -0.02273603f, -0.059900336f, 0.16111064f,
+ -0.02963963f, 0.380052f, -0.019736923f, -0.086330734f,
+ -0.19065458f, 0.16180964f, -0.058330737f, 0.16446571f,
+ 0.5497785f, 0.2566367f, -0.061442494f, -0.08855255f,
+ -0.046923388f, -0.0021147097f, 0.17849843f, -0.048363656f,
+ 0.2680546f, 0.1588858f, -0.015360107f, 0.29298705f,
+ 0.016426394f, 0.13549931f, 0.04652411f, 0.0071147704f,
+ 0.010288967f, 0.05908408f, -0.0045378814f, 0.07343509f,
+ -0.016549721f, -0.014486795f, -0.001113012f, 0.031942274f,
+ 0.009040558f, 0.032813624f, -0.0424731f, 0.052078795f,
+ -0.053465404f, -0.00057529495f, 0.011511385f, -0.027211199f,
+ -0.060380895f, -0.013912639f, 0.00951986f, -0.0074726664f,
+ 0.021073354f, 0.030663729f, 0.00809332f, -0.013936477f,
+ 0.05807691f, 0.008006645f, 0.0071268706f, -0.043578595f,
+ 0.11615272f, 0.06984987f, -0.0028992365f, 0.041572776f,
+ -0.15604974f, 0.18731527f, -0.15413979f, 0.012749477f,
+ 0.15030195f, -0.0020730947f, 0.03645586f, -0.10145699f,
+ -0.040069796f, -0.07289411f, 0.00848367f, 0.001622471f,
+ 0.088356435f, -0.08887693f, 0.06583668f, 0.13509107f,
+ 0.062882945f, 0.02901061f, 0.0557863f, 0.042449273f,
+ 0.0116659785f, 0.038361747f, -0.042015914f, -0.052616213f,
+ -0.07969802f, 0.08745955f, 0.010646311f, 0.048006814f,
+ 0.078400664f, 0.018272074f, -0.021945313f, 0.020994332f,
+ -0.00440785f, -0.058062512f, -0.042612758f, 0.017000763f,
+ 0.04425118f, 0.023721699f, 0.014297439f, -0.038070936f,
+ 0.03014516f, -0.037381243f, -0.00404214f, -0.022961603f,
+ 0.104961f, -0.04902547f, 0.058775403f, -0.09026729f,
+ -0.101065375f, -0.046076927f, 0.017828949f, 0.048770756f,
+ 0.0011011219f, 0.024923807f, -0.09660758f, 0.05639419f,
+ -0.080873094f, 0.1845964f, -0.0069835014f, 0.014266926f,
+ -0.02855939f, -0.056643132f, -0.0051804986f, -0.03215627f,
+ 0.019358406f, 0.1768966f, 0.04088005f, 0.0048896256f,
+ 0.030420236f, 0.012921552f, -0.03283905f, -0.006024614f,
+ 0.030611534f, -0.028801229f, 0.002574335f, -0.03615586f,
+ 0.09825823f, 0.0065917578f, -0.035536543f, -0.06725451f,
+ 0.003755605f, 0.013537556f, -0.011502704f, -0.0051462594f,
+ -0.017171362f, -0.06360293f, -0.034664832f, -0.04424426f,
+ 0.042037055f, 0.19522013f, 0.019246215f, -0.021807862f,
+ -0.13493076f, -0.18108664f, 0.027387377f, -0.057092384f,
+ -0.360573f, 0.10253678f, 0.063756354f, 0.011502856f,
+ 0.13754463f, 0.025544228f, -0.105598815f, -0.026410667f,
+ -0.0008124341f, -0.071404435f, 0.016904969f, 0.023952119f,
+ -0.09001399f, -0.014638472f, -0.107836954f, 0.038338777f,
+ -0.05954155f, 0.3937112f, -0.06343964f, -0.098806344f,
+ -0.040508512f, -0.15359704f, 0.28182873f, 0.08952835f,
+ -0.09345569f, 0.11638065f, -0.03209807f, 0.30986494f,
+ -0.026875084f, 0.13687582f, -0.057586435f, 0.0033817207f,
+ 0.12819554f, -0.013082991f, -0.012207393f, 0.007877484f,
+ -0.010009816f, -0.05519416f, -0.014998437f, 0.011148795f,
+ -0.04913968f, 0.029449768f, 0.0018857152f, 0.013820857f,
+ -0.061610684f, 0.017086286f, -0.014723202f, 0.055658128f,
+ -0.08936702f, 0.15055695f, -0.019955054f, -0.0051097856f,
+ 0.055257797f, 0.026368754f, -0.15075234f, -0.058290627f,
+ 0.015374483f, -0.017010013f, 0.029440638f, 0.17879036f,
+ 0.055987984f, 0.2014458f, -0.025986856f, 0.037391923f,
+ 0.020041345f, -0.27366036f, -0.107675634f, 0.044677358f,
+ -0.26006556f, -0.08148701f, 0.023839803f, 0.18195054f,
+ 0.10027663f, 0.323401f, 0.012640289f, 0.033895966f,
+ -0.08169412f, 0.17818142f, 0.01733072f, 0.063214764f,
+ -0.06319035f, -0.03843456f, 0.044573024f, 0.012283689f,
+ 0.03905451f, -0.0858922f, 0.0056206034f, -0.054033287f,
+ 0.074631706f, 0.2270766f, 0.049191162f, -0.080160886f,
+ 0.20265223f, 0.0034367319f, 0.08326053f, 0.055953957f,
+ -0.021390092f, -0.75434166f, -0.2119513f, 0.15419082f,
+ -0.5878938f, 0.09843949f, 0.10501423f, 0.6137734f,
+ -0.15509549f, 0.7417564f, -0.09229847f, -0.11215972f,
+ 0.1986837f, 0.7498558f, 0.15741259f, 0.031588957f,
+ 0.34542522f, 0.3671338f, 0.050357416f, 0.09435209f,
+ -0.12557067f, 0.23468016f, -0.106572054f, -0.044294365f,
+ 0.30201787f, 0.09970023f, -0.086082414f, 0.31907186f,
+ 0.0011450003f, 0.060450554f, -0.094321065f, 0.0017964012f,
+ 0.1424026f, 0.19942866f, 0.058151063f, -0.09763893f,
+ 0.14013672f, -0.033729076f, -0.009657222f, -0.037736878f,
+ 0.06720788f, -0.075642206f, 0.007286674f, 0.11240429f,
+ 0.0065294695f, -0.030203562f, -0.010721404f, -0.116738304f,
+ 0.3607275f, 0.12672496f, 0.021615604f, 0.033858713f,
+ 0.13400987f, 0.06431525f, -0.06691087f, 0.14595011f,
+ -0.008561604f, 0.14163294f, 0.056257907f, 0.3520392f,
+ -0.04394999f, -0.0028129697f, -0.08888837f, -0.029985145f,
+ 0.030372502f, -0.14674705f, -0.070825584f, -0.08322254f,
+ -0.08497095f, 0.010243157f, -5.5688863e-05f, -0.01099719f,
+ 0.025146788f, 0.061569728f, 0.062467348f, -0.041845758f,
+ 0.014052529f, -0.041381437f, -0.005965281f, -0.02505238f,
+ 0.033743933f, 0.022375392f, -0.018016314f, 0.00055475975f,
+ -0.022157867f, -0.017465835f, -0.0045483005f, 0.119692154f,
+ -0.020166207f, 0.24603683f, -0.0071642944f, 0.024200281f,
+ -0.03257321f, -0.04937859f, 0.07412929f, -0.004714887f,
+ 0.0010213905f, -0.0576797f, 0.047480553f, 0.011789497f,
+ -0.2318705f, -0.013216555f, -0.007650194f, 0.21737282f,
+ -0.0017965994f, 0.37281004f, -0.09982479f, -0.009142261f,
+ -0.13773903f, 0.23119944f, -0.020788472f, -0.06151848f,
+ -0.0014226118f, -0.06132002f, -0.032428455f, -0.046841744f,
+ 0.0078683f, 0.089152165f, 0.03683405f, -0.117846414f,
+ 0.18142857f, 0.19151904f, -0.008181704f, -0.14283088f,
+ -0.03691898f, 0.0031022264f, -0.00318654f, -0.014476929f,
+ -0.02316005f, 0.035108574f, 0.12210266f, -0.038086705f,
+ 0.026954912f, -0.0056925155f, 0.018069055f, -0.040836975f,
+ -0.020427013f, -0.043570735f, 0.060326766f, 0.06339755f,
+ 0.047302492f, -0.026342686f, -0.011594244f, 0.061395485f,
+ 0.10346414f, -0.03713694f, 0.0102482885f, -0.0016179478f,
+ -0.0028208077f, -0.10695704f, 0.010509528f, 0.025757857f,
+ -0.04434847f, 0.13520806f, 0.008622794f, -0.053426582f,
+ 0.013260353f, -0.19719706f, 0.004430872f, -0.029948913f,
+ 0.03813006f, 0.0373536f, 0.0008706067f, 0.01047326f,
+ -0.0045027793f, 0.019326277f, 0.007231656f, 0.008300135f,
+ -0.020665932f, 0.04975184f, 0.0014273074f, -0.04876815f,
+ 0.07044493f, -0.01045838f, 0.009101885f, -0.036903173f,
+ -0.0004744507f, -0.046730164f, 0.0041760514f, -0.01884484f,
+ 0.0063735796f, 0.06810604f, 0.107551165f, 0.09627486f,
+ 0.043206997f, 0.06253923f, -0.035905674f, 0.041340932f,
+ -0.119592205f, 0.094922915f, -0.065469556f, -0.03853879f,
+ -0.17381419f, 0.23785266f, 0.078358285f, 0.0054959077f,
+ 0.11458983f, -0.013138738f, -0.103433214f, -0.02233651f,
+ 0.04934036f, -0.08529042f, 0.03650632f, 0.022829639f,
+ 0.035568047f, 0.0091951545f, -0.10593388f, -0.08046578f,
+ 0.002299903f, 0.30750358f, -0.05585595f, -0.014680518f,
+ 0.030016491f, -0.17937884f, -0.19030805f, -0.11197273f,
+ -0.046215743f, 0.14573145f, 0.031408813f, 0.061366186f,
+ -0.07926941f, -0.08302711f, 0.061025552f, -0.015553272f,
+ -0.06158321f, 0.0143050505f, 0.02111178f, -0.001981786f,
+ 0.0767764f, 0.009569591f, -0.059213877f, 0.0063453517f,
+ -0.03622294f, -0.03039037f, 0.00013941481f, 0.009374101f,
+ -0.13855189f, 0.010991925f, -0.0613927f, 0.11416749f,
+ -0.11961187f, 0.32238087f, -0.044924937f, -0.08240755f,
+ -0.008297185f, -0.054251228f, 0.14359601f, 0.06008485f,
+ -0.018592346f, 0.0648186f, -0.0020248091f, 0.38440135f,
+ 0.053694524f, 0.13339223f, 0.06800024f, 0.018290306f,
+ 0.10995106f, -0.12827326f, 0.0123858955f, 0.21950454f,
+ 0.065632716f, 0.061837338f, 0.020810535f, -0.06626623f,
+ -0.14532562f, -0.093671024f, -0.06962128f, 0.040431153f,
+ -0.07160787f, -0.09618397f, 0.039452076f, 0.020019688f,
+ 0.13571987f, -0.046189487f, -0.015846943f, 0.0063015823f,
+ -0.09565114f, 0.22451776f, 0.00886037f, -0.02049069f,
+ -0.24221073f, 0.14828478f, -0.051143408f, 0.0461805f,
+ 0.09435043f, 0.09374778f, -0.08676505f, 0.066650264f,
+ -0.060268547f, -0.3259086f, -0.18091676f, -0.11639267f,
+ -0.5029436f, -0.09627753f, 0.02067597f, 0.7558151f,
+ 0.0038006685f, 0.70143574f, 0.02178817f, 0.075308986f,
+ 0.05171592f, 0.937243f, 0.037846364f, 0.12480036f,
+ -0.16727677f, 0.4041633f, 0.09565084f, 0.04462478f,
+ 0.18047121f, 0.025510564f, -0.054039463f, 0.14026093f,
+ 0.7756441f, 0.18320186f, 0.087877594f, 0.21245043f,
+ 0.128625f, 0.040841434f, 0.031882454f, 0.014652159f,
+ 0.07336157f, -0.082995646f, -0.08216907f, 0.06895632f,
+ -0.28883147f, 0.0687547f, 0.08278488f, 0.06376588f,
+ 0.08406635f, 0.34743282f, 0.01616047f, -0.105779156f,
+ 0.1468829f, 0.053489823f, 0.10077649f, -0.09239508f,
+ 0.6348831f, 0.1352438f, 0.02459858f, 0.090068035f,
+ -0.078240074f, -0.099081255f, -0.12910812f, -0.15346357f,
+ 0.12719591f, 0.15875258f, -0.06565642f, 0.27934027f,
+ -0.022967832f, -0.053190503f, 0.09059283f, 0.012006108f,
+ 0.0011857292f, 0.016293127f, 0.06444683f, -0.050672583f,
+ 3.5189834e-05f, 0.017987749f, -0.019098926f, 0.008637739f,
+ -0.024748938f, -0.053841494f, -0.09542447f, -0.014751939f,
+ 0.025203867f, -0.0032474683f, -0.006368458f, -0.0009960494f,
+ 0.0013469144f, -0.027301246f, -0.012753308f, -0.012530901f,
+ 0.016105907f, 0.034088247f, -0.01590232f, -0.13388981f,
+ -0.0125353085f, 0.09361885f, -0.0057449047f, 0.006084462f,
+ -0.06271147f, 0.031053199f, -0.04053029f, -0.044474907f,
+ 0.061547633f, -0.20477249f, 0.081579626f, -0.0585398f,
+ -0.20271818f, -0.011229073f, 0.03334085f, 0.15171741f,
+ 0.04966151f, 0.39416173f, 0.08891907f, 0.068318516f,
+ -0.12359032f, 0.14359109f, -0.023392875f, -0.064946696f,
+ 0.0454515f, -0.019338306f, -0.036920782f, -0.0061167954f,
+ 0.008170954f, -0.08232102f, -0.004634325f, 0.0277472f,
+ 0.112698115f, 0.21048214f, -0.0012042654f, -0.029842526f,
+ -0.025627753f, -0.014696349f, -0.026032865f, -0.0072196675f,
+ -0.036066715f, 0.051305927f, -0.045510262f, 0.0124340765f,
+ -0.05072888f, -0.005966866f, -0.021207381f, 0.0146908695f,
+ -0.021395259f, 0.051524293f, -0.027837146f, -0.052131847f,
+ -0.005911164f, 0.016989948f, -0.007660514f, 0.033356547f,
+ 0.08252214f, -0.021740522f, -0.010158041f, -0.037607312f,
+ -0.022566633f, 0.032255232f, 0.056726158f, 0.069313794f,
+ 0.064242706f, 0.17749299f, -0.00038684483f, -0.16919652f
+};
+
+static const float espcn_conv3_biases[] = {
+ -0.00073408236f, 0.004423303f, 0.0024515174f, 0.002585888f
+};
+
+static const unsigned long espcn_tf_size = 87134;
+
+
+static const unsigned char espcn_tf_model[] = {
+ 0x0A, 0x4C, 0x0A, 0x01, 0x78, 0x12, 0x0B, 0x50, 0x6C, 0x61, 0x63, 0x65,
+ 0x68, 0x6F, 0x6C, 0x64, 0x65, 0x72, 0x2A, 0x2D, 0x0A, 0x05, 0x73, 0x68,
+ 0x61, 0x70, 0x65, 0x12, 0x24, 0x3A, 0x22, 0x12, 0x02, 0x08, 0x01, 0x12,
+ 0x0B, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01,
+ 0x12, 0x0B, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0x01, 0x12, 0x02, 0x08, 0x01, 0x2A, 0x0B, 0x0A, 0x05, 0x64, 0x74, 0x79,
+ 0x70, 0x65, 0x12, 0x02, 0x30, 0x01, 0x0A, 0x56, 0x0A, 0x05, 0x43, 0x6F,
+ 0x6E, 0x73, 0x74, 0x12, 0x05, 0x43, 0x6F, 0x6E, 0x73, 0x74, 0x2A, 0x39,
+ 0x0A, 0x05, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x12, 0x30, 0x42, 0x2E, 0x08,
+ 0x03, 0x12, 0x08, 0x12, 0x02, 0x08, 0x04, 0x12, 0x02, 0x08, 0x02, 0x22,
+ 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x0B, 0x0A,
+ 0x05, 0x64, 0x74, 0x79, 0x70, 0x65, 0x12, 0x02, 0x30, 0x03, 0x0A, 0x4F,
+ 0x0A, 0x09, 0x4D, 0x69, 0x72, 0x72, 0x6F, 0x72, 0x50, 0x61, 0x64, 0x12,
+ 0x09, 0x4D, 0x69, 0x72, 0x72, 0x6F, 0x72, 0x50, 0x61, 0x64, 0x1A, 0x01,
+ 0x78, 0x1A, 0x05, 0x43, 0x6F, 0x6E, 0x73, 0x74, 0x2A, 0x07, 0x0A, 0x01,
+ 0x54, 0x12, 0x02, 0x30, 0x01, 0x2A, 0x0F, 0x0A, 0x09, 0x54, 0x70, 0x61,
+ 0x64, 0x64, 0x69, 0x6E, 0x67, 0x73, 0x12, 0x02, 0x30, 0x03, 0x2A, 0x13,
+ 0x0A, 0x04, 0x6D, 0x6F, 0x64, 0x65, 0x12, 0x0B, 0x12, 0x09, 0x53, 0x59,
+ 0x4D, 0x4D, 0x45, 0x54, 0x52, 0x49, 0x43, 0x0A, 0xC4, 0x32, 0x0A, 0x07,
+ 0x43, 0x6F, 0x6E, 0x73, 0x74, 0x5F, 0x31, 0x12, 0x05, 0x43, 0x6F, 0x6E,
+ 0x73, 0x74, 0x2A, 0xA4, 0x32, 0x0A, 0x05, 0x76, 0x61, 0x6C, 0x75, 0x65,
+ 0x12, 0x9A, 0x32, 0x42, 0x97, 0x32, 0x08, 0x01, 0x12, 0x10, 0x12, 0x02,
+ 0x08, 0x05, 0x12, 0x02, 0x08, 0x05, 0x12, 0x02, 0x08, 0x01, 0x12, 0x02,
+ 0x08, 0x40, 0x22, 0x80, 0x32, 0xDE, 0xD5, 0x09, 0xBD, 0xE4, 0xFB, 0xE5,
+ 0xBE, 0xC3, 0xA5, 0x2D, 0x3D, 0x50, 0x50, 0xB8, 0xBD, 0xCB, 0xC4, 0x88,
+ 0x3D, 0xA7, 0x64, 0x6A, 0x3C, 0x24, 0x86, 0x84, 0x3D, 0x48, 0x56, 0x31,
+ 0x3C, 0x94, 0x62, 0x19, 0xBE, 0x86, 0x91, 0x8D, 0xBB, 0xBB, 0xA9, 0x0D,
+ 0x3D, 0xDE, 0x03, 0xE8, 0x3E, 0xF8, 0x76, 0xB9, 0xBB, 0x31, 0xF8, 0x81,
+ 0xBE, 0xBF, 0x27, 0x76, 0xBD, 0x2F, 0xCA, 0xCD, 0xBB, 0x9E, 0x08, 0x76,
+ 0xBC, 0xCB, 0x70, 0x2D, 0x3D, 0xF5, 0x13, 0x6F, 0xBD, 0x8A, 0x2E, 0x04,
+ 0x3D, 0xE6, 0xCF, 0x9C, 0x3D, 0x63, 0xA5, 0xFA, 0xBD, 0x5C, 0x23, 0x04,
+ 0xBD, 0x34, 0x9C, 0xA3, 0x3D, 0x20, 0xEA, 0x47, 0x3A, 0x21, 0x8B, 0x80,
+ 0xBB, 0xB0, 0x6A, 0x12, 0x3D, 0x09, 0x57, 0x2A, 0x3D, 0x3E, 0x21, 0x19,
+ 0x3C, 0x9A, 0xD8, 0x64, 0xBE, 0x6E, 0x73, 0xF4, 0xBD, 0xAF, 0x87, 0x4C,
+ 0x3D, 0x92, 0x19, 0x2A, 0xBD, 0x07, 0xBF, 0x2C, 0x3E, 0xFE, 0x1A, 0x91,
+ 0xBE, 0x51, 0x5A, 0x84, 0xBB, 0x1E, 0x1C, 0x8D, 0x3C, 0x2D, 0x5C, 0x09,
+ 0xBC, 0x17, 0xD8, 0xD4, 0xBC, 0x29, 0x47, 0xEA, 0xBE, 0xB7, 0xD5, 0x79,
+ 0xBE, 0x72, 0xBE, 0x23, 0xBD, 0x5F, 0x39, 0xD3, 0xBC, 0x02, 0x94, 0x7D,
+ 0xBE, 0xC0, 0x4C, 0xDE, 0x3D, 0xC1, 0x0B, 0x0F, 0xBD, 0xA1, 0xAB, 0x72,
+ 0x3D, 0x39, 0x22, 0xDC, 0x3D, 0x94, 0xE5, 0x8D, 0xBD, 0xFF, 0xDB, 0x98,
+ 0xBE, 0xA0, 0x74, 0x29, 0x3D, 0x72, 0x47, 0xB7, 0xBD, 0x95, 0xFF, 0x06,
+ 0xBE, 0xB9, 0x49, 0x54, 0xBC, 0x5D, 0xAA, 0x33, 0x3D, 0x74, 0x5A, 0x15,
+ 0x3E, 0xE7, 0xAB, 0x86, 0xBD, 0xF8, 0x83, 0x57, 0x3C, 0xA2, 0xE2, 0xDC,
+ 0xBC, 0xB0, 0x64, 0xC2, 0xBC, 0x49, 0x8C, 0x41, 0x3D, 0xFF, 0x8D, 0x59,
+ 0x3E, 0x9A, 0x87, 0x5F, 0xBB, 0x50, 0x90, 0xD1, 0xBD, 0x26, 0xBD, 0xA6,
+ 0x3D, 0x71, 0x4F, 0xE6, 0x3F, 0x42, 0xBA, 0xA5, 0x3E, 0xF1, 0xB2, 0x75,
+ 0x3D, 0x35, 0x79, 0x05, 0xBE, 0x4D, 0x7D, 0x57, 0xBE, 0x4F, 0xA3, 0x97,
+ 0xBB, 0xEC, 0x41, 0x2E, 0x3C, 0x4C, 0x3F, 0x1A, 0x3E, 0x87, 0x87, 0x0E,
+ 0x3C, 0x85, 0xFB, 0xD0, 0xBC, 0x92, 0xFB, 0x5C, 0x3D, 0xAE, 0x85, 0x4D,
+ 0xBC, 0x5C, 0x76, 0x2A, 0x3E, 0x97, 0xB6, 0xF0, 0xBD, 0x35, 0x88, 0x35,
+ 0x3C, 0xF4, 0x8E, 0xD0, 0x3C, 0x91, 0x24, 0x99, 0x3F, 0x24, 0x84, 0xAC,
+ 0x3D, 0x45, 0x65, 0xBB, 0xBC, 0x93, 0xC4, 0xE9, 0x3D, 0x28, 0x10, 0x45,
+ 0x3D, 0x7D, 0xD6, 0x89, 0xBD, 0x8B, 0x96, 0xAE, 0xBB, 0xB3, 0xAE, 0x4C,
+ 0xBC, 0xF2, 0x74, 0x95, 0x3C, 0x89, 0x8E, 0x72, 0xBF, 0xB2, 0x71, 0xBD,
+ 0xBC, 0x95, 0x87, 0x8A, 0xBC, 0x2A, 0x06, 0xA4, 0xBE, 0x57, 0x7D, 0x23,
+ 0xBE, 0xE0, 0xA4, 0x00, 0x3C, 0x68, 0x75, 0x96, 0x3D, 0x54, 0x86, 0x0F,
+ 0xBE, 0x4A, 0x4E, 0x15, 0x3F, 0x0B, 0xD5, 0xC4, 0xBC, 0x4D, 0x01, 0xC0,
+ 0xBC, 0xF2, 0xAF, 0x4C, 0x3C, 0xBC, 0x39, 0x97, 0xBB, 0x45, 0x6F, 0xBA,
+ 0x3F, 0x69, 0x6C, 0x98, 0x3D, 0xA4, 0xE3, 0x05, 0x3E, 0x56, 0x0A, 0xBC,
+ 0x3C, 0x52, 0x05, 0x67, 0x3E, 0xFA, 0xD1, 0x5C, 0xBE, 0x58, 0x59, 0x3B,
+ 0x3D, 0xA8, 0xDB, 0x9F, 0xBD, 0x97, 0xEF, 0x87, 0xBD, 0x23, 0xC5, 0x70,
+ 0x3D, 0x89, 0xB0, 0x9A, 0x3D, 0x3C, 0x66, 0xC3, 0xBD, 0xBD, 0xF1, 0xAA,
+ 0x3C, 0x62, 0xC3, 0xCD, 0x3E, 0xDC, 0xCF, 0x1C, 0x3C, 0x62, 0xD8, 0x16,
+ 0xBE, 0x68, 0x5E, 0x5A, 0xBF, 0x27, 0x89, 0x52, 0xBD, 0xC3, 0x58, 0x5F,
+ 0xBC, 0x9C, 0xDC, 0xCB, 0x3C, 0xB2, 0x22, 0x9D, 0x3C, 0xBD, 0x71, 0x7E,
+ 0x3E, 0x5A, 0x9C, 0x2C, 0xBE, 0x13, 0x73, 0xB5, 0xBE, 0xC9, 0x92, 0xF5,
+ 0x3A, 0x55, 0x56, 0xE6, 0xBC, 0x18, 0xC5, 0x11, 0xC0, 0xE1, 0x5B, 0xA8,
+ 0xBE, 0x70, 0xCC, 0x23, 0xBE, 0x09, 0x55, 0x12, 0x3E, 0xAE, 0xAB, 0x27,
+ 0x3E, 0xE7, 0x2F, 0xA1, 0xBC, 0x26, 0x5D, 0x1A, 0xBB, 0xC7, 0xC6, 0xF1,
+ 0xBD, 0xC0, 0x58, 0xE0, 0xBB, 0x80, 0xCF, 0x46, 0xBB, 0x49, 0x9D, 0x32,
+ 0xBF, 0x7A, 0x6F, 0x8B, 0xBC, 0x53, 0xE2, 0x8E, 0x3D, 0x71, 0xF1, 0x1B,
+ 0x3E, 0xF7, 0x27, 0x64, 0x3C, 0xB0, 0x1F, 0x1B, 0xBC, 0x8B, 0x27, 0x90,
+ 0x3F, 0x2F, 0xD1, 0x82, 0xBD, 0x2E, 0xEF, 0x11, 0x3F, 0xEE, 0x47, 0x3F,
+ 0xBE, 0xD6, 0x68, 0x42, 0x3D, 0x69, 0xA0, 0x14, 0xBC, 0x9B, 0x24, 0x66,
+ 0xBD, 0x17, 0x54, 0xA7, 0xBB, 0x16, 0xE0, 0xD4, 0xBC, 0xCA, 0x01, 0x03,
+ 0x40, 0xD3, 0x5A, 0x18, 0xBD, 0xDE, 0x03, 0xCB, 0xBB, 0x0B, 0x16, 0x33,
+ 0xBE, 0xAA, 0xEC, 0xA2, 0x3E, 0x4E, 0x2C, 0x49, 0xBC, 0x5C, 0x45, 0x99,
+ 0xBD, 0xB1, 0xFF, 0x84, 0xBD, 0xB0, 0x3A, 0x4B, 0x3F, 0x8D, 0x04, 0x78,
+ 0xBC, 0x5B, 0x27, 0xA9, 0x3B, 0x57, 0x19, 0x4C, 0x3C, 0x1C, 0x3A, 0x55,
+ 0x3B, 0x12, 0xCF, 0xE0, 0x3E, 0xFE, 0xF3, 0xE4, 0x3D, 0x9D, 0x49, 0x14,
+ 0xBE, 0x8B, 0x2F, 0xAF, 0x3C, 0xF6, 0x99, 0xAD, 0xBE, 0x6C, 0x04, 0xDA,
+ 0x3D, 0xB8, 0x32, 0xDF, 0xBC, 0x77, 0xFE, 0xA4, 0x39, 0x34, 0x30, 0x26,
+ 0xBD, 0x44, 0x0D, 0x74, 0xBD, 0xD7, 0x1C, 0x3A, 0x3A, 0x86, 0xBC, 0xDE,
+ 0xBA, 0x2F, 0x04, 0x40, 0x3D, 0x49, 0xBC, 0x0B, 0xBD, 0x60, 0x35, 0xD9,
+ 0xBD, 0x36, 0x35, 0x8E, 0x3E, 0xFE, 0x6E, 0xBC, 0x3E, 0xA8, 0xA9, 0xEF,
+ 0xBD, 0x6E, 0x89, 0x35, 0x3C, 0xB0, 0x61, 0xFD, 0x3B, 0xCC, 0x65, 0xE8,
+ 0xBC, 0x9D, 0xD3, 0x4A, 0x3D, 0x7B, 0xB5, 0x1A, 0x3E, 0x88, 0x15, 0x44,
+ 0x3E, 0x41, 0xD8, 0x9C, 0x3D, 0xBB, 0x4F, 0x0C, 0x3E, 0xC6, 0x6E, 0x6C,
+ 0x3F, 0x97, 0x5B, 0xBB, 0xBD, 0x2B, 0xA2, 0x32, 0xBE, 0x24, 0x5A, 0xD5,
+ 0xBD, 0x1B, 0x16, 0x78, 0x3D, 0x52, 0xCB, 0x4C, 0x3C, 0xE2, 0x0D, 0x4D,
+ 0xBC, 0x3F, 0x35, 0x0E, 0xBE, 0xC8, 0x25, 0x42, 0x3B, 0x9F, 0x87, 0xFE,
+ 0x39, 0x14, 0x67, 0x53, 0x3E, 0x19, 0xC6, 0x07, 0xBA, 0xCB, 0x2E, 0x08,
+ 0x3E, 0x8A, 0xBB, 0x19, 0xBE, 0x4F, 0xE0, 0x96, 0xBD, 0x4E, 0x4D, 0x7F,
+ 0xBA, 0x7B, 0xE8, 0x4C, 0xBC, 0x63, 0xA3, 0x38, 0xBE, 0xC4, 0x97, 0xD4,
+ 0xBD, 0x86, 0x8A, 0xA2, 0x3E, 0x34, 0xA5, 0x89, 0x3D, 0x32, 0xC2, 0x62,
+ 0x3D, 0x85, 0x54, 0x3B, 0xBC, 0x96, 0xB5, 0x60, 0x3C, 0xF4, 0xB5, 0x37,
+ 0xBD, 0x00, 0x1C, 0xA9, 0xBF, 0xE8, 0xD4, 0x65, 0xBD, 0xF5, 0x09, 0x45,
+ 0x3A, 0xA8, 0x5B, 0x00, 0xBE, 0xF8, 0xA9, 0x04, 0x3F, 0x27, 0xB8, 0x63,
+ 0xBC, 0xB3, 0x1D, 0xA3, 0x3D, 0x84, 0x92, 0xE7, 0x3D, 0xE0, 0xD0, 0xAD,
+ 0xBF, 0x78, 0x1E, 0xB3, 0xBB, 0xB8, 0x9B, 0x12, 0xBA, 0x0F, 0x59, 0x45,
+ 0x3C, 0xFD, 0x3B, 0x97, 0x3C, 0x31, 0xD5, 0xA6, 0xBF, 0xA2, 0x94, 0x07,
+ 0x3E, 0xC5, 0xFB, 0x3E, 0x3B, 0x3B, 0x7F, 0x01, 0x3D, 0xB6, 0xAD, 0x35,
+ 0x3E, 0xA8, 0xA5, 0xAE, 0xBD, 0xA4, 0x81, 0xA8, 0x3D, 0xA1, 0xB7, 0xC4,
+ 0xBC, 0x5F, 0x15, 0x77, 0xBB, 0xB6, 0xD7, 0x8B, 0xBC, 0x0E, 0x8D, 0x0D,
+ 0x3B, 0x28, 0xC1, 0x9B, 0xBC, 0x52, 0x50, 0x76, 0xBD, 0x25, 0x56, 0x90,
+ 0x3D, 0xC1, 0x00, 0x23, 0x3E, 0xD5, 0xBA, 0x79, 0x3D, 0x84, 0xBE, 0x18,
+ 0xBE, 0x5E, 0x99, 0x98, 0x3D, 0xE8, 0x9C, 0xC0, 0xBC, 0x11, 0xEB, 0x02,
+ 0xBE, 0x93, 0x51, 0x42, 0xBC, 0x9E, 0xC1, 0x8D, 0xBE, 0x7A, 0x41, 0x8C,
+ 0xBE, 0x0A, 0x1A, 0x1B, 0x3D, 0xA7, 0xF7, 0x91, 0xBD, 0x1E, 0x69, 0x5E,
+ 0x3E, 0x00, 0xB1, 0x64, 0xBE, 0x7E, 0x14, 0x0F, 0x3E, 0xB7, 0x94, 0x73,
+ 0xBD, 0x71, 0xD9, 0xB5, 0x3A, 0x88, 0x85, 0x06, 0xBE, 0xB3, 0x40, 0x83,
+ 0x3C, 0xD5, 0x40, 0xEE, 0x3C, 0x9B, 0xBE, 0x11, 0x3E, 0x25, 0x42, 0xED,
+ 0x3B, 0xD9, 0x13, 0xEF, 0xBB, 0x9C, 0x1A, 0xE1, 0xBD, 0x10, 0x10, 0x4F,
+ 0x3C, 0x06, 0xF1, 0xF2, 0xBD, 0x53, 0x0D, 0xD1, 0xBD, 0x8D, 0x36, 0x82,
+ 0xB9, 0x35, 0xC8, 0xCA, 0x3B, 0x23, 0x3D, 0x07, 0x3E, 0x44, 0x64, 0xCC,
+ 0xBC, 0xB2, 0x0C, 0xE2, 0xBC, 0x0D, 0x39, 0xAA, 0xBE, 0x06, 0xDE, 0x3A,
+ 0xBD, 0x46, 0x69, 0x3F, 0x3D, 0x7A, 0x53, 0x88, 0x3C, 0xD8, 0x3A, 0x18,
+ 0xBC, 0x57, 0xDB, 0x0B, 0x3D, 0x87, 0x3E, 0x82, 0x3E, 0x1C, 0x62, 0x58,
+ 0x3D, 0xD9, 0x37, 0x8E, 0x3C, 0x5D, 0x27, 0x53, 0x3D, 0xBB, 0x69, 0xAE,
+ 0xBE, 0x65, 0x08, 0x87, 0xBB, 0xA7, 0xD7, 0xCC, 0xBC, 0xDF, 0x60, 0x47,
+ 0x3D, 0x01, 0xAE, 0x62, 0x3E, 0x04, 0x1E, 0x41, 0x3C, 0x67, 0x26, 0x71,
+ 0xBC, 0x6D, 0x56, 0xA1, 0xBC, 0x66, 0x14, 0xF5, 0x3B, 0x1C, 0x06, 0xCC,
+ 0xBC, 0xA5, 0xEF, 0xD5, 0x3E, 0xBD, 0x08, 0xC1, 0xBC, 0x9C, 0x72, 0xC6,
+ 0xBC, 0xC9, 0xD1, 0x95, 0x3E, 0xDA, 0xCE, 0xFD, 0xBD, 0xDF, 0xF9, 0x14,
+ 0xBD, 0xD4, 0x0A, 0x6A, 0x3B, 0xED, 0x3A, 0xB7, 0x3D, 0x4B, 0x23, 0x81,
+ 0xBC, 0xDE, 0x89, 0xAF, 0xBE, 0xC2, 0x19, 0x88, 0x3A, 0xA3, 0x43, 0x6C,
+ 0x3D, 0xF3, 0xCF, 0xCC, 0xBD, 0x2F, 0xE9, 0x86, 0xBD, 0x81, 0xD5, 0xED,
+ 0xBD, 0xF7, 0x7D, 0x0A, 0x3E, 0x56, 0x61, 0x92, 0x3D, 0xBC, 0x1C, 0x61,
+ 0x3B, 0xF3, 0xD4, 0xF7, 0xB9, 0x15, 0x17, 0x04, 0x3D, 0x34, 0xD8, 0x18,
+ 0x3C, 0xFD, 0xBF, 0x7B, 0x3C, 0xF4, 0x3F, 0xFA, 0xB9, 0x06, 0x9B, 0xE5,
+ 0x3C, 0xBB, 0x52, 0xED, 0x3A, 0x1A, 0x65, 0xB2, 0xBE, 0xE7, 0xDE, 0xAA,
+ 0xBE, 0x72, 0x21, 0xA7, 0x3D, 0xCF, 0xEE, 0x57, 0xBE, 0xAF, 0xFA, 0x7E,
+ 0xBE, 0x83, 0x38, 0x2D, 0x3D, 0x55, 0x7E, 0x86, 0xBB, 0x56, 0xD8, 0x0B,
+ 0xBD, 0xAE, 0xF1, 0xCD, 0x3B, 0x0C, 0xD7, 0xE3, 0xBC, 0x49, 0x9A, 0x3C,
+ 0x3E, 0x8F, 0xD8, 0x5C, 0xBB, 0xEE, 0x0E, 0xA4, 0x3E, 0x5F, 0x35, 0xA2,
+ 0x3D, 0xF4, 0xB8, 0xAB, 0xBC, 0x98, 0x66, 0x94, 0x3C, 0x2C, 0x1F, 0xA9,
+ 0xBF, 0xFB, 0xF3, 0xD9, 0xBE, 0xA6, 0x0D, 0xD4, 0xBD, 0xE0, 0x6D, 0x60,
+ 0xBD, 0x49, 0x25, 0x18, 0x3D, 0xCF, 0x64, 0xB7, 0x3B, 0xC4, 0xD3, 0xAE,
+ 0x3D, 0xBD, 0x45, 0x13, 0x3C, 0xC9, 0x25, 0x9E, 0x3B, 0x27, 0x21, 0x9B,
+ 0xBF, 0x82, 0xCB, 0xB2, 0xBC, 0xBB, 0x02, 0x72, 0x3C, 0x41, 0xFD, 0x83,
+ 0xBE, 0xF4, 0x1A, 0x76, 0x3E, 0xA1, 0x5F, 0x28, 0xBD, 0xDC, 0x5C, 0xEC,
+ 0xBD, 0x2A, 0xA6, 0xD0, 0xBD, 0x6D, 0xEB, 0x40, 0x3F, 0xC1, 0x64, 0x8B,
+ 0x3B, 0x62, 0x23, 0xD3, 0x39, 0xC9, 0x36, 0xDB, 0xBB, 0x80, 0x0D, 0xE3,
+ 0xBA, 0x46, 0x21, 0xA5, 0x3E, 0xB8, 0x8F, 0x3D, 0x3F, 0x7F, 0xAA, 0x67,
+ 0x3E, 0xD2, 0x3E, 0x57, 0x3C, 0xD0, 0x21, 0x70, 0x3E, 0xA9, 0x95, 0x90,
+ 0xBD, 0x69, 0xC8, 0x9F, 0x3C, 0xB4, 0xD8, 0x8C, 0xBD, 0xEA, 0x17, 0xA8,
+ 0x3C, 0x16, 0x43, 0x2B, 0x3E, 0x74, 0xCB, 0xBB, 0x3E, 0xC2, 0x3E, 0x87,
+ 0xBC, 0xE2, 0xBE, 0x78, 0xBC, 0xF7, 0x8B, 0xC6, 0xBB, 0x42, 0x68, 0xB1,
+ 0x3D, 0xA5, 0x0E, 0x92, 0xBE, 0x83, 0xC2, 0xE4, 0xBD, 0x64, 0xF1, 0xCD,
+ 0x3D, 0x49, 0xE7, 0xC9, 0xBC, 0xE2, 0xD0, 0x56, 0x3D, 0x39, 0xE4, 0x52,
+ 0x3D, 0xB2, 0x25, 0x45, 0xBE, 0x04, 0x54, 0xC5, 0xBE, 0x11, 0x19, 0x9C,
+ 0xBC, 0x89, 0x6F, 0xEF, 0x3D, 0x0F, 0x4C, 0x5B, 0xBE, 0x59, 0xBF, 0x9A,
+ 0xBE, 0xCC, 0x51, 0xA8, 0x3F, 0x81, 0x4D, 0x87, 0x3E, 0x4B, 0xAA, 0xAC,
+ 0x3E, 0xFD, 0x7D, 0xB6, 0x3E, 0x59, 0x56, 0xF4, 0xBC, 0x2A, 0xB6, 0x23,
+ 0x3D, 0x59, 0xDD, 0xF1, 0x3E, 0x33, 0x94, 0x94, 0xBC, 0x02, 0xE8, 0xD3,
+ 0x3C, 0x1A, 0x78, 0x0B, 0xBE, 0xD0, 0x95, 0x02, 0x3C, 0xDF, 0x56, 0x5D,
+ 0xBE, 0xD9, 0x0B, 0xB5, 0x3E, 0x31, 0x06, 0x2F, 0x3D, 0xCE, 0x85, 0x04,
+ 0xBD, 0x27, 0x6B, 0xDC, 0xBF, 0xC2, 0xAB, 0x62, 0x3E, 0x41, 0x85, 0x58,
+ 0x3F, 0xE7, 0x3F, 0x7E, 0x3C, 0x78, 0x3A, 0x6B, 0xBD, 0x73, 0xA5, 0x4D,
+ 0x3D, 0x3A, 0x04, 0x7E, 0xBD, 0x58, 0xB9, 0x5F, 0x3C, 0xCC, 0x14, 0x85,
+ 0xBC, 0x00, 0xA5, 0x88, 0x40, 0x62, 0x01, 0xC7, 0x3B, 0xC7, 0x32, 0xA9,
+ 0x3C, 0xCB, 0x62, 0x35, 0x3E, 0x55, 0x53, 0xE6, 0xBF, 0x86, 0x9E, 0xF9,
+ 0xBC, 0xED, 0x0F, 0x88, 0x3E, 0x8E, 0x0D, 0x74, 0x3E, 0x97, 0xAD, 0xB7,
+ 0x3E, 0x41, 0xA8, 0xDD, 0x3C, 0xFE, 0x15, 0xDE, 0x3C, 0xC9, 0x11, 0xFB,
+ 0x3A, 0xA7, 0x56, 0x12, 0x3C, 0x70, 0x7D, 0x75, 0xC0, 0xF2, 0x12, 0x84,
+ 0x3F, 0x19, 0x2B, 0x8A, 0xBE, 0x81, 0x83, 0x80, 0xBC, 0x56, 0x3B, 0xAD,
+ 0x3D, 0x62, 0x44, 0x0F, 0x3E, 0x6E, 0xAD, 0x56, 0xBD, 0xD9, 0x9A, 0xAE,
+ 0x3D, 0xA0, 0x44, 0x3E, 0x3E, 0xF5, 0x23, 0x4D, 0xBE, 0xD4, 0x18, 0xE6,
+ 0xBF, 0x6A, 0x3C, 0x92, 0x3E, 0x1E, 0xE0, 0x12, 0x3C, 0x24, 0x00, 0x28,
+ 0x3F, 0x53, 0x04, 0x4C, 0xBE, 0x24, 0x29, 0xF1, 0x3E, 0x8C, 0xAA, 0x5E,
+ 0x3F, 0xFB, 0x53, 0x4F, 0xBD, 0x09, 0xD7, 0x42, 0x3D, 0x5F, 0x91, 0x21,
+ 0xBB, 0xA5, 0x47, 0x44, 0xBD, 0x2B, 0x40, 0xC9, 0xBE, 0x74, 0x44, 0x99,
+ 0x3F, 0xC1, 0xC4, 0x28, 0x3F, 0x5D, 0x68, 0x08, 0xBD, 0x17, 0x70, 0xAB,
+ 0x3D, 0xCE, 0x7B, 0x29, 0x40, 0xC6, 0xA5, 0xA7, 0xBF, 0xCB, 0xA1, 0x81,
+ 0x3F, 0xEA, 0xA6, 0x51, 0xBF, 0xD6, 0xF4, 0xC7, 0xBE, 0x3B, 0xFD, 0x17,
+ 0xBD, 0x95, 0xF9, 0x14, 0xBD, 0x97, 0x23, 0x1A, 0x3C, 0xEE, 0x2B, 0x23,
+ 0xBC, 0xBE, 0xA4, 0x3A, 0xBC, 0xE9, 0xE5, 0x8A, 0x3E, 0x96, 0x4A, 0x39,
+ 0xBC, 0x65, 0xF0, 0x1D, 0xBE, 0x59, 0x41, 0xDC, 0xBE, 0x17, 0x79, 0x21,
+ 0xBD, 0xA6, 0xFF, 0x26, 0x3C, 0x42, 0xB8, 0xE2, 0xBF, 0x64, 0x40, 0xD2,
+ 0xBC, 0xCB, 0x04, 0xAB, 0xBF, 0xCC, 0x67, 0x90, 0x3E, 0xA9, 0xBC, 0xF3,
+ 0x3B, 0x8F, 0x0D, 0xFD, 0x3B, 0xE2, 0xA3, 0x6A, 0x3B, 0x26, 0xD8, 0xE2,
+ 0x3C, 0xF4, 0x50, 0xFD, 0x3C, 0xAC, 0x0C, 0x45, 0xC0, 0x8A, 0x2F, 0x9A,
+ 0xBC, 0xE3, 0xB9, 0xC4, 0xBB, 0xA8, 0x92, 0xE0, 0x3E, 0x86, 0x82, 0xC0,
+ 0xC0, 0x37, 0x20, 0xA0, 0x3D, 0x22, 0xBB, 0x80, 0xBE, 0x13, 0x8A, 0x11,
+ 0x3E, 0x2C, 0x9C, 0x82, 0xC0, 0x7F, 0xFB, 0x44, 0x39, 0xBB, 0x5E, 0xDD,
+ 0xBC, 0x8C, 0x33, 0x9D, 0x3C, 0xC2, 0x21, 0xB0, 0x3B, 0x77, 0x96, 0x54,
+ 0x40, 0xE4, 0x6F, 0xB7, 0x3F, 0xF1, 0x14, 0x09, 0x3D, 0x4A, 0x4A, 0xCB,
+ 0x3C, 0x50, 0x94, 0xA1, 0x3E, 0x02, 0x15, 0x60, 0xBE, 0xD2, 0xC7, 0xB4,
+ 0x3D, 0xFB, 0x68, 0xEC, 0xBC, 0xF0, 0x7A, 0xE2, 0xBD, 0x8C, 0xAD, 0xAC,
+ 0x3D, 0xDD, 0x85, 0x73, 0xC0, 0x87, 0xB4, 0xC6, 0xBC, 0xA7, 0x2F, 0x5A,
+ 0xBD, 0xB3, 0xE2, 0xA0, 0x3E, 0x59, 0x11, 0xB0, 0x3E, 0x97, 0x1F, 0x33,
+ 0xBF, 0x7C, 0x44, 0x08, 0x3E, 0x69, 0x6D, 0x34, 0x3D, 0xA6, 0x9E, 0xCF,
+ 0xBC, 0xDA, 0x2F, 0x2D, 0xBE, 0xEE, 0x59, 0x5C, 0x3C, 0xB3, 0x1F, 0xF8,
+ 0xBB, 0xDE, 0x32, 0x51, 0xBF, 0xCA, 0x90, 0x8A, 0x3E, 0x79, 0x1F, 0x3B,
+ 0x3D, 0x07, 0x67, 0x39, 0x3D, 0x11, 0x7F, 0x64, 0xC0, 0x75, 0x80, 0x84,
+ 0xBF, 0x1B, 0xAB, 0x5F, 0x3F, 0xAC, 0xD6, 0x53, 0x3E, 0xDC, 0xA4, 0xC9,
+ 0x3B, 0x15, 0x1A, 0x20, 0x3D, 0x63, 0x4C, 0x69, 0xBD, 0x70, 0xB2, 0x6C,
+ 0x3C, 0x59, 0xDE, 0x29, 0x3D, 0xC5, 0xDF, 0x95, 0x3C, 0x22, 0xCE, 0x79,
+ 0xBD, 0x7C, 0x33, 0xB9, 0x3C, 0x41, 0x6B, 0xF9, 0xBD, 0x4B, 0x01, 0x7A,
+ 0xBC, 0x90, 0x64, 0xA7, 0x3D, 0xE0, 0x73, 0x2E, 0x3C, 0xB7, 0xF5, 0xC7,
+ 0x3E, 0xC6, 0x0E, 0x89, 0x3E, 0x71, 0x19, 0xD7, 0x3E, 0xF5, 0x5D, 0xAE,
+ 0xBE, 0xD8, 0x58, 0xDA, 0xBB, 0x7A, 0x3F, 0xE1, 0xBD, 0xA0, 0x67, 0xED,
+ 0x3C, 0xBA, 0x4C, 0x6A, 0xBD, 0xF8, 0x45, 0x57, 0x3D, 0x6A, 0x07, 0x66,
+ 0xBE, 0x29, 0x8D, 0xFF, 0x3D, 0xAB, 0x97, 0xC7, 0xBC, 0x6A, 0x77, 0x3A,
+ 0xBD, 0x11, 0xAB, 0x64, 0xBE, 0x20, 0x03, 0x7E, 0x3D, 0xE7, 0x4D, 0xE0,
+ 0x3D, 0x6C, 0x6C, 0x4E, 0xBE, 0x69, 0xC5, 0x06, 0x40, 0x3C, 0x75, 0x11,
+ 0xBC, 0x73, 0xA2, 0x60, 0x3C, 0x98, 0x19, 0x43, 0xBD, 0x54, 0xE9, 0x02,
+ 0xBD, 0x0A, 0x30, 0x1C, 0x40, 0xE7, 0xC8, 0x3B, 0x3F, 0x18, 0x9D, 0x9B,
+ 0x3E, 0xA7, 0x02, 0x70, 0xBD, 0x2C, 0x86, 0xB0, 0xBE, 0xE4, 0xE0, 0x82,
+ 0x3E, 0xA9, 0x27, 0xBB, 0xBD, 0x69, 0x82, 0x0B, 0x3C, 0xF2, 0x1F, 0xE1,
+ 0xBD, 0xDD, 0xCE, 0x3A, 0x3E, 0xAC, 0x16, 0x8E, 0xBE, 0x3B, 0xA2, 0x79,
+ 0x3E, 0x4D, 0x27, 0x8E, 0x3D, 0xFE, 0x80, 0x41, 0x3E, 0x7C, 0x40, 0x6D,
+ 0xBF, 0x8C, 0x77, 0x03, 0x3E, 0xCD, 0xC8, 0x26, 0x3E, 0xAD, 0x60, 0xC1,
+ 0x3A, 0x39, 0x20, 0xAF, 0xBB, 0x3A, 0x99, 0xC8, 0x3E, 0xC9, 0x22, 0x89,
+ 0x3C, 0x3E, 0xFA, 0xE7, 0x3D, 0x99, 0x96, 0xC4, 0x3E, 0x7D, 0x4D, 0xB9,
+ 0x3D, 0x96, 0xEF, 0xA8, 0x3D, 0xC0, 0xFC, 0x05, 0x3E, 0x02, 0x8A, 0xD2,
+ 0x3F, 0xAF, 0x18, 0x11, 0x3F, 0xFB, 0x14, 0xDB, 0x3D, 0x79, 0x3C, 0xC6,
+ 0xBC, 0xDE, 0xE0, 0xDD, 0x3D, 0x27, 0x4C, 0x9C, 0x39, 0x70, 0x1F, 0x80,
+ 0x3D, 0xE9, 0x1A, 0xD2, 0xBD, 0x83, 0xDD, 0x9A, 0xBC, 0x5C, 0x58, 0x16,
+ 0xBC, 0xB6, 0xF5, 0x5C, 0x3B, 0x9C, 0x69, 0x86, 0xBC, 0x95, 0x31, 0x3A,
+ 0x3D, 0xE4, 0xBE, 0x83, 0x3E, 0x3C, 0x0E, 0x86, 0xBD, 0x43, 0x85, 0xE1,
+ 0xBB, 0x1D, 0xF7, 0xEC, 0x3D, 0xF2, 0x54, 0x41, 0xBC, 0xFC, 0xED, 0xE3,
+ 0x3D, 0x23, 0x76, 0xEB, 0x3D, 0x3B, 0xBA, 0x12, 0x3C, 0xC5, 0x00, 0x5F,
+ 0x3C, 0x8C, 0x25, 0x48, 0xBD, 0x82, 0x47, 0x55, 0x3C, 0xE9, 0x10, 0x58,
+ 0xBD, 0x44, 0xDB, 0xEE, 0x3E, 0x26, 0x98, 0x9D, 0xBD, 0x07, 0xB4, 0xD4,
+ 0xBB, 0x42, 0xB4, 0xFD, 0xBD, 0x9D, 0x39, 0xBD, 0xBC, 0x78, 0xB4, 0xC4,
+ 0xBD, 0xDA, 0xDA, 0xB9, 0xBD, 0xA7, 0x92, 0xBE, 0xBD, 0xC5, 0x05, 0x0B,
+ 0x3D, 0x79, 0x81, 0x0C, 0xBC, 0x97, 0xD0, 0xCE, 0xBB, 0xCA, 0x80, 0xC1,
+ 0x3C, 0xE9, 0x81, 0x83, 0x3B, 0xAB, 0xA6, 0x07, 0xBF, 0xD8, 0xEE, 0xDD,
+ 0xBE, 0x76, 0x75, 0xC8, 0x3D, 0xE2, 0x3F, 0x01, 0x3D, 0x3C, 0xBF, 0x14,
+ 0xBD, 0x7E, 0x87, 0x7E, 0x3C, 0x68, 0x57, 0x4C, 0x3D, 0x9E, 0x80, 0x60,
+ 0xBC, 0x8F, 0x01, 0x21, 0x3C, 0xBA, 0xEF, 0x17, 0x3E, 0x3C, 0x6D, 0x89,
+ 0x3D, 0xA1, 0x39, 0xDF, 0xBC, 0x6C, 0x52, 0xEE, 0xBC, 0xA7, 0xA0, 0x2F,
+ 0x3E, 0xC5, 0x8D, 0xBE, 0xBD, 0x46, 0xCF, 0x61, 0xBD, 0x6D, 0x8A, 0xD2,
+ 0xBB, 0xB6, 0x48, 0x78, 0xBD, 0xCA, 0xAF, 0x7C, 0x3A, 0xE0, 0x13, 0x8D,
+ 0x3D, 0x79, 0x40, 0x1F, 0xBD, 0xB0, 0x8D, 0xCC, 0x3D, 0xF5, 0x42, 0x6D,
+ 0x3D, 0x89, 0xA7, 0xD8, 0xBC, 0x65, 0xEC, 0x60, 0xBE, 0x94, 0xA8, 0x84,
+ 0xBC, 0x98, 0x30, 0x52, 0x3F, 0xC6, 0x0B, 0x94, 0x3E, 0x3F, 0x30, 0xBF,
+ 0x3E, 0xB7, 0x14, 0x50, 0x3E, 0x83, 0xAA, 0xE0, 0xBD, 0x13, 0x2F, 0x21,
+ 0xBE, 0x35, 0xD8, 0x12, 0x3D, 0x4C, 0x96, 0x9B, 0xBD, 0x19, 0x63, 0x2E,
+ 0xBD, 0xBA, 0x26, 0x26, 0xBD, 0x37, 0xA8, 0x45, 0x3E, 0xAA, 0xC1, 0x65,
+ 0xBC, 0x3B, 0x53, 0x42, 0xBE, 0x7B, 0x9C, 0xDF, 0xBC, 0xFC, 0x11, 0x2D,
+ 0x3D, 0xC8, 0x1F, 0xD2, 0x3B, 0x67, 0x11, 0xBD, 0x3F, 0xA1, 0x3A, 0xD4,
+ 0xBC, 0xF1, 0x36, 0x3B, 0x3E, 0xE7, 0x31, 0x0C, 0xBD, 0xDA, 0xB9, 0xE5,
+ 0xBA, 0x85, 0x89, 0x86, 0x3D, 0x02, 0x4C, 0xE8, 0xBD, 0xD8, 0x18, 0x26,
+ 0x3D, 0x29, 0xFF, 0x14, 0x3D, 0x1F, 0x8A, 0xB3, 0x3F, 0xA6, 0xB4, 0xD2,
+ 0xBC, 0x6A, 0xA2, 0x65, 0xBB, 0x3E, 0xB2, 0x00, 0x3F, 0xB2, 0xF6, 0xA2,
+ 0xBD, 0x38, 0x17, 0x46, 0x3B, 0xAC, 0x40, 0xF9, 0xBC, 0x6B, 0x2B, 0x49,
+ 0xBE, 0xEE, 0x4A, 0x16, 0xBF, 0xAE, 0xEB, 0xB3, 0x3C, 0x30, 0xF2, 0xC6,
+ 0xBB, 0x46, 0x3C, 0x13, 0x3D, 0x72, 0xFF, 0x19, 0x3C, 0xEA, 0x78, 0x8F,
+ 0xBE, 0x4A, 0x73, 0x48, 0xBF, 0x9C, 0x7A, 0x6C, 0xBE, 0x20, 0x12, 0x00,
+ 0xBB, 0xF9, 0x4F, 0x21, 0xBF, 0x73, 0xD6, 0x03, 0x3C, 0x39, 0x84, 0x23,
+ 0x3D, 0x2E, 0x0E, 0xD9, 0xBC, 0x93, 0x9E, 0xB2, 0x3B, 0x24, 0xBD, 0x34,
+ 0xBE, 0x19, 0x16, 0xEC, 0xBD, 0x8C, 0x54, 0xA8, 0xBC, 0xC0, 0xA2, 0x58,
+ 0x3D, 0x6A, 0x0E, 0xB0, 0x3E, 0xBB, 0xBC, 0x9B, 0xBE, 0x0C, 0x40, 0x92,
+ 0x3E, 0x8C, 0x48, 0x16, 0x3E, 0xFC, 0xE6, 0x07, 0xBD, 0xB6, 0xA8, 0x84,
+ 0x3C, 0xC7, 0x93, 0xE5, 0xBD, 0x71, 0x67, 0x4A, 0xBD, 0x29, 0x83, 0x3A,
+ 0x3E, 0xAA, 0x8C, 0x41, 0xBE, 0xAD, 0x91, 0x4A, 0x3D, 0x63, 0xD2, 0x97,
+ 0xBD, 0xF2, 0x54, 0x46, 0x3D, 0x36, 0x77, 0x0C, 0xC0, 0xB0, 0xF6, 0x00,
+ 0xBE, 0xEA, 0xFB, 0xAF, 0x3E, 0x27, 0x8E, 0x6B, 0xBF, 0x7C, 0x27, 0x2A,
+ 0x3E, 0x76, 0x2E, 0x0E, 0x3E, 0xA7, 0x27, 0x64, 0xBD, 0xFB, 0x3C, 0x04,
+ 0x3E, 0x21, 0x1A, 0xC8, 0x3C, 0x4C, 0x9E, 0x94, 0x3C, 0x97, 0xCB, 0x1C,
+ 0x40, 0xC5, 0x2E, 0x0C, 0xBC, 0xB4, 0xB9, 0xFF, 0x3C, 0xBF, 0x17, 0xCF,
+ 0xBE, 0x2F, 0xB4, 0x09, 0xBD, 0xA5, 0x7E, 0xCD, 0x3B, 0x31, 0x19, 0x7E,
+ 0x3F, 0xBB, 0xBE, 0x29, 0xBF, 0x0A, 0x6F, 0x37, 0xBF, 0xB1, 0xC4, 0x22,
+ 0xBE, 0xFC, 0xCA, 0x8B, 0x3D, 0x21, 0x68, 0x50, 0xBD, 0xB6, 0xB4, 0x0B,
+ 0x3E, 0xC2, 0xAA, 0xC1, 0xBB, 0x38, 0x88, 0x30, 0x3C, 0xBC, 0xF0, 0x8C,
+ 0xBF, 0x01, 0xD2, 0xF3, 0x3C, 0xC3, 0x60, 0x90, 0xBC, 0x33, 0x22, 0x93,
+ 0x3E, 0xA1, 0x1A, 0x1A, 0x40, 0x78, 0x29, 0x5A, 0x3D, 0x01, 0x8E, 0x02,
+ 0xBE, 0x1A, 0x69, 0x38, 0xBD, 0x88, 0xBB, 0x46, 0xC0, 0x55, 0xB9, 0xAA,
+ 0xB9, 0x8B, 0xB9, 0x28, 0xBC, 0x6E, 0x91, 0x63, 0xBC, 0x15, 0x28, 0x2C,
+ 0x3B, 0x2C, 0xF4, 0x2F, 0x40, 0x0D, 0xFE, 0xF7, 0xBF, 0x1F, 0x7E, 0x44,
+ 0x3D, 0x5D, 0x86, 0x45, 0x3C, 0xAC, 0xA9, 0x82, 0x3F, 0x43, 0x4E, 0x4D,
+ 0x3E, 0x4C, 0x04, 0x55, 0xBC, 0x93, 0x08, 0x4B, 0xBD, 0x06, 0xDA, 0x46,
+ 0x3D, 0x1C, 0x24, 0x3F, 0xBD, 0x78, 0x20, 0x03, 0x40, 0xA4, 0x1C, 0xDC,
+ 0xBD, 0x79, 0x2F, 0x30, 0xBD, 0x77, 0x4D, 0xF7, 0x3C, 0x7D, 0x0E, 0x4B,
+ 0x3F, 0xDC, 0x73, 0xB7, 0xBF, 0x87, 0x54, 0x16, 0xC0, 0xB9, 0xAB, 0x31,
+ 0x3E, 0x5D, 0xE0, 0xDE, 0xBC, 0x87, 0xB9, 0x98, 0x3F, 0x43, 0x93, 0x38,
+ 0x3D, 0xD3, 0xA8, 0x15, 0x40, 0xAE, 0xD1, 0x5B, 0xBF, 0xD2, 0x31, 0xBD,
+ 0x3D, 0x48, 0x2D, 0x08, 0xBE, 0xC4, 0x58, 0x31, 0xBD, 0x51, 0xAF, 0x3E,
+ 0x40, 0x4E, 0x78, 0x48, 0x3E, 0x10, 0x6C, 0x19, 0x40, 0xE4, 0x77, 0xB3,
+ 0xC1, 0xBB, 0x1E, 0xC6, 0x3D, 0xC8, 0x70, 0x83, 0xBD, 0xB9, 0x31, 0x7F,
+ 0x3D, 0xEE, 0x30, 0x2D, 0xBF, 0x6A, 0x6C, 0x9A, 0x3C, 0xE7, 0xE5, 0x30,
+ 0xBA, 0x32, 0x1C, 0x9F, 0xC0, 0xBB, 0xE6, 0x30, 0x3D, 0x24, 0x76, 0x90,
+ 0x3E, 0x41, 0x33, 0x73, 0xBE, 0x53, 0xB0, 0xFB, 0x3D, 0x3F, 0x2B, 0x89,
+ 0xBC, 0xB2, 0x8B, 0x47, 0x3F, 0x9C, 0x58, 0xC0, 0xBE, 0x17, 0x29, 0x67,
+ 0xC0, 0xDB, 0x3C, 0xDF, 0xBC, 0x25, 0x65, 0x69, 0xBC, 0xE4, 0xFF, 0xB9,
+ 0x3D, 0x31, 0xDA, 0xB4, 0xBD, 0x6D, 0x8B, 0x42, 0xBD, 0xEF, 0x52, 0x2E,
+ 0xBD, 0x38, 0xD6, 0x28, 0xC0, 0x89, 0xC9, 0x5A, 0x3D, 0x7C, 0x94, 0x39,
+ 0x3C, 0x5B, 0xE5, 0x86, 0x3E, 0x40, 0x99, 0xED, 0x3F, 0x35, 0x5A, 0x71,
+ 0xBD, 0x3A, 0x17, 0xDF, 0x3E, 0x43, 0x37, 0xB7, 0xBE, 0xB3, 0x03, 0xA1,
+ 0x40, 0xB4, 0xB6, 0xB5, 0x3A, 0xF4, 0x16, 0x13, 0x3D, 0x27, 0xB2, 0xD7,
+ 0xBC, 0x74, 0x39, 0xB4, 0xBB, 0x1E, 0x47, 0xCD, 0xC0, 0x42, 0xD3, 0x1A,
+ 0xC0, 0x3F, 0x25, 0x0B, 0xBF, 0x84, 0x91, 0xE3, 0xBC, 0x89, 0x52, 0xDA,
+ 0xC0, 0x0C, 0xAE, 0xD8, 0xBD, 0x7A, 0x03, 0x85, 0xBD, 0x6E, 0x9E, 0x93,
+ 0x3D, 0x1B, 0x78, 0x24, 0x3E, 0x84, 0x58, 0xD7, 0xBD, 0xAB, 0x13, 0x76,
+ 0x40, 0xF5, 0xBE, 0x04, 0x40, 0x56, 0x35, 0xB8, 0x3D, 0x75, 0xFC, 0x23,
+ 0xBE, 0x47, 0xF0, 0xDD, 0xBF, 0x14, 0x44, 0xA7, 0x3F, 0xF0, 0x2C, 0x60,
+ 0x3F, 0xC4, 0x59, 0x2B, 0xBD, 0x76, 0xAB, 0x97, 0x3C, 0x76, 0x05, 0x41,
+ 0x3D, 0xA4, 0x89, 0xB7, 0xBC, 0x38, 0xBD, 0x0B, 0xBF, 0x32, 0x1F, 0x06,
+ 0x40, 0x4D, 0xB3, 0x95, 0xBB, 0x0E, 0x78, 0x2E, 0xBD, 0x87, 0x21, 0x2F,
+ 0xBC, 0x58, 0x0D, 0x3F, 0xBF, 0x09, 0x8F, 0x27, 0xBC, 0x0E, 0x71, 0xC2,
+ 0x3E, 0xB0, 0xF1, 0x0E, 0xBF, 0xD7, 0x55, 0x86, 0x3E, 0x43, 0xB0, 0xD2,
+ 0xBD, 0xCC, 0x9B, 0xA5, 0xBD, 0xDC, 0x6A, 0xFC, 0x3E, 0x80, 0x17, 0x12,
+ 0xBD, 0x20, 0x3E, 0xBB, 0xBC, 0xE2, 0x0B, 0xA6, 0x3F, 0xB3, 0x15, 0x09,
+ 0xBD, 0xB0, 0x0C, 0x6F, 0xBD, 0xE5, 0x26, 0x80, 0xBE, 0xD1, 0x60, 0xBC,
+ 0xBD, 0x71, 0xF0, 0xBE, 0x3B, 0x8A, 0x54, 0x30, 0xBF, 0xF9, 0x7D, 0x92,
+ 0xBE, 0x25, 0x90, 0xF8, 0x3E, 0xA2, 0x4B, 0x86, 0x3E, 0x0E, 0x31, 0x48,
+ 0x3C, 0x30, 0xAF, 0x46, 0x3D, 0xBC, 0x50, 0xAC, 0xBC, 0x19, 0x1C, 0x97,
+ 0x3D, 0xD2, 0x2E, 0x9E, 0xBC, 0x50, 0xF6, 0x27, 0x40, 0xE4, 0x01, 0xE8,
+ 0xBD, 0xC6, 0xA1, 0x0D, 0x3D, 0xAB, 0x6D, 0x44, 0x3D, 0x46, 0xA4, 0x63,
+ 0x3E, 0x1B, 0x48, 0x57, 0xBC, 0x7A, 0x79, 0xBF, 0xBE, 0x9C, 0xAA, 0xF4,
+ 0xBE, 0xBA, 0xAA, 0x06, 0xBF, 0xDE, 0x06, 0x60, 0xBC, 0x9C, 0x20, 0xD0,
+ 0xBC, 0x58, 0xEA, 0x88, 0x3C, 0x0C, 0x69, 0x09, 0xBC, 0xD9, 0xFF, 0x27,
+ 0x3F, 0x58, 0x4C, 0xAE, 0xBF, 0x76, 0x83, 0x90, 0x3E, 0x0B, 0x5D, 0x4C,
+ 0x3D, 0x61, 0x88, 0x95, 0x40, 0xAF, 0xB1, 0x93, 0xBE, 0x71, 0x1C, 0xD3,
+ 0x3D, 0x0B, 0x2D, 0xA1, 0xBC, 0xB7, 0x56, 0x62, 0xBD, 0x63, 0x99, 0x01,
+ 0xBF, 0x74, 0x12, 0x9F, 0xBC, 0x82, 0x0C, 0xA7, 0xBE, 0x12, 0x6D, 0x98,
+ 0xBD, 0xA6, 0xE5, 0xD7, 0xBE, 0xA4, 0x16, 0x1D, 0x41, 0x1E, 0xBA, 0x77,
+ 0xBE, 0x35, 0x76, 0x4F, 0xBE, 0x41, 0x42, 0xC2, 0xBD, 0x8B, 0xF0, 0x86,
+ 0xBC, 0x90, 0x12, 0x10, 0xC0, 0x54, 0x9E, 0xA8, 0x3B, 0x45, 0x66, 0x5C,
+ 0xBF, 0xD3, 0xEA, 0x58, 0xBF, 0xDE, 0xE3, 0xBC, 0xBE, 0xA4, 0xBC, 0xDD,
+ 0x3D, 0x08, 0xC8, 0x1B, 0xBE, 0x70, 0xD6, 0x36, 0xBF, 0x18, 0x3C, 0x8F,
+ 0x3E, 0x18, 0xDF, 0xA4, 0x3E, 0x26, 0xE6, 0x3A, 0xBE, 0x68, 0x71, 0x42,
+ 0xBE, 0x6D, 0xD5, 0x33, 0x3E, 0x79, 0x38, 0x10, 0x3D, 0xB1, 0xAE, 0x1E,
+ 0xBE, 0x92, 0xE4, 0x4C, 0x3C, 0x4C, 0x9B, 0xDC, 0x3C, 0xC8, 0x84, 0x0F,
+ 0xBE, 0xF5, 0x1A, 0x6C, 0x3C, 0xA9, 0x79, 0x46, 0x3E, 0xB3, 0x48, 0x1C,
+ 0x3E, 0x3E, 0x49, 0xA6, 0x3B, 0x4F, 0xFB, 0x4F, 0xBC, 0x68, 0x84, 0xBA,
+ 0xBF, 0xBA, 0x44, 0xDC, 0x3E, 0xD9, 0x02, 0xF7, 0x3D, 0x27, 0x70, 0xEE,
+ 0xBC, 0xA3, 0xEA, 0x8E, 0xBD, 0xC5, 0x03, 0xFC, 0xBD, 0x2C, 0xE5, 0xBF,
+ 0x3D, 0x82, 0xB9, 0x0B, 0xBD, 0xC7, 0x85, 0x01, 0x3D, 0x0A, 0xDB, 0x49,
+ 0xBF, 0x87, 0x0B, 0x8A, 0x3D, 0xA1, 0x94, 0x02, 0xBD, 0x23, 0x08, 0x06,
+ 0xBC, 0xC2, 0xE6, 0xEF, 0x3B, 0x26, 0x6B, 0xB4, 0x3D, 0x22, 0x4D, 0x8F,
+ 0x3D, 0xF3, 0x40, 0x44, 0xBE, 0x3D, 0x3E, 0x33, 0xBE, 0xA5, 0xC1, 0x5E,
+ 0xBC, 0x34, 0x22, 0x9E, 0x3B, 0x91, 0x82, 0x8E, 0x3C, 0xB9, 0x0A, 0x33,
+ 0x3C, 0xA9, 0x51, 0x74, 0x3F, 0x32, 0xFE, 0x7C, 0xBE, 0xB9, 0xD2, 0xFD,
+ 0xBD, 0xF7, 0xF7, 0x93, 0xBC, 0x50, 0x37, 0x68, 0x3F, 0x83, 0xA6, 0xFD,
+ 0x3D, 0xEC, 0xE9, 0x6D, 0xBD, 0xDE, 0x32, 0x31, 0x3C, 0x54, 0xA6, 0x06,
+ 0xBE, 0xE3, 0x55, 0xDE, 0xBD, 0xE3, 0x64, 0x81, 0x3E, 0xA3, 0x34, 0xC6,
+ 0x3C, 0xDB, 0x65, 0x99, 0xBC, 0x32, 0x1F, 0x98, 0xBC, 0x6D, 0x98, 0x0E,
+ 0x3F, 0xA6, 0x1C, 0x55, 0x3E, 0x6F, 0xE1, 0x29, 0x3E, 0x8C, 0xD8, 0xA2,
+ 0x3D, 0x92, 0x13, 0x3E, 0x3C, 0xDB, 0xAC, 0x36, 0x3D, 0xED, 0x2A, 0xDB,
+ 0x3C, 0xFB, 0xEC, 0xB3, 0xBD, 0x1D, 0xFA, 0xEE, 0x3C, 0xA1, 0x8E, 0x85,
+ 0xBD, 0x12, 0x8E, 0x36, 0x3E, 0x3E, 0xDC, 0x02, 0x3E, 0x59, 0x7B, 0x45,
+ 0xBE, 0x5F, 0xFA, 0xAF, 0x3D, 0x01, 0x89, 0x1F, 0xBE, 0x19, 0xC0, 0x84,
+ 0xBD, 0x00, 0xB4, 0x72, 0x3E, 0x25, 0xB1, 0x3D, 0xBD, 0xCB, 0x57, 0x77,
+ 0x3C, 0xA3, 0x2F, 0xEA, 0x3D, 0x7D, 0x81, 0x71, 0xBC, 0x29, 0xE1, 0x80,
+ 0x3C, 0x74, 0x48, 0x89, 0x3E, 0xD2, 0x6E, 0xF4, 0xB9, 0x4B, 0xE3, 0x88,
+ 0x3D, 0x4D, 0x6A, 0x98, 0x3E, 0x2A, 0x08, 0xA9, 0x3C, 0xB3, 0xFC, 0xBA,
+ 0xBC, 0x8C, 0xA4, 0xA0, 0xBE, 0xDB, 0x9E, 0xCC, 0x3D, 0xB2, 0x1D, 0xA2,
+ 0x3D, 0xF2, 0xDA, 0x9C, 0x3D, 0x7E, 0xAC, 0x93, 0x3B, 0xCB, 0x69, 0xE1,
+ 0xBC, 0xA6, 0x08, 0xDF, 0xBB, 0xD6, 0x1C, 0x05, 0x3D, 0x5E, 0xE4, 0x73,
+ 0xBD, 0x97, 0x27, 0x95, 0x3E, 0x40, 0xC8, 0x61, 0xBD, 0x9B, 0xF8, 0x94,
+ 0x3C, 0x97, 0x23, 0x69, 0xBE, 0xB6, 0x04, 0xB6, 0xBE, 0xD8, 0x43, 0xEF,
+ 0xBC, 0xDD, 0xD8, 0x43, 0xBE, 0x18, 0x16, 0x34, 0xBE, 0x6F, 0x1B, 0x0D,
+ 0xBF, 0x7A, 0xE8, 0x20, 0x3D, 0x42, 0x83, 0xAE, 0x3C, 0xDF, 0x20, 0x68,
+ 0x3C, 0x16, 0x9B, 0xC1, 0x3C, 0xD8, 0x79, 0x13, 0x3E, 0xF1, 0xE7, 0x08,
+ 0xBD, 0x36, 0x7D, 0x87, 0x3D, 0x3A, 0x5D, 0x42, 0x3C, 0x1A, 0xA8, 0xBC,
+ 0x3D, 0x59, 0xDC, 0x0D, 0xBE, 0x9A, 0x1D, 0x88, 0x3B, 0x38, 0xB5, 0xB9,
+ 0x3C, 0x8E, 0x76, 0x3E, 0x3C, 0x39, 0xF7, 0x2B, 0xBE, 0xC1, 0x64, 0x36,
+ 0xBF, 0x69, 0x09, 0xAC, 0x3E, 0x20, 0xFC, 0xAE, 0xBC, 0xF2, 0x80, 0x92,
+ 0xBE, 0x35, 0xFB, 0x84, 0x3D, 0xA3, 0x26, 0x0A, 0xBF, 0x35, 0x4F, 0x00,
+ 0xBF, 0x3C, 0xE7, 0x17, 0x3E, 0xD2, 0x54, 0xCA, 0x3C, 0x32, 0x5A, 0x50,
+ 0xBE, 0xD6, 0x7A, 0xA7, 0xBC, 0x14, 0x78, 0x4A, 0x3E, 0x34, 0x2C, 0x81,
+ 0x3E, 0xB0, 0xC7, 0x86, 0x3D, 0xBD, 0xDA, 0x10, 0x3E, 0x3E, 0x15, 0x00,
+ 0xBE, 0xCB, 0xD1, 0xEA, 0x3E, 0x8E, 0xF1, 0xC3, 0xBE, 0xBD, 0x0C, 0x8B,
+ 0x3B, 0xF1, 0x13, 0x09, 0x3E, 0x84, 0x0E, 0xDE, 0xBE, 0x6B, 0xD8, 0xCE,
+ 0xBD, 0xC9, 0x56, 0x4A, 0xBD, 0xAC, 0x71, 0x0D, 0x3C, 0xAC, 0xAD, 0x82,
+ 0x3B, 0x16, 0xF5, 0xE1, 0xBC, 0xC8, 0x4B, 0x92, 0x40, 0x4D, 0xC8, 0xF1,
+ 0x3B, 0xB3, 0xB7, 0xA1, 0x3D, 0x95, 0xDE, 0x07, 0x3E, 0x54, 0x78, 0x7E,
+ 0x3B, 0xD6, 0x19, 0x94, 0x3C, 0x43, 0x8F, 0xCC, 0xBE, 0x35, 0xFA, 0x4A,
+ 0x3F, 0x5D, 0x60, 0x12, 0x3F, 0xA4, 0x62, 0x64, 0x3D, 0xEA, 0xE0, 0x69,
+ 0xBD, 0x72, 0x19, 0x9A, 0xBD, 0x9A, 0xC0, 0x4C, 0xBC, 0x01, 0x0E, 0x50,
+ 0x3A, 0x26, 0x88, 0x42, 0x3D, 0x46, 0x7D, 0xDE, 0xBF, 0x75, 0x27, 0x73,
+ 0x3D, 0xE1, 0xE3, 0xF4, 0xBA, 0x70, 0xE5, 0x40, 0x3E, 0xF8, 0xC3, 0x18,
+ 0x3F, 0x6E, 0xD0, 0x95, 0xBD, 0xF7, 0x5D, 0x0A, 0x3F, 0x99, 0xAD, 0x86,
+ 0x3E, 0xF9, 0x91, 0x2E, 0x40, 0xEE, 0x16, 0xA1, 0xBC, 0xE2, 0xE6, 0x5C,
+ 0xBC, 0x1C, 0xEC, 0x98, 0xBC, 0xA3, 0xFD, 0x73, 0xBD, 0x48, 0xCF, 0x0D,
+ 0xBF, 0xFB, 0x39, 0xC2, 0x3F, 0x12, 0x25, 0x5F, 0x3E, 0xF2, 0xC5, 0x14,
+ 0xBC, 0x2F, 0x10, 0xD8, 0x3E, 0x74, 0xE7, 0x13, 0x3E, 0x0B, 0x1B, 0x01,
+ 0x3D, 0xE6, 0x6A, 0xCC, 0xBB, 0xBD, 0xFD, 0xE3, 0xBD, 0xDC, 0x68, 0x93,
+ 0xBD, 0x5F, 0x79, 0x2F, 0x3F, 0x8F, 0x0E, 0x8D, 0xBD, 0x6D, 0xAE, 0x99,
+ 0x3C, 0x2E, 0xED, 0xF3, 0x3C, 0x50, 0xAE, 0x37, 0xBE, 0xA4, 0xAE, 0xC5,
+ 0xC0, 0x5C, 0xA9, 0xAA, 0x40, 0x77, 0xD8, 0x12, 0xBE, 0xC8, 0x6D, 0xF0,
+ 0xBC, 0x7D, 0x07, 0x99, 0x3F, 0x9E, 0x67, 0x15, 0xBC, 0x5A, 0xBF, 0x84,
+ 0x3F, 0x47, 0x28, 0x48, 0xBF, 0xF5, 0xBC, 0x62, 0xBE, 0x70, 0x02, 0xE4,
+ 0x3D, 0xDC, 0xD0, 0xF7, 0xBC, 0xA9, 0x66, 0xAB, 0xBF, 0x4D, 0x09, 0x91,
+ 0x3E, 0xA2, 0x17, 0x7E, 0xBF, 0x2C, 0x6F, 0x6C, 0xBF, 0x55, 0xAD, 0x13,
+ 0x3E, 0x5E, 0x55, 0x37, 0x3E, 0xDA, 0x57, 0x41, 0x3C, 0xD5, 0xEB, 0xD6,
+ 0x3A, 0xE1, 0x30, 0x7E, 0x3C, 0x81, 0x41, 0x34, 0x3C, 0xEC, 0x21, 0x87,
+ 0xC0, 0x4F, 0x68, 0xEF, 0xBB, 0xAA, 0x59, 0x87, 0xBE, 0x03, 0x7B, 0xE5,
+ 0xBE, 0xD7, 0xD4, 0x02, 0xBE, 0x33, 0x45, 0x5D, 0x3C, 0x0A, 0x96, 0xC7,
+ 0x3D, 0x5A, 0x8F, 0x09, 0x3F, 0x04, 0x43, 0xB4, 0x3F, 0x5F, 0xB5, 0x40,
+ 0xBD, 0x64, 0x93, 0xE5, 0xBC, 0x0F, 0x9C, 0x07, 0xBE, 0x26, 0xED, 0xC1,
+ 0x3D, 0x3A, 0xF2, 0x01, 0xBD, 0xB1, 0x89, 0x0C, 0x3B, 0xEA, 0x2D, 0x12,
+ 0x40, 0x56, 0x7E, 0x0F, 0x3D, 0x96, 0x93, 0x63, 0xBC, 0x3B, 0x07, 0xE5,
+ 0x3E, 0x13, 0x2D, 0x0C, 0x40, 0x70, 0x36, 0xDE, 0x3C, 0x17, 0x3B, 0x90,
+ 0x3F, 0x75, 0x5F, 0x32, 0xBF, 0x5B, 0x48, 0xF9, 0xBF, 0x3E, 0xC9, 0xAE,
+ 0xBB, 0xFE, 0xE5, 0xD4, 0x3B, 0x21, 0x67, 0x90, 0xBC, 0x46, 0x69, 0x5E,
+ 0xBC, 0x01, 0x3D, 0x4F, 0x40, 0x65, 0x3C, 0xEE, 0x3F, 0xDB, 0x40, 0x75,
+ 0x3E, 0x07, 0x12, 0x05, 0xBD, 0x6A, 0x9A, 0x1E, 0xC0, 0x33, 0xCA, 0xEF,
+ 0xBD, 0xC7, 0x22, 0x76, 0xBD, 0x16, 0x7C, 0x8D, 0xBC, 0x15, 0xC7, 0xF4,
+ 0xBC, 0xE1, 0x0C, 0x91, 0x3E, 0x0A, 0xBB, 0xA1, 0x3F, 0xB5, 0x7B, 0x16,
+ 0xC1, 0x8D, 0x50, 0xB1, 0x3A, 0xD6, 0xF3, 0x49, 0x3D, 0xAE, 0x4A, 0xEC,
+ 0x3D, 0x79, 0x42, 0x7B, 0xBF, 0x03, 0x1A, 0x33, 0x40, 0xC8, 0x37, 0xD0,
+ 0x3D, 0x6E, 0xC3, 0x26, 0x3B, 0x57, 0xFC, 0x80, 0xBE, 0x41, 0xEE, 0x1A,
+ 0x3D, 0xA0, 0x49, 0xB2, 0xBE, 0x6E, 0x1E, 0xA7, 0xBF, 0xBA, 0xA8, 0x0A,
+ 0xBF, 0x43, 0xB4, 0x05, 0xBE, 0x67, 0x58, 0x4F, 0x3D, 0xF4, 0xFB, 0xF5,
+ 0x3F, 0x8D, 0x30, 0x70, 0x3E, 0x16, 0x17, 0xA5, 0xBD, 0x2E, 0x60, 0xFF,
+ 0x3D, 0x34, 0x2A, 0xA9, 0xBE, 0xE7, 0xCF, 0x64, 0xBD, 0xEB, 0x66, 0x92,
+ 0x3D, 0x69, 0x12, 0xC0, 0xBD, 0x37, 0x56, 0x98, 0x3B, 0x8D, 0x19, 0x53,
+ 0xBC, 0x95, 0x57, 0x93, 0x3E, 0x7F, 0xA0, 0x8C, 0x3B, 0x04, 0xA8, 0x9F,
+ 0x3C, 0xBC, 0xAA, 0xBF, 0xBE, 0xA9, 0xF3, 0x15, 0x3E, 0xE1, 0xB1, 0xC2,
+ 0xBC, 0x2D, 0xC8, 0x87, 0x3F, 0x69, 0x10, 0x46, 0x3F, 0x93, 0xC6, 0x0C,
+ 0xBE, 0x91, 0x08, 0xC3, 0xBD, 0x04, 0x8D, 0x06, 0x3E, 0xD4, 0x3F, 0x0E,
+ 0x3E, 0x9F, 0x2A, 0x4D, 0xBD, 0x56, 0x89, 0x48, 0xBD, 0xB4, 0x4E, 0x00,
+ 0xBD, 0xA5, 0xA6, 0x72, 0xBF, 0x1B, 0x11, 0x3A, 0xBD, 0x82, 0x26, 0x00,
+ 0x3A, 0x06, 0x94, 0x42, 0x3D, 0xBE, 0x08, 0x21, 0xBF, 0x42, 0x2C, 0xF8,
+ 0x3A, 0xF8, 0x47, 0x02, 0x3F, 0x6F, 0x6D, 0x2C, 0xBE, 0x65, 0xA2, 0xCE,
+ 0xBC, 0x56, 0xF5, 0x44, 0x3A, 0x89, 0x5A, 0xB8, 0x3B, 0x85, 0x26, 0xAD,
+ 0x3C, 0x30, 0x49, 0x7D, 0x3D, 0x10, 0x9F, 0x06, 0xC0, 0x33, 0xAA, 0x21,
+ 0x3F, 0x6A, 0x16, 0xC3, 0xBE, 0xEC, 0x6D, 0xBE, 0x3C, 0x46, 0x46, 0x28,
+ 0x40, 0xB0, 0xB9, 0x25, 0x3E, 0xD4, 0x77, 0x26, 0x3C, 0x6A, 0xC2, 0x85,
+ 0xBC, 0x38, 0x63, 0x13, 0x3E, 0x85, 0x07, 0xCA, 0xBE, 0xF1, 0x1D, 0x27,
+ 0xBF, 0xFA, 0x46, 0xD0, 0x3F, 0x92, 0xEB, 0x0B, 0x3D, 0xF2, 0x4D, 0x6B,
+ 0xBE, 0x2B, 0x8D, 0xC2, 0xBD, 0xB1, 0xF2, 0x2E, 0x3E, 0x4E, 0x09, 0x73,
+ 0xBF, 0x48, 0x51, 0xFA, 0x3D, 0xAB, 0xC6, 0x40, 0x3B, 0x3D, 0xA2, 0x9F,
+ 0xBF, 0xBE, 0xA8, 0xB1, 0xBC, 0x4B, 0x4D, 0x81, 0xBF, 0x52, 0xA3, 0xA5,
+ 0x3F, 0xC0, 0x0D, 0x89, 0x3E, 0x44, 0x27, 0xE3, 0xBB, 0x22, 0x0F, 0x7B,
+ 0x3D, 0x9F, 0xA8, 0x79, 0xBF, 0xE0, 0x03, 0x94, 0xBE, 0x6D, 0xF8, 0x8E,
+ 0xBD, 0x05, 0x3B, 0x98, 0x3D, 0xAB, 0xB2, 0xF8, 0x3D, 0x28, 0xBE, 0x71,
+ 0x3D, 0x0C, 0xB4, 0x41, 0xBD, 0xA5, 0x04, 0x02, 0x3E, 0xDC, 0x9B, 0xF1,
+ 0xBB, 0x3F, 0x47, 0x9E, 0xB9, 0x10, 0xB7, 0xF5, 0xBE, 0x3C, 0xF8, 0x93,
+ 0xBB, 0xB8, 0xAD, 0x11, 0x3C, 0x6B, 0x33, 0x01, 0x3E, 0xE4, 0xE0, 0x24,
+ 0xBD, 0x7B, 0x0C, 0xB5, 0x3C, 0x7D, 0x07, 0xA1, 0x3F, 0xD7, 0x13, 0xD2,
+ 0x3C, 0x26, 0xB3, 0xE6, 0x3C, 0xCB, 0x60, 0x92, 0xBC, 0x19, 0x8B, 0xB0,
+ 0xBD, 0xE4, 0x93, 0x47, 0x3D, 0x86, 0x03, 0x5E, 0xBC, 0x17, 0xBD, 0x3D,
+ 0x3D, 0x0C, 0x0B, 0x2B, 0x3D, 0xA4, 0xA3, 0x6C, 0x3E, 0x87, 0x8E, 0x7B,
+ 0x3B, 0xA6, 0xBF, 0xA1, 0xBB, 0x4C, 0xDD, 0x08, 0xBD, 0xA9, 0xA8, 0x91,
+ 0x3E, 0xE5, 0xF4, 0xC5, 0x3D, 0x4C, 0x5D, 0xDC, 0xBD, 0x60, 0xD7, 0xD3,
+ 0xBD, 0x22, 0x7E, 0xFF, 0xBD, 0x15, 0x11, 0x67, 0xBC, 0x00, 0x2F, 0xC9,
+ 0xBC, 0x25, 0xCF, 0x6E, 0x3B, 0x1B, 0x7A, 0x2A, 0xBB, 0xEE, 0x7B, 0x8C,
+ 0x3C, 0xD9, 0x85, 0xF3, 0xBD, 0x04, 0xBD, 0x6C, 0x3D, 0xE6, 0x10, 0x64,
+ 0x3B, 0xB4, 0x04, 0x55, 0xBE, 0xE4, 0xD9, 0xA4, 0x3E, 0x16, 0xD4, 0x68,
+ 0x3C, 0x84, 0xCF, 0xC2, 0x3B, 0x0B, 0x89, 0x10, 0x3D, 0x66, 0xDC, 0xC3,
+ 0x3C, 0x5D, 0x8F, 0x51, 0x3E, 0xB7, 0xDA, 0xBF, 0xBE, 0xEE, 0x75, 0x1F,
+ 0xBD, 0xC6, 0x30, 0xBB, 0x3D, 0xD8, 0x89, 0x7E, 0xBE, 0x77, 0x94, 0x36,
+ 0xBE, 0xA0, 0x27, 0x08, 0x3D, 0x32, 0x10, 0x8E, 0xBE, 0x69, 0x0B, 0x88,
+ 0x3B, 0x41, 0xCE, 0x10, 0xBE, 0x50, 0x48, 0xD0, 0x3B, 0xFF, 0x3D, 0x28,
+ 0xBE, 0xEF, 0x37, 0x0A, 0xBE, 0x2F, 0xBC, 0x97, 0xBD, 0xAE, 0x53, 0xE5,
+ 0x3C, 0xEB, 0xC2, 0x9E, 0xBE, 0x34, 0x78, 0x30, 0x3E, 0x98, 0xE9, 0x8B,
+ 0xBC, 0x5B, 0xCE, 0x94, 0x3B, 0x29, 0xA4, 0xA0, 0xBC, 0x5F, 0xB5, 0x8D,
+ 0x3D, 0xF3, 0xFA, 0xE2, 0x3D, 0x70, 0x82, 0x79, 0xBD, 0x85, 0x13, 0xBF,
+ 0x3D, 0x5B, 0x43, 0x22, 0x3D, 0xEE, 0x80, 0xA1, 0x3C, 0x58, 0x67, 0xFB,
+ 0x3C, 0x6D, 0x19, 0xCC, 0x3C, 0x95, 0x83, 0xB6, 0x3D, 0x0A, 0x60, 0x1D,
+ 0x3E, 0x5D, 0x6D, 0x0C, 0xBD, 0xA5, 0x7E, 0xB7, 0x3C, 0x5B, 0x5F, 0x8E,
+ 0x3C, 0xA3, 0x28, 0xB2, 0x3E, 0x37, 0x08, 0x5C, 0xBD, 0x57, 0x35, 0x7B,
+ 0xBE, 0xED, 0xA1, 0xC3, 0x3A, 0xC7, 0x44, 0x18, 0xBD, 0xDE, 0x84, 0xC6,
+ 0xBB, 0x2D, 0xEC, 0x78, 0xBD, 0x03, 0x26, 0x00, 0x3D, 0x0C, 0xBD, 0x8D,
+ 0xBE, 0xF2, 0xA8, 0xA6, 0x3D, 0xA2, 0xBE, 0xED, 0xBC, 0x57, 0xDD, 0xD3,
+ 0xBC, 0x95, 0x09, 0xD6, 0x3E, 0x39, 0x13, 0x75, 0xBC, 0x89, 0x33, 0x4A,
+ 0xBD, 0x1F, 0x05, 0x99, 0x3D, 0xD5, 0xCE, 0xCE, 0x3E, 0x97, 0xC7, 0x3E,
+ 0xBD, 0xBC, 0xE7, 0x8D, 0xBC, 0x4C, 0xA4, 0x19, 0xBD, 0x1A, 0x46, 0xE5,
+ 0xBC, 0xBD, 0x5B, 0x43, 0x3C, 0xD9, 0x70, 0x43, 0x3E, 0x2A, 0x5C, 0x51,
+ 0x3C, 0x60, 0x10, 0x52, 0xBC, 0xAE, 0xFF, 0x24, 0xBD, 0xD4, 0x76, 0x17,
+ 0xBE, 0x72, 0x0A, 0xE5, 0xBB, 0x02, 0xA0, 0x2A, 0x3C, 0x29, 0xA7, 0xC9,
+ 0xBD, 0xFA, 0xB0, 0x59, 0x3D, 0xE1, 0x9A, 0xE7, 0x3D, 0x72, 0xB3, 0x0F,
+ 0xBE, 0xB7, 0xF4, 0x1C, 0x3C, 0xD4, 0x85, 0xBB, 0x3C, 0xBE, 0x81, 0x98,
+ 0xBB, 0x9C, 0x45, 0x26, 0xBD, 0x30, 0x06, 0xEC, 0x3E, 0x6F, 0x56, 0xA6,
+ 0xBD, 0xC6, 0xB6, 0x45, 0xBD, 0x03, 0xD5, 0x99, 0x3D, 0x6A, 0x46, 0x7F,
+ 0xBB, 0xD4, 0x07, 0x86, 0xBD, 0x6C, 0xD3, 0x33, 0x3E, 0x1B, 0x3C, 0x0F,
+ 0xBD, 0x61, 0xCD, 0x8C, 0xBD, 0x87, 0xD0, 0xB8, 0x3D, 0x70, 0xFE, 0xD7,
+ 0xBE, 0xE4, 0xFA, 0xF4, 0x3C, 0x46, 0x6C, 0x33, 0x3D, 0xA3, 0x0A, 0xAB,
+ 0x3C, 0xE9, 0x3F, 0x38, 0x3E, 0x17, 0xA3, 0x79, 0xBC, 0xBF, 0xB1, 0xE8,
+ 0x3D, 0x66, 0x3F, 0xC9, 0xBD, 0x3B, 0xD8, 0x2A, 0xBD, 0x65, 0xA2, 0x8D,
+ 0x3C, 0xEB, 0x05, 0x76, 0x3E, 0xD0, 0xE2, 0x05, 0xBC, 0x19, 0xB0, 0xAA,
+ 0xBD, 0xBD, 0xF7, 0xC1, 0xBE, 0x4E, 0xB3, 0x70, 0xBD, 0x65, 0xA2, 0xC8,
+ 0xBC, 0x00, 0xE2, 0xF5, 0x3C, 0x5B, 0xBC, 0xA7, 0xBE, 0x5F, 0x13, 0xDA,
+ 0x3C, 0x8A, 0x75, 0xD2, 0xBD, 0xFE, 0xFD, 0x39, 0xBD, 0xC5, 0xB7, 0x2B,
+ 0x3E, 0xF4, 0x4D, 0x25, 0xBD, 0x6B, 0x99, 0xA1, 0x3C, 0x3A, 0x00, 0xB4,
+ 0xBD, 0x56, 0xF6, 0xA7, 0x3E, 0x51, 0x1F, 0xCC, 0xBD, 0x51, 0x98, 0x33,
+ 0x3D, 0xDA, 0x7C, 0x0E, 0xBD, 0x62, 0x0F, 0x0C, 0xBF, 0x7F, 0xDF, 0x14,
+ 0x3D, 0x91, 0x48, 0x9A, 0x3E, 0x9A, 0x78, 0x6F, 0xBD, 0xE1, 0x43, 0x4E,
+ 0xBF, 0x18, 0x9E, 0x1B, 0x3D, 0x20, 0x5A, 0x4B, 0x3C, 0xB7, 0x03, 0xDE,
+ 0x3C, 0x35, 0x2E, 0x80, 0x3D, 0xB1, 0x6C, 0x08, 0x3E, 0xEA, 0xE5, 0x38,
+ 0xBF, 0x25, 0x65, 0x40, 0x3E, 0x75, 0x87, 0x86, 0xBB, 0xBA, 0x3D, 0x28,
+ 0xBE, 0x1D, 0x0E, 0x27, 0x3E, 0x2E, 0x79, 0x14, 0xBD, 0x17, 0x1E, 0x85,
+ 0x3D, 0xE2, 0xB7, 0x1F, 0x3D, 0xF9, 0xF5, 0x7C, 0xBD, 0x66, 0xA4, 0x59,
+ 0xBE, 0x00, 0x61, 0x38, 0x3C, 0x7F, 0x8F, 0x17, 0x3C, 0x51, 0xDE, 0xEF,
+ 0x3D, 0x06, 0x6C, 0xE8, 0x3C, 0xAF, 0xE5, 0xBE, 0x3E, 0x18, 0x75, 0xD8,
+ 0xBF, 0x59, 0x16, 0x19, 0x3E, 0x7F, 0x3D, 0x61, 0x3D, 0xF7, 0x9C, 0x6B,
+ 0xBE, 0x87, 0x04, 0x0F, 0x3C, 0xEA, 0x7E, 0x77, 0xBE, 0x1F, 0xCE, 0x71,
+ 0x3D, 0x98, 0xF9, 0x58, 0xBD, 0x5F, 0x34, 0x84, 0x3B, 0x3F, 0x37, 0xE7,
+ 0x3D, 0x73, 0xF0, 0xDB, 0x3B, 0x2D, 0x38, 0xF2, 0x3C, 0x21, 0x12, 0xB6,
+ 0x3E, 0x40, 0x96, 0x19, 0xBD, 0xA4, 0x56, 0x67, 0xBD, 0x15, 0x76, 0x8D,
+ 0xBD, 0xAB, 0x51, 0xA5, 0xBD, 0xCC, 0x43, 0x81, 0x3C, 0xC0, 0xC8, 0x90,
+ 0xBA, 0xC5, 0xF0, 0x3E, 0xBB, 0xFA, 0x3D, 0x29, 0xBC, 0x47, 0x14, 0xE2,
+ 0xBA, 0x2C, 0x85, 0x94, 0x3D, 0xDA, 0x82, 0x58, 0x3E, 0xDF, 0x16, 0x8D,
+ 0x3D, 0x0D, 0xC5, 0x6E, 0x3B, 0x46, 0x64, 0xBA, 0xBD, 0x22, 0x14, 0x87,
+ 0xBE, 0xEE, 0x51, 0x8C, 0xBE, 0x5C, 0x05, 0x41, 0x3D, 0xB3, 0x05, 0x1B,
+ 0x3C, 0xE3, 0x2A, 0x4D, 0x3D, 0x49, 0x72, 0xF4, 0xBB, 0x75, 0xDE, 0x03,
+ 0x3D, 0x4E, 0xEE, 0x2C, 0x3D, 0xAE, 0x07, 0xA4, 0xBE, 0x38, 0x78, 0x25,
+ 0xBD, 0x54, 0xAB, 0x0B, 0xBC, 0x5E, 0x9D, 0xE5, 0xBD, 0xB2, 0x6C, 0xF4,
+ 0x3E, 0xCD, 0x71, 0xEB, 0xBB, 0x70, 0x60, 0xE4, 0x3D, 0xC9, 0x35, 0x24,
+ 0x3F, 0x34, 0x97, 0xE9, 0x3E, 0x51, 0x1D, 0xD8, 0xBB, 0x84, 0x1B, 0xC6,
+ 0xBC, 0x30, 0x3D, 0x05, 0x3B, 0xDB, 0x9D, 0xB3, 0x3B, 0x7F, 0x0A, 0x8B,
+ 0xBF, 0x57, 0x11, 0x38, 0xBF, 0xE4, 0x47, 0x75, 0xBE, 0xDC, 0x09, 0x1F,
+ 0x3C, 0x60, 0x1E, 0x22, 0x3E, 0x3E, 0x1E, 0x4B, 0x3D, 0x9C, 0x2C, 0xA9,
+ 0x3D, 0xFE, 0x48, 0x37, 0xBC, 0x41, 0x19, 0x82, 0xBD, 0x27, 0xE2, 0x8D,
+ 0xBE, 0xEE, 0x8D, 0xCE, 0xBE, 0xDD, 0x3A, 0xAA, 0x3E, 0x5F, 0x28, 0xC4,
+ 0xBD, 0x9B, 0x31, 0x35, 0x3E, 0xC7, 0xB5, 0x13, 0x3D, 0xC9, 0xAE, 0x55,
+ 0x3E, 0x4A, 0x1C, 0xA2, 0xC0, 0x73, 0xBE, 0xE5, 0xBD, 0xF7, 0x6D, 0xC9,
+ 0xBC, 0x04, 0xA9, 0x85, 0x3E, 0x21, 0xC0, 0x6E, 0x3B, 0x1E, 0xE6, 0x40,
+ 0x3E, 0x6C, 0xA8, 0xF7, 0x3A, 0x54, 0x50, 0xDE, 0x3D, 0xB1, 0x79, 0x81,
+ 0xBB, 0xF3, 0x48, 0xC6, 0x3C, 0xC7, 0x74, 0x1C, 0x3E, 0xAE, 0x8B, 0x2C,
+ 0x3E, 0xA6, 0x38, 0x18, 0xBC, 0xB2, 0x1F, 0xAA, 0xBC, 0xEB, 0xED, 0x92,
+ 0xBC, 0x5E, 0x7B, 0xC6, 0x3D, 0x23, 0x54, 0x67, 0x3D, 0x5D, 0x65, 0xCB,
+ 0x3C, 0x6F, 0xBD, 0x55, 0xBC, 0xEC, 0xF0, 0x04, 0x3C, 0x54, 0x68, 0x63,
+ 0x3E, 0xAD, 0xB3, 0xC3, 0xBB, 0x49, 0x75, 0xCC, 0xBC, 0x39, 0xB2, 0xA1,
+ 0x3B, 0x69, 0x4E, 0xC2, 0xBD, 0xC9, 0x63, 0xF1, 0x3B, 0x6F, 0x61, 0x3D,
+ 0xBF, 0x50, 0xC1, 0xE5, 0xBE, 0x33, 0xA0, 0x84, 0x3D, 0x64, 0x6F, 0xB8,
+ 0xBA, 0x00, 0xD8, 0xAE, 0xBD, 0x28, 0x77, 0x03, 0xBE, 0x7A, 0x85, 0x6F,
+ 0x3D, 0x4E, 0x57, 0xC0, 0x3C, 0x61, 0x75, 0x98, 0x3C, 0x93, 0x1E, 0x86,
+ 0x3E, 0x7A, 0x01, 0x4C, 0x3D, 0x54, 0x7F, 0xD5, 0x3B, 0x31, 0x8D, 0xB9,
+ 0x3D, 0xBB, 0x09, 0x86, 0xBE, 0xBD, 0x21, 0x8F, 0xBC, 0x32, 0x1B, 0x64,
+ 0xBE, 0x9F, 0x42, 0x01, 0xBD, 0x45, 0xF7, 0xBA, 0x3D, 0xF9, 0x9E, 0xBE,
+ 0x3C, 0xB6, 0xB0, 0x73, 0x3C, 0xFE, 0xCF, 0x17, 0x3C, 0xC5, 0x8E, 0xB3,
+ 0xBC, 0x07, 0x64, 0x6D, 0x3F, 0x92, 0x17, 0x17, 0xBE, 0x09, 0x03, 0x63,
+ 0x3B, 0x01, 0x2B, 0x4A, 0xBC, 0x40, 0x41, 0x5D, 0xBE, 0x74, 0xDE, 0xBB,
+ 0xBD, 0x1D, 0x0A, 0x96, 0xBD, 0xCA, 0xAB, 0x4B, 0x3B, 0xE3, 0x1C, 0x8B,
+ 0xBD, 0x61, 0x73, 0x4B, 0x3D, 0x19, 0xEB, 0x06, 0xBC, 0x6B, 0xDC, 0xD0,
+ 0xBD, 0xDB, 0xCF, 0x25, 0x3D, 0xB9, 0xB2, 0x58, 0xBE, 0x21, 0xBE, 0xDC,
+ 0x3B, 0xB4, 0x30, 0x45, 0x3E, 0x7E, 0xDE, 0x3A, 0x3F, 0x77, 0xE2, 0x05,
+ 0xBE, 0xF8, 0x67, 0x0D, 0x3D, 0xE2, 0xF1, 0x95, 0x3E, 0x03, 0xAA, 0xD9,
+ 0x3C, 0x36, 0x1A, 0x53, 0x3E, 0xBF, 0x54, 0xCE, 0xBE, 0xA7, 0x34, 0xEA,
+ 0xBD, 0x7C, 0x0C, 0xA7, 0xBD, 0x2F, 0xD1, 0x23, 0xBE, 0x21, 0xCA, 0x81,
+ 0x3E, 0x9B, 0xFC, 0x0B, 0x3D, 0x85, 0x2C, 0xBC, 0x3D, 0xB8, 0xAA, 0xC2,
+ 0xBC, 0xB0, 0x9B, 0x30, 0x3D, 0x01, 0x5A, 0x64, 0xBE, 0x24, 0x89, 0x88,
+ 0xBD, 0x34, 0x78, 0x4F, 0xBE, 0x03, 0xFD, 0xDF, 0x3C, 0xE6, 0x53, 0x36,
+ 0x3B, 0x15, 0x6E, 0xD9, 0xBD, 0xFD, 0x59, 0x2E, 0x3C, 0xA3, 0x78, 0x34,
+ 0xBE, 0xD6, 0xBD, 0x0E, 0x3D, 0xE3, 0x0C, 0x02, 0x3E, 0xE4, 0xBD, 0x37,
+ 0xBC, 0x59, 0x1D, 0x57, 0xBE, 0x83, 0x49, 0x83, 0xBE, 0x14, 0xD3, 0xDA,
+ 0x3D, 0x04, 0x84, 0x86, 0x3E, 0xF0, 0xCE, 0x23, 0x3E, 0xE0, 0xA9, 0x36,
+ 0x3B, 0x68, 0x7C, 0x90, 0xBD, 0x9E, 0x38, 0xFA, 0xBC, 0xF7, 0xA5, 0xE7,
+ 0xBC, 0x6D, 0x3C, 0x4D, 0x3D, 0xD1, 0x1E, 0x62, 0x3A, 0x60, 0x83, 0xEE,
+ 0xBB, 0x92, 0x00, 0x10, 0x3E, 0xD8, 0xD4, 0x35, 0x3E, 0x39, 0xB2, 0x17,
+ 0xBE, 0x75, 0x17, 0xEB, 0x3D, 0x43, 0x89, 0xA4, 0x3E, 0x92, 0x45, 0x94,
+ 0x3D, 0x5C, 0xBF, 0x8B, 0x3C, 0x0D, 0x7E, 0xD6, 0x3C, 0x5F, 0x85, 0x20,
+ 0xBD, 0xD6, 0xBE, 0xBC, 0xBC, 0x1E, 0xD6, 0x88, 0xBE, 0x3C, 0x2B, 0xA2,
+ 0x3E, 0xB3, 0x99, 0x1B, 0x3E, 0x2F, 0x69, 0x8E, 0xBC, 0x38, 0x20, 0x31,
+ 0x3E, 0x34, 0xE7, 0xF6, 0xBD, 0x7D, 0x7F, 0x06, 0xBC, 0x24, 0xDB, 0x73,
+ 0x3C, 0xE8, 0x82, 0xC9, 0x3D, 0xE7, 0x48, 0x8B, 0x3D, 0xF2, 0x30, 0xE5,
+ 0xBC, 0xC4, 0x5E, 0x1F, 0x3D, 0x7C, 0x9E, 0xA1, 0x3D, 0x28, 0x9C, 0x9C,
+ 0x3D, 0x40, 0xEA, 0xED, 0x3D, 0xC1, 0xA0, 0x6B, 0xBD, 0xE6, 0x94, 0x03,
+ 0xBF, 0x22, 0x6A, 0x52, 0x3E, 0xFF, 0x95, 0x20, 0xBC, 0xF9, 0x0A, 0xF1,
+ 0x3D, 0x50, 0x0B, 0x9F, 0xBC, 0x4D, 0xB1, 0x3D, 0x3D, 0x3C, 0x0A, 0x31,
+ 0x3E, 0x3C, 0x85, 0x29, 0x3D, 0x5F, 0x20, 0xC3, 0xBC, 0x2A, 0x0B, 0x0A,
+ 0x05, 0x64, 0x74, 0x79, 0x70, 0x65, 0x12, 0x02, 0x30, 0x01, 0x0A, 0xB8,
+ 0x02, 0x0A, 0x07, 0x43, 0x6F, 0x6E, 0x73, 0x74, 0x5F, 0x32, 0x12, 0x05,
+ 0x43, 0x6F, 0x6E, 0x73, 0x74, 0x2A, 0x98, 0x02, 0x0A, 0x05, 0x76, 0x61,
+ 0x6C, 0x75, 0x65, 0x12, 0x8E, 0x02, 0x42, 0x8B, 0x02, 0x08, 0x01, 0x12,
+ 0x04, 0x12, 0x02, 0x08, 0x40, 0x22, 0x80, 0x02, 0x74, 0xC1, 0x97, 0xBC,
+ 0xCD, 0x07, 0xC0, 0xBC, 0x13, 0x01, 0x75, 0xBD, 0xBE, 0x99, 0x0D, 0xBE,
+ 0x6C, 0x6B, 0x0A, 0xBF, 0xEA, 0xEB, 0x78, 0x3D, 0x86, 0x12, 0x44, 0x3C,
+ 0x4F, 0x68, 0x8C, 0x37, 0x4A, 0x8D, 0x34, 0x3D, 0xF1, 0x8A, 0x9E, 0x38,
+ 0x22, 0x10, 0x18, 0xBB, 0xF6, 0x4E, 0x15, 0x3D, 0x51, 0xEA, 0x9C, 0xBA,
+ 0x11, 0x79, 0x19, 0x3D, 0x1E, 0x05, 0x18, 0x3F, 0x6B, 0x9F, 0x01, 0xBB,
+ 0x47, 0x35, 0x42, 0xBB, 0x9E, 0xCA, 0x06, 0x3D, 0xFC, 0xAB, 0xA9, 0xBD,
+ 0x7E, 0xAE, 0x0D, 0x3F, 0x44, 0x85, 0x8C, 0x3A, 0x50, 0x58, 0x09, 0x3C,
+ 0x55, 0x3C, 0x11, 0xBA, 0xFD, 0x24, 0xF7, 0x3B, 0xC1, 0x0B, 0x0F, 0xBA,
+ 0x75, 0xBF, 0x41, 0x3B, 0xC8, 0x72, 0x3F, 0x3D, 0xA3, 0x83, 0x7F, 0x3A,
+ 0x33, 0x17, 0x5E, 0xBA, 0x80, 0x66, 0xE5, 0xBE, 0xE7, 0xFE, 0xC3, 0x3E,
+ 0xB2, 0x3A, 0xFC, 0x3C, 0xA0, 0xDE, 0x38, 0xBF, 0xFC, 0x9F, 0xEE, 0x3E,
+ 0x2F, 0x92, 0x0F, 0xBD, 0x27, 0x52, 0xBF, 0xBA, 0xDC, 0x3B, 0x4A, 0x3B,
+ 0xB6, 0xAF, 0x46, 0x3B, 0x72, 0xED, 0x28, 0x3B, 0xE4, 0x9C, 0xBD, 0x3C,
+ 0x9B, 0xEE, 0x8F, 0x3C, 0x17, 0xF8, 0x9E, 0xBD, 0x58, 0x0E, 0x56, 0x3B,
+ 0x58, 0x9E, 0x3E, 0x3D, 0x4B, 0x32, 0x37, 0xBD, 0xE3, 0x90, 0x42, 0xBB,
+ 0xEE, 0x2F, 0x14, 0x3A, 0xF5, 0x05, 0xC4, 0xBB, 0x7F, 0x64, 0x2F, 0x3F,
+ 0xC5, 0xB4, 0xBC, 0xBD, 0x29, 0x69, 0x95, 0xBE, 0x3A, 0xCF, 0xF2, 0x39,
+ 0x2F, 0xA6, 0x0C, 0xBF, 0x8C, 0x3A, 0x0C, 0x3D, 0x40, 0x49, 0xF0, 0x3D,
+ 0xFB, 0x00, 0xE2, 0x3C, 0x43, 0xB0, 0xC6, 0x3B, 0xD7, 0x8F, 0x8E, 0x3B,
+ 0x9B, 0xF9, 0xED, 0x3E, 0xC7, 0xFE, 0x74, 0x3B, 0x02, 0x69, 0x8A, 0xBE,
+ 0x93, 0x55, 0xDB, 0x3C, 0xC1, 0xD4, 0x91, 0x3C, 0x5E, 0x11, 0x2C, 0x3D,
+ 0x2A, 0x0B, 0x0A, 0x05, 0x64, 0x74, 0x79, 0x70, 0x65, 0x12, 0x02, 0x30,
+ 0x01, 0x0A, 0xC8, 0xC0, 0x04, 0x0A, 0x07, 0x43, 0x6F, 0x6E, 0x73, 0x74,
+ 0x5F, 0x33, 0x12, 0x05, 0x43, 0x6F, 0x6E, 0x73, 0x74, 0x2A, 0xA7, 0xC0,
+ 0x04, 0x0A, 0x05, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x12, 0x9C, 0xC0, 0x04,
+ 0x42, 0x98, 0xC0, 0x04, 0x08, 0x01, 0x12, 0x10, 0x12, 0x02, 0x08, 0x03,
+ 0x12, 0x02, 0x08, 0x03, 0x12, 0x02, 0x08, 0x40, 0x12, 0x02, 0x08, 0x20,
+ 0x22, 0x80, 0xC0, 0x04, 0x58, 0x2D, 0x3F, 0xBD, 0xA4, 0x1B, 0xE6, 0xBD,
+ 0x00, 0x05, 0xC5, 0x3E, 0x0F, 0xFB, 0x3C, 0x3C, 0x0B, 0x62, 0xFB, 0x3D,
+ 0x2D, 0xB2, 0xA6, 0xBE, 0x67, 0xBD, 0xF2, 0x3D, 0xE3, 0xDF, 0x6A, 0x3E,
+ 0x9D, 0x57, 0x40, 0x3D, 0x7A, 0xEA, 0x61, 0x3B, 0x5F, 0x0D, 0x21, 0x3F,
+ 0xBF, 0xFE, 0xB9, 0xBB, 0x03, 0x87, 0xE7, 0xBE, 0x8F, 0x43, 0x65, 0x3E,
+ 0xC8, 0x6B, 0x11, 0xBF, 0xDF, 0xCC, 0xA6, 0xBD, 0xB3, 0x58, 0x21, 0x3C,
+ 0xA4, 0xC7, 0xFF, 0xBB, 0xB6, 0xAE, 0x3C, 0x3F, 0x37, 0x07, 0x84, 0xBF,
+ 0x30, 0xDA, 0x96, 0x3D, 0xC3, 0x6C, 0x9B, 0xBE, 0x6E, 0x35, 0x27, 0x3E,
+ 0xBD, 0x97, 0x0E, 0x3F, 0x2F, 0xB8, 0x05, 0xBE, 0x45, 0xE5, 0xDC, 0xBD,
+ 0xCD, 0xC4, 0x78, 0x3E, 0x09, 0x33, 0x19, 0x3E, 0x0E, 0xD7, 0x47, 0xBE,
+ 0x2C, 0xE8, 0xAA, 0x3D, 0x90, 0xBC, 0x56, 0x3F, 0xF0, 0xA3, 0x10, 0x3E,
+ 0x04, 0x50, 0x87, 0x3E, 0x9B, 0x71, 0xBF, 0x3D, 0x86, 0x6B, 0xA9, 0xBF,
+ 0xB3, 0xA4, 0x58, 0xBE, 0x47, 0x76, 0xBE, 0xBC, 0x65, 0x7D, 0xCE, 0xBC,
+ 0x54, 0xAA, 0x0F, 0xBC, 0x44, 0x6E, 0x34, 0x3E, 0xD2, 0x49, 0x02, 0xBC,
+ 0x43, 0xF3, 0x71, 0x3C, 0x2F, 0x94, 0x4E, 0xBD, 0x60, 0xF5, 0xA6, 0x3C,
+ 0xB3, 0x0F, 0x19, 0x3E, 0x73, 0xA4, 0x0C, 0xBE, 0x4A, 0xD5, 0x2F, 0x3F,
+ 0xBB, 0x66, 0xE6, 0x3E, 0x8C, 0xB0, 0x06, 0xBF, 0x0D, 0xBB, 0xA1, 0x3C,
+ 0x58, 0x0B, 0x61, 0x3E, 0x54, 0x46, 0x47, 0xBE, 0x72, 0xBF, 0x09, 0xBE,
+ 0x10, 0x44, 0xB3, 0xBD, 0x55, 0x6A, 0xB3, 0x3D, 0xE1, 0x7D, 0x5E, 0x3D,
+ 0xA9, 0x9A, 0x2C, 0x3F, 0x8C, 0x0A, 0x3E, 0xBB, 0xE1, 0x1D, 0x97, 0x3D,
+ 0x14, 0xF1, 0x30, 0x3F, 0x34, 0x5D, 0x11, 0x3D, 0x4E, 0x89, 0x52, 0xBE,
+ 0xF8, 0xD4, 0x66, 0xBE, 0xE2, 0x05, 0x1C, 0xBE, 0x35, 0x0D, 0xEC, 0xBE,
+ 0xE9, 0xB2, 0xA5, 0x3E, 0xD5, 0x11, 0xE7, 0x3F, 0x1C, 0x11, 0x45, 0x3F,
+ 0x9E, 0x49, 0x74, 0x3D, 0x4D, 0x1B, 0x00, 0xBD, 0x08, 0xA8, 0xFE, 0x3D,
+ 0x0A, 0x72, 0x8A, 0x3D, 0xA4, 0xEF, 0xAD, 0x3D, 0xB1, 0x13, 0x9B, 0xBE,
+ 0x6F, 0xE5, 0x6C, 0xBE, 0x9E, 0xAC, 0x2E, 0x3D, 0xE5, 0xED, 0x4B, 0xBE,
+ 0xB3, 0x40, 0x21, 0xBE, 0x6C, 0x6D, 0x97, 0x3C, 0xAC, 0x77, 0x33, 0xBE,
+ 0xC9, 0x4D, 0xC2, 0x3E, 0x08, 0x7C, 0x84, 0x3C, 0x18, 0x6F, 0x2B, 0x3D,
+ 0xBB, 0x56, 0xC2, 0xBD, 0xA9, 0x85, 0xC5, 0xBC, 0xC6, 0x9C, 0x5E, 0x3C,
+ 0xBF, 0x61, 0xF3, 0x3D, 0x51, 0xAD, 0x33, 0x3E, 0xC1, 0xBF, 0x6B, 0xBF,
+ 0xD2, 0x58, 0x9F, 0xBE, 0x03, 0xA1, 0x3A, 0xBE, 0xFC, 0xA9, 0xB6, 0xBF,
+ 0x39, 0x78, 0x2A, 0x3B, 0x86, 0x71, 0xB7, 0x3E, 0xF4, 0xCE, 0xD9, 0x3E,
+ 0x7F, 0x0F, 0x9D, 0x3D, 0x6D, 0xF1, 0x06, 0x3F, 0xDF, 0x7E, 0x1D, 0xBE,
+ 0x5D, 0x77, 0x38, 0xBF, 0x9E, 0x58, 0x1E, 0x3E, 0xDD, 0xDC, 0xC4, 0xBB,
+ 0xAF, 0xD8, 0x6C, 0x3D, 0x5A, 0xA1, 0x9E, 0x3D, 0x7B, 0xF8, 0x46, 0x3B,
+ 0x3D, 0xA8, 0xA9, 0xBE, 0x05, 0x0E, 0xC8, 0x3D, 0xCF, 0x28, 0x16, 0x3C,
+ 0x4B, 0xF5, 0xEE, 0xBC, 0xA9, 0x34, 0x4F, 0x3D, 0xE4, 0xE8, 0x29, 0xBF,
+ 0x92, 0xDA, 0x80, 0xBE, 0x6E, 0x4C, 0x9F, 0x3D, 0x5E, 0xBA, 0x03, 0x3F,
+ 0xF1, 0x56, 0x8E, 0x3C, 0x0A, 0xB4, 0x0B, 0x3F, 0x3E, 0x43, 0x14, 0xBE,
+ 0x95, 0x2D, 0x07, 0xBD, 0x4D, 0xD1, 0x46, 0xBD, 0x1B, 0x91, 0x89, 0xBE,
+ 0xFE, 0x0C, 0xC0, 0x3D, 0x60, 0x35, 0x54, 0xBF, 0x1B, 0x77, 0x47, 0xBD,
+ 0xA8, 0xDF, 0x4D, 0xBC, 0x4D, 0xCE, 0xA4, 0xBE, 0x17, 0xAD, 0xAB, 0xBB,
+ 0x2B, 0x4A, 0x8B, 0xBF, 0x62, 0xEC, 0x56, 0xBD, 0xCD, 0xE1, 0x96, 0x3D,
+ 0x60, 0xFC, 0xAB, 0xBE, 0x30, 0xB1, 0xEA, 0xBD, 0x62, 0xA5, 0x69, 0x3F,
+ 0xCC, 0x14, 0x17, 0xBF, 0x40, 0x49, 0xAF, 0x3C, 0x5A, 0x26, 0xBA, 0xBD,
+ 0x7B, 0x2B, 0x84, 0xBE, 0x64, 0x5A, 0xA7, 0x3E, 0x01, 0x21, 0x3F, 0xBE,
+ 0x1C, 0xA6, 0xCC, 0xBD, 0x33, 0x85, 0xE4, 0x3E, 0x61, 0x74, 0x9D, 0xBD,
+ 0x27, 0x96, 0xE7, 0x3E, 0xA8, 0x7A, 0x38, 0x3F, 0x7F, 0x91, 0x04, 0x3F,
+ 0x5B, 0x38, 0x23, 0x3D, 0xEB, 0x88, 0x7A, 0xBD, 0x47, 0xB3, 0x57, 0xBD,
+ 0xE1, 0x0B, 0x61, 0x3D, 0xFA, 0x7E, 0xE0, 0xBE, 0x68, 0xAF, 0xBC, 0x3E,
+ 0xB5, 0x9D, 0xBD, 0x3D, 0xDF, 0xB4, 0x18, 0x3E, 0xED, 0x85, 0x8D, 0x3D,
+ 0x8C, 0xC8, 0x04, 0xBE, 0x12, 0xC6, 0xD3, 0x3D, 0x9D, 0x38, 0x03, 0x3E,
+ 0xBA, 0xD5, 0x19, 0xBD, 0x39, 0xEA, 0xEF, 0x3D, 0xCE, 0xA6, 0x85, 0x3F,
+ 0x21, 0xE8, 0x69, 0xBE, 0xC7, 0x26, 0x2D, 0x3E, 0xBA, 0x32, 0x2F, 0xBE,
+ 0x9F, 0x6A, 0x7F, 0x3E, 0x12, 0x3C, 0xBC, 0x3E, 0x26, 0x26, 0xEA, 0x3C,
+ 0x75, 0x5F, 0xD7, 0xBE, 0xDF, 0xC4, 0x00, 0x3F, 0x52, 0x51, 0x59, 0xBE,
+ 0x26, 0x11, 0x06, 0xBF, 0xB0, 0x71, 0x1A, 0x3F, 0xFB, 0xEF, 0x30, 0x3E,
+ 0xBC, 0x71, 0x73, 0xBE, 0xC9, 0xB5, 0xCF, 0xBE, 0x3A, 0x75, 0x9D, 0x3E,
+ 0x1F, 0xDB, 0x48, 0xC0, 0x45, 0xB2, 0x51, 0xBF, 0xD5, 0x87, 0x99, 0x3D,
+ 0xAD, 0xDF, 0x11, 0xBF, 0x94, 0xCC, 0xF4, 0xBE, 0x1D, 0x76, 0x36, 0xBF,
+ 0x71, 0x41, 0x07, 0xBF, 0x82, 0x3C, 0x3E, 0x3E, 0x06, 0x82, 0x18, 0xBF,
+ 0xD6, 0xB3, 0x69, 0x3F, 0x3E, 0x96, 0x6B, 0x3E, 0xCB, 0x5F, 0xED, 0x3E,
+ 0x5D, 0x46, 0x89, 0x3E, 0xE0, 0xF6, 0x05, 0xBE, 0x8F, 0x58, 0xDD, 0x3E,
+ 0x58, 0x9E, 0x5D, 0xBF, 0x43, 0x03, 0x1C, 0x3F, 0xCC, 0xF3, 0x25, 0xBF,
+ 0xC9, 0x52, 0x16, 0xBF, 0xE2, 0x80, 0x8C, 0xBD, 0x26, 0x0E, 0x81, 0x3D,
+ 0x7D, 0x42, 0x03, 0xBC, 0x98, 0x3E, 0x92, 0x3C, 0x71, 0x1C, 0x0F, 0xBE,
+ 0x24, 0xF9, 0xD5, 0xBB, 0x90, 0x08, 0x00, 0x3D, 0xDD, 0x96, 0xB6, 0x3D,
+ 0x4B, 0xD3, 0x15, 0x3D, 0x24, 0xE3, 0x0B, 0xBD, 0x44, 0xD8, 0xB2, 0xBD,
+ 0x55, 0xF1, 0x73, 0xBD, 0x9E, 0x71, 0x3F, 0x3E, 0x04, 0xDE, 0xF4, 0x3C,
+ 0xAA, 0xA8, 0x5D, 0x3E, 0xFB, 0xE5, 0x0B, 0x3E, 0x68, 0x3F, 0x18, 0x3E,
+ 0x8A, 0x29, 0x60, 0xBD, 0xC7, 0xED, 0x1F, 0xBE, 0x7F, 0x02, 0x70, 0xBD,
+ 0xFA, 0xC5, 0x15, 0xBC, 0x06, 0x14, 0x9C, 0x3D, 0xF2, 0x7E, 0x7A, 0x3E,
+ 0x2E, 0xB7, 0x97, 0xBD, 0x9C, 0xE9, 0x0B, 0x3C, 0x90, 0x62, 0xC3, 0x3C,
+ 0xB9, 0x4E, 0xCF, 0xBD, 0xFB, 0x00, 0x8C, 0x3E, 0x6F, 0x26, 0x13, 0xBD,
+ 0x4A, 0x8B, 0x07, 0x3F, 0xAE, 0x72, 0x40, 0xBE, 0x2F, 0x42, 0xD5, 0x3D,
+ 0x4C, 0x43, 0x91, 0xBD, 0x68, 0xBA, 0x96, 0x3D, 0x19, 0x7A, 0xED, 0xBD,
+ 0x71, 0xEB, 0xA0, 0xBD, 0xA9, 0x96, 0x1A, 0xBD, 0x0F, 0xFA, 0xD3, 0xBC,
+ 0x8C, 0xD1, 0xBF, 0x3D, 0xA4, 0xA1, 0x83, 0x3D, 0x66, 0xBC, 0x94, 0xBD,
+ 0x3E, 0x38, 0x4A, 0xBD, 0x87, 0xE6, 0x6C, 0x3C, 0x4F, 0x9A, 0x3E, 0x3C,
+ 0x57, 0x33, 0x5F, 0x3D, 0x02, 0x17, 0x9A, 0x3D, 0x81, 0x83, 0x97, 0x3D,
+ 0x35, 0x1F, 0x21, 0x3D, 0xA0, 0x74, 0x09, 0x3E, 0x10, 0x86, 0xAD, 0xBC,
+ 0xEB, 0x49, 0xB0, 0xBD, 0x5F, 0x52, 0x56, 0xBD, 0xA0, 0x68, 0x81, 0x3C,
+ 0x35, 0x3B, 0xE7, 0x3C, 0xF1, 0x8C, 0xA2, 0xBC, 0x93, 0xCF, 0x60, 0x3D,
+ 0x2E, 0x56, 0x36, 0xBC, 0x86, 0x15, 0xE9, 0x3C, 0x77, 0x9C, 0x4C, 0xBD,
+ 0x2E, 0x77, 0x09, 0x3D, 0xFA, 0x58, 0x2F, 0xBD, 0xDC, 0x4C, 0x2F, 0x3E,
+ 0x47, 0x64, 0x1F, 0xBD, 0x20, 0xB4, 0x13, 0xBD, 0x6E, 0x05, 0xAA, 0xBE,
+ 0x65, 0xC7, 0x9B, 0xBE, 0x14, 0x07, 0xD3, 0xBD, 0xCD, 0x95, 0xF4, 0xBE,
+ 0x70, 0x22, 0x81, 0xBD, 0x91, 0x00, 0x9A, 0xBE, 0x93, 0xFC, 0x2B, 0xBE,
+ 0x47, 0xE7, 0xC7, 0x3E, 0xF2, 0x6D, 0xAB, 0x3E, 0xEA, 0x9F, 0x98, 0xBE,
+ 0xB1, 0x2D, 0x3C, 0xBE, 0x32, 0x44, 0x83, 0xBE, 0x4B, 0x2F, 0x3F, 0x3F,
+ 0xEA, 0x4B, 0xA7, 0x3F, 0x81, 0xC7, 0x52, 0x3F, 0xFE, 0x51, 0x38, 0xBF,
+ 0x5D, 0x83, 0x1C, 0x3F, 0x03, 0x5D, 0x6B, 0xBE, 0xD6, 0x5D, 0xB2, 0xBE,
+ 0x0A, 0x7F, 0xD5, 0x3D, 0x64, 0x03, 0xC9, 0x3E, 0xA8, 0xA9, 0xEE, 0x3D,
+ 0xE1, 0x90, 0x9B, 0xBE, 0xDC, 0xE2, 0xD1, 0xBE, 0xBF, 0xD8, 0x2B, 0xBD,
+ 0xA7, 0x22, 0xFE, 0xBE, 0xEA, 0x22, 0xA1, 0x3E, 0x3F, 0xC0, 0x90, 0x3F,
+ 0x1A, 0x9C, 0xBD, 0xBD, 0x63, 0x7C, 0xE9, 0xBF, 0xA0, 0x6D, 0xC5, 0xBE,
+ 0x7E, 0xF6, 0xAD, 0x3E, 0xDD, 0xE8, 0xB7, 0xBC, 0xF2, 0x45, 0x1F, 0xBC,
+ 0x03, 0xD5, 0x11, 0x3D, 0x53, 0x45, 0x84, 0x3D, 0x72, 0x88, 0xD4, 0x3C,
+ 0x45, 0x6F, 0x57, 0xBD, 0x83, 0xFF, 0x63, 0xBC, 0x05, 0xBA, 0x97, 0xBC,
+ 0x96, 0x70, 0x94, 0xBC, 0xA4, 0x9F, 0x69, 0x3D, 0x83, 0x31, 0x09, 0x3C,
+ 0x68, 0xE3, 0xF2, 0xBA, 0x5C, 0xBB, 0xAD, 0x3B, 0x0B, 0x13, 0xA4, 0xBC,
+ 0x2D, 0x86, 0x40, 0xBD, 0xF5, 0x8D, 0x66, 0x3C, 0x51, 0x18, 0xF3, 0xBC,
+ 0x49, 0x8C, 0x80, 0xBB, 0x3A, 0xF3, 0xD5, 0xBC, 0x28, 0x57, 0xC5, 0x3D,
+ 0x8C, 0x36, 0xE3, 0xBC, 0x32, 0x60, 0x6A, 0x3C, 0x8F, 0x41, 0x75, 0x3D,
+ 0xB8, 0x59, 0xAF, 0xBD, 0x46, 0x2D, 0xCA, 0x3D, 0x6F, 0xE9, 0x1B, 0x3B,
+ 0xE3, 0xF0, 0x30, 0xBD, 0xA3, 0xD1, 0x2A, 0x3D, 0x9B, 0x67, 0x62, 0x3D,
+ 0x89, 0xB3, 0xA8, 0x3A, 0x20, 0xFA, 0x66, 0x3C, 0xA0, 0x18, 0x92, 0x3C,
+ 0xE4, 0x17, 0x85, 0xBD, 0x6D, 0x73, 0x39, 0x3C, 0x5A, 0x17, 0x81, 0xBC,
+ 0x0B, 0x9D, 0x8D, 0x3D, 0x88, 0x6C, 0x3F, 0xBC, 0xE7, 0xE0, 0x55, 0x3B,
+ 0x56, 0x57, 0x17, 0xBC, 0xC1, 0x02, 0x6A, 0x3D, 0x32, 0xB6, 0xB3, 0xBB,
+ 0xAB, 0x64, 0xF8, 0x3C, 0x8D, 0xB1, 0x95, 0xBD, 0x05, 0xA6, 0x82, 0xBC,
+ 0x39, 0x7C, 0x1E, 0x3A, 0xB0, 0x1D, 0xB3, 0xBD, 0x45, 0xE2, 0x5C, 0x3D,
+ 0x5B, 0xD4, 0xE5, 0x3C, 0x33, 0xE6, 0x90, 0x3C, 0x89, 0x0E, 0x7B, 0x3B,
+ 0xD2, 0x7E, 0xDF, 0xBC, 0x8F, 0x5F, 0xD8, 0xBC, 0x25, 0x27, 0x50, 0x3C,
+ 0x2A, 0x50, 0x12, 0xBD, 0xAD, 0xD2, 0x6B, 0xBC, 0xA3, 0x59, 0xCD, 0x3C,
+ 0x24, 0xAD, 0x34, 0x3D, 0x42, 0xBC, 0x41, 0x3C, 0x3F, 0x4D, 0xCB, 0xBC,
+ 0xE4, 0xD2, 0xED, 0x3D, 0x15, 0xAC, 0xF1, 0x3C, 0x6B, 0x14, 0xD0, 0xBE,
+ 0xA0, 0xDA, 0xD3, 0xBC, 0xC5, 0x7E, 0x81, 0x3B, 0x87, 0x51, 0xA6, 0xBE,
+ 0xC9, 0xD9, 0x68, 0xBD, 0x76, 0xD5, 0xA3, 0x3D, 0xE5, 0x7D, 0x83, 0xBD,
+ 0x59, 0xA7, 0x0E, 0xBC, 0x00, 0x79, 0x3D, 0xBD, 0xEC, 0xDC, 0x10, 0xBE,
+ 0xFA, 0x0B, 0x9B, 0xBD, 0x47, 0x4F, 0x78, 0xB9, 0xB2, 0x60, 0x29, 0xBE,
+ 0x72, 0x21, 0xDA, 0xBD, 0x8A, 0x4B, 0x54, 0xBC, 0xE0, 0x9B, 0x19, 0xBC,
+ 0x04, 0x4C, 0x8D, 0x3E, 0x7D, 0xFA, 0xA5, 0x3E, 0x10, 0xFF, 0xAF, 0xBD,
+ 0xEE, 0x26, 0xD5, 0xBE, 0x18, 0xC3, 0x42, 0xBC, 0x96, 0x3D, 0xF8, 0xBE,
+ 0x23, 0x0D, 0xBB, 0xBD, 0xBF, 0x07, 0xEC, 0xBC, 0xFA, 0x98, 0xA4, 0xBC,
+ 0xC7, 0x59, 0xA6, 0x3E, 0x0E, 0x3F, 0xAF, 0x3D, 0xBC, 0x77, 0xEF, 0xBD,
+ 0x46, 0x07, 0xFC, 0xBD, 0xEF, 0x31, 0xB0, 0x3C, 0x7B, 0xBD, 0xD2, 0x3D,
+ 0xE4, 0xCC, 0x5C, 0xBC, 0xC6, 0x57, 0x64, 0xBF, 0x06, 0xF5, 0x3A, 0xBE,
+ 0xEA, 0x87, 0x78, 0xBD, 0x03, 0x12, 0x63, 0xBD, 0xEE, 0x18, 0x39, 0x3B,
+ 0x00, 0x74, 0xE4, 0xBB, 0xA8, 0xC6, 0x3E, 0x3D, 0x2E, 0x27, 0xEA, 0x3B,
+ 0x1B, 0xCA, 0xBD, 0xBC, 0x1A, 0x13, 0xAE, 0xBB, 0x73, 0x0B, 0x72, 0x3B,
+ 0x78, 0x72, 0xE6, 0xBC, 0x4D, 0x32, 0xA4, 0x3C, 0x21, 0xB1, 0x76, 0x3C,
+ 0x8C, 0x7F, 0x7A, 0x3A, 0x71, 0x83, 0x41, 0x3C, 0xFA, 0xBA, 0x4F, 0xBC,
+ 0xE4, 0xDC, 0x42, 0xBC, 0xBF, 0x6D, 0xD0, 0x3C, 0x05, 0x48, 0x72, 0x3B,
+ 0x1D, 0x0E, 0x6A, 0xBB, 0x20, 0x9B, 0xA1, 0xBC, 0x24, 0x8A, 0x31, 0x3D,
+ 0x00, 0xBD, 0x84, 0x3C, 0x73, 0xE4, 0x52, 0xB8, 0xAF, 0xC3, 0x03, 0x3D,
+ 0x9C, 0xF9, 0xEA, 0xBC, 0x88, 0x32, 0xDC, 0x3C, 0xD1, 0x1F, 0x11, 0xBB,
+ 0x62, 0x67, 0xBE, 0xBC, 0x31, 0x29, 0x59, 0x3D, 0xD1, 0x0E, 0xF4, 0x3C,
+ 0xB9, 0x6D, 0x38, 0xBD, 0x18, 0x8A, 0x98, 0x3C, 0x7B, 0x26, 0xF2, 0x3A,
+ 0x6C, 0x89, 0x19, 0xBF, 0xE1, 0xAD, 0x6C, 0x3C, 0xB2, 0x1A, 0xD4, 0x3F,
+ 0x0B, 0x95, 0x3B, 0x3F, 0x13, 0x78, 0x86, 0x3E, 0xC0, 0x84, 0x85, 0xBE,
+ 0x93, 0x90, 0x30, 0xBE, 0xB7, 0xD4, 0x82, 0xBE, 0xA4, 0x71, 0x16, 0xBD,
+ 0x59, 0x5A, 0x1E, 0x3E, 0xAB, 0xE1, 0x16, 0xBF, 0x36, 0x04, 0x87, 0x3E,
+ 0xFB, 0xA6, 0x82, 0xBE, 0xC2, 0xF4, 0x68, 0x3E, 0x16, 0x39, 0x03, 0xBE,
+ 0xD4, 0x09, 0x59, 0x3E, 0x84, 0x49, 0x05, 0xBF, 0x49, 0xAE, 0x6A, 0x3E,
+ 0x8A, 0x85, 0xF3, 0xBE, 0xB8, 0x29, 0x31, 0x3C, 0x42, 0x12, 0x4E, 0xBE,
+ 0xDC, 0x13, 0xCC, 0x3E, 0xA7, 0x4E, 0x74, 0xBD, 0x35, 0xBB, 0x21, 0x3F,
+ 0xD8, 0xEA, 0x14, 0xBE, 0x9A, 0x9C, 0xE1, 0xBE, 0x36, 0x36, 0x0F, 0xBF,
+ 0x31, 0xCD, 0x51, 0xBF, 0x46, 0x44, 0x87, 0x3D, 0x40, 0xAF, 0x43, 0xBE,
+ 0x13, 0xD2, 0x4E, 0x3F, 0xE4, 0xF7, 0xF4, 0x3D, 0x8B, 0xF0, 0xE9, 0x3D,
+ 0x04, 0xB9, 0x90, 0x3E, 0x10, 0xC4, 0x82, 0x3E, 0x47, 0xB0, 0x00, 0xBF,
+ 0x4C, 0x39, 0xA3, 0x3E, 0x22, 0x68, 0x3B, 0x3F, 0x17, 0x57, 0xE6, 0x3E,
+ 0x87, 0x07, 0xD5, 0xBD, 0x79, 0x15, 0xFC, 0x3E, 0xF2, 0x1A, 0x94, 0x3E,
+ 0x6A, 0xE6, 0x3A, 0xBE, 0xB8, 0xAE, 0x7C, 0xBD, 0xEB, 0xAC, 0x8E, 0xBE,
+ 0x28, 0x32, 0x18, 0xC0, 0xCF, 0xEB, 0x6D, 0x3F, 0xAC, 0xAE, 0x96, 0x3E,
+ 0x67, 0x5B, 0x93, 0xBE, 0x69, 0xC9, 0x9E, 0x3D, 0x6B, 0x36, 0x43, 0xBF,
+ 0x39, 0x8F, 0x57, 0x3F, 0x9C, 0x04, 0x5C, 0xBE, 0x8B, 0x97, 0xCF, 0xBD,
+ 0x65, 0x7E, 0xB9, 0x3E, 0x4F, 0x85, 0xCC, 0xBB, 0x30, 0x1C, 0x1F, 0x3F,
+ 0xF7, 0x5F, 0x5A, 0x3E, 0xE1, 0x67, 0x19, 0xBC, 0x92, 0xD9, 0x12, 0x3E,
+ 0xA4, 0x86, 0xE0, 0xBE, 0xAC, 0x0A, 0xD8, 0x3D, 0x7A, 0xA1, 0xAF, 0x3E,
+ 0xBE, 0x99, 0x4F, 0xBE, 0xAA, 0x8E, 0x8B, 0x3D, 0x0E, 0x84, 0xD6, 0xBC,
+ 0x28, 0x06, 0x60, 0xBE, 0xEA, 0x8A, 0x0A, 0x3E, 0x64, 0x89, 0x70, 0x3C,
+ 0x76, 0x9C, 0x33, 0xBD, 0xB0, 0x1C, 0xB6, 0x3D, 0xB1, 0x61, 0x2B, 0x3D,
+ 0x0D, 0x01, 0xF6, 0xBD, 0xF0, 0x36, 0xEF, 0xBD, 0x44, 0xD1, 0x8F, 0x3C,
+ 0xA7, 0x94, 0x08, 0x3C, 0xFB, 0x7C, 0xB7, 0xBD, 0x2E, 0x70, 0x09, 0xBF,
+ 0x0B, 0x3E, 0xB8, 0xBE, 0xBF, 0xDA, 0x10, 0xBE, 0xBA, 0x32, 0x4B, 0xBE,
+ 0x23, 0xF0, 0x47, 0xBD, 0x89, 0x2B, 0x4A, 0x3E, 0x54, 0xF5, 0x77, 0x3D,
+ 0x65, 0x77, 0xD9, 0x3C, 0xAA, 0xE5, 0xE4, 0xBB, 0xA2, 0x0E, 0xFC, 0x3C,
+ 0xE4, 0x0F, 0xDF, 0xBD, 0xC0, 0xD4, 0x3A, 0x3D, 0xEA, 0x5E, 0xF6, 0xBD,
+ 0xC4, 0xA7, 0x2F, 0x3D, 0x12, 0xCF, 0xDE, 0x3D, 0xF7, 0x04, 0x9D, 0x3D,
+ 0xC9, 0xF1, 0x09, 0x3E, 0x94, 0xF9, 0x67, 0x3E, 0xA3, 0x00, 0x4A, 0xBC,
+ 0x31, 0x2F, 0xF7, 0xBA, 0xBB, 0x7F, 0x4F, 0xB8, 0x10, 0xD6, 0x03, 0x3B,
+ 0x53, 0x53, 0x1A, 0xBC, 0x2D, 0x75, 0xD6, 0x3B, 0x4E, 0x19, 0x08, 0xBD,
+ 0x97, 0xF6, 0xF3, 0xBC, 0x15, 0x6D, 0x66, 0xBC, 0x1D, 0x35, 0x9D, 0x3C,
+ 0x51, 0x01, 0x53, 0x3C, 0x6D, 0xC2, 0x34, 0x3C, 0xFC, 0x1A, 0x34, 0xBC,
+ 0x2C, 0x3D, 0xF4, 0xB8, 0x5F, 0x18, 0x90, 0x3D, 0xC8, 0xC9, 0xCD, 0xBD,
+ 0xB5, 0xAB, 0x02, 0x3D, 0x02, 0xD9, 0x1E, 0xBC, 0xBB, 0x4D, 0x91, 0xB9,
+ 0xB9, 0x90, 0x0B, 0xBC, 0xB4, 0xC8, 0xF9, 0x3C, 0xD5, 0xE7, 0x12, 0xBD,
+ 0x1B, 0xED, 0x96, 0x3C, 0xF2, 0x40, 0xD5, 0x3C, 0x91, 0x52, 0x1A, 0xBC,
+ 0x5F, 0x7D, 0x57, 0xBD, 0xDE, 0x12, 0x5C, 0xBA, 0x7E, 0xCF, 0x8C, 0xBB,
+ 0x0F, 0xA8, 0x31, 0xBD, 0x18, 0xB9, 0x82, 0x3C, 0x85, 0xF0, 0xA5, 0x3E,
+ 0xA0, 0xD3, 0x04, 0x3C, 0x3B, 0x23, 0x9D, 0x3B, 0xA0, 0xDB, 0xBC, 0x3E,
+ 0x05, 0x93, 0x1E, 0xBD, 0x3E, 0x93, 0xE5, 0x3D, 0x73, 0x9A, 0x81, 0x3E,
+ 0x33, 0x00, 0xA9, 0x3D, 0xAF, 0x87, 0x61, 0xBD, 0xC8, 0xD4, 0x1B, 0x3E,
+ 0x8A, 0xB1, 0x06, 0x3E, 0x38, 0x6D, 0xFD, 0xBD, 0xB8, 0xD8, 0x60, 0xBC,
+ 0x30, 0xC2, 0x0D, 0x3E, 0x8B, 0x2A, 0xB9, 0x3C, 0xCE, 0x67, 0x22, 0x3C,
+ 0xB8, 0xCF, 0x1E, 0xBE, 0xB0, 0xA0, 0x0E, 0xBD, 0x92, 0x3F, 0x89, 0x3D,
+ 0xF5, 0xF4, 0x0C, 0x3F, 0xA8, 0xC0, 0xDE, 0x3C, 0x02, 0x60, 0x57, 0x3E,
+ 0x8C, 0x06, 0x44, 0xBE, 0xEA, 0xB4, 0x70, 0xBD, 0x89, 0x25, 0xE9, 0x3D,
+ 0x40, 0x79, 0x22, 0xBE, 0x2A, 0x8E, 0xEA, 0xBA, 0x1D, 0x2D, 0xBC, 0xBB,
+ 0x00, 0xFC, 0x21, 0xBD, 0x6A, 0x34, 0x77, 0xBC, 0xBA, 0x12, 0xDE, 0xBE,
+ 0xCC, 0xDF, 0x90, 0x3D, 0x63, 0x9B, 0x91, 0xBE, 0x12, 0x4F, 0x1D, 0xBE,
+ 0xD9, 0x24, 0x95, 0x3D, 0xE5, 0x32, 0x29, 0x3D, 0x67, 0x4C, 0xB1, 0xBD,
+ 0xDA, 0xF1, 0x63, 0x3F, 0x00, 0xD3, 0xBD, 0xBE, 0x19, 0xE0, 0x90, 0x3E,
+ 0xBC, 0xDC, 0x78, 0xBE, 0xB0, 0x72, 0xE1, 0xBC, 0x43, 0xE1, 0xB0, 0xBE,
+ 0x3A, 0x57, 0x79, 0xBE, 0xE6, 0x85, 0x9C, 0xBE, 0x08, 0xB4, 0x47, 0x3F,
+ 0x43, 0xCB, 0x05, 0x3D, 0x9E, 0x4E, 0x5F, 0xBD, 0x7F, 0xA2, 0xFE, 0x3E,
+ 0x9F, 0xDA, 0x18, 0xBE, 0x0B, 0x24, 0x1F, 0xBE, 0xCB, 0xDC, 0xD1, 0x3E,
+ 0x12, 0xBA, 0x56, 0x3D, 0xDE, 0xB0, 0xB4, 0x3E, 0xF9, 0xEE, 0xB9, 0x3C,
+ 0x14, 0xD2, 0xDB, 0xBD, 0xC0, 0xE8, 0x70, 0x3E, 0xBF, 0x58, 0xA3, 0xBE,
+ 0x5B, 0x25, 0x22, 0x3E, 0xCF, 0x4F, 0x51, 0xBE, 0x2E, 0x07, 0xD2, 0xBE,
+ 0x03, 0x1A, 0xA6, 0x3C, 0xFD, 0x08, 0x37, 0xBF, 0xCD, 0xFF, 0x5D, 0xBD,
+ 0xA5, 0x9E, 0x90, 0x3E, 0x8F, 0xBA, 0x57, 0x3E, 0xB3, 0x7A, 0x66, 0x3E,
+ 0x97, 0x5B, 0x19, 0xBD, 0xC4, 0x20, 0xBE, 0x3D, 0xFF, 0x99, 0x8F, 0xBF,
+ 0x0B, 0xF8, 0x8B, 0xBE, 0xE9, 0xD5, 0x23, 0xBD, 0x4D, 0x6C, 0x6E, 0x3D,
+ 0x55, 0x3A, 0xE8, 0x3E, 0x25, 0xBA, 0xBE, 0x3E, 0xC0, 0x67, 0x17, 0xBE,
+ 0xB5, 0x73, 0x8C, 0x3E, 0x4F, 0x6D, 0xB8, 0x3E, 0xC8, 0x52, 0x93, 0x3D,
+ 0x81, 0xFA, 0x4F, 0x3E, 0x42, 0x8A, 0x3E, 0x3E, 0xA9, 0xF9, 0x30, 0xBF,
+ 0x27, 0x5B, 0x15, 0x3E, 0x7A, 0x25, 0x0C, 0x3F, 0x13, 0x7E, 0x35, 0x3D,
+ 0xF3, 0xB4, 0x14, 0xBF, 0x8A, 0x1A, 0xA3, 0x3F, 0xF1, 0x9D, 0xBA, 0xBE,
+ 0x3B, 0x14, 0x3C, 0xBD, 0xC8, 0x46, 0x32, 0xBF, 0xC8, 0xBC, 0x0C, 0x3C,
+ 0x44, 0xCE, 0xAE, 0x3E, 0xF6, 0x02, 0xE9, 0x3E, 0x59, 0xB3, 0x60, 0x3E,
+ 0x0B, 0x35, 0x94, 0x3F, 0xF8, 0x28, 0x07, 0x3E, 0x74, 0x90, 0xF0, 0x3E,
+ 0xA6, 0x0F, 0x1E, 0x3E, 0xC5, 0x70, 0x18, 0xBE, 0xC7, 0x93, 0xE3, 0xBD,
+ 0xBB, 0xD0, 0x4C, 0x3E, 0xF7, 0x4B, 0xB5, 0x3F, 0x49, 0x24, 0x86, 0x3D,
+ 0xD4, 0xE5, 0x5D, 0xBE, 0xDD, 0x29, 0xD8, 0x3E, 0xBD, 0x76, 0xD9, 0xBD,
+ 0x0D, 0x14, 0x71, 0xBE, 0x4E, 0xA6, 0xA7, 0x3E, 0x65, 0x77, 0xDC, 0xBD,
+ 0x62, 0x00, 0xED, 0x3E, 0x35, 0x52, 0x20, 0xBE, 0x61, 0x3C, 0x71, 0xBE,
+ 0x7A, 0x94, 0x6F, 0xBE, 0xE7, 0xF2, 0x75, 0xBD, 0x6A, 0x35, 0x4B, 0xBE,
+ 0xB5, 0x68, 0xF0, 0xBD, 0x43, 0x86, 0x3D, 0xBC, 0xA9, 0xD9, 0x48, 0xBF,
+ 0x82, 0xBF, 0x28, 0xBF, 0x82, 0x10, 0x15, 0x3E, 0xFA, 0xFA, 0x45, 0x3D,
+ 0x21, 0x23, 0x3B, 0xBF, 0xD2, 0xDC, 0x83, 0x3E, 0x62, 0xEC, 0x34, 0xBE,
+ 0xBB, 0x12, 0xC6, 0x3D, 0x93, 0xE2, 0xC8, 0xBD, 0x02, 0x8A, 0x22, 0x3E,
+ 0xC0, 0xBD, 0x8C, 0xBE, 0x59, 0x96, 0xCB, 0xBC, 0x6C, 0xD0, 0x81, 0xBD,
+ 0x23, 0xF5, 0xF2, 0x3D, 0x76, 0x8A, 0x38, 0x3E, 0x01, 0x93, 0xB4, 0xBD,
+ 0xEF, 0x80, 0x18, 0x3E, 0xE1, 0xBC, 0x1E, 0x3D, 0xF2, 0x0B, 0x2A, 0x3E,
+ 0xFE, 0x9E, 0x20, 0xBE, 0x6E, 0xCE, 0xFD, 0xBC, 0x3D, 0x3D, 0x9C, 0xBD,
+ 0x14, 0xB1, 0x00, 0xBD, 0xC8, 0x67, 0x97, 0x3B, 0xCE, 0x0D, 0x55, 0x3D,
+ 0xE9, 0xF0, 0xB7, 0xBB, 0xE9, 0x45, 0x9D, 0xBC, 0x81, 0xBA, 0xCD, 0x3D,
+ 0x95, 0x5F, 0x14, 0x3C, 0x1B, 0x3A, 0x9C, 0xBD, 0x63, 0xB7, 0xB0, 0xBC,
+ 0x63, 0x53, 0x3B, 0x3D, 0xAD, 0xA6, 0xF4, 0x3D, 0x9E, 0xA2, 0x41, 0x3E,
+ 0xA9, 0xDB, 0x0B, 0xBC, 0x79, 0x19, 0xF6, 0x3D, 0xDD, 0x60, 0x1F, 0x3E,
+ 0xE8, 0x37, 0x58, 0xBE, 0xA1, 0xBA, 0x24, 0x3E, 0x8C, 0x58, 0xD9, 0xBD,
+ 0xEF, 0x56, 0x0E, 0xBD, 0x20, 0x9C, 0x85, 0xBE, 0x7B, 0xCA, 0xEA, 0x3D,
+ 0x97, 0x54, 0xA2, 0x3E, 0xDD, 0xF7, 0xBC, 0x3C, 0x93, 0xF1, 0x0D, 0x3E,
+ 0x10, 0xBA, 0x93, 0x3D, 0xA0, 0xC4, 0x9D, 0x3D, 0x4B, 0xD6, 0xCE, 0x3B,
+ 0x0D, 0xA4, 0x7B, 0xBC, 0x4A, 0x15, 0x99, 0x3D, 0x9B, 0xA5, 0xFE, 0xBD,
+ 0x0E, 0x5E, 0x5E, 0x3E, 0x6B, 0x04, 0xD7, 0x3D, 0x7C, 0x21, 0x00, 0xBE,
+ 0xF7, 0xAC, 0xB8, 0xBD, 0xF2, 0x90, 0xB4, 0x3D, 0x8A, 0x6C, 0x05, 0x3D,
+ 0xA7, 0xA4, 0x3B, 0xBD, 0x63, 0xDC, 0x89, 0x3D, 0x67, 0x7C, 0x52, 0xBD,
+ 0x29, 0x6A, 0x9F, 0xBD, 0x6E, 0x71, 0xAF, 0x3D, 0xB7, 0x34, 0x32, 0xBA,
+ 0xFB, 0xD6, 0x32, 0x3E, 0x87, 0x5C, 0x1F, 0x3E, 0x4C, 0x17, 0x4A, 0x3D,
+ 0x52, 0xA9, 0xED, 0x3D, 0xBE, 0xBA, 0x0D, 0xBE, 0x6A, 0x9F, 0x51, 0x3D,
+ 0x44, 0xA2, 0x2B, 0xBE, 0xF0, 0xAF, 0x50, 0xBE, 0xF8, 0x31, 0xBF, 0x3C,
+ 0xD3, 0xFD, 0x0B, 0x3C, 0x8F, 0x8C, 0xAC, 0xBD, 0xCB, 0x0D, 0x4B, 0xBC,
+ 0x99, 0x23, 0x7E, 0xBD, 0x86, 0x48, 0x89, 0x3C, 0xD6, 0x41, 0x73, 0x3D,
+ 0xE3, 0xAD, 0x2F, 0x3B, 0x3A, 0xE7, 0x85, 0xBD, 0x66, 0x46, 0xC1, 0x3D,
+ 0x41, 0x79, 0x23, 0xBE, 0x72, 0xF3, 0xA4, 0x3C, 0x43, 0x48, 0x02, 0x3D,
+ 0x6C, 0x1A, 0x4A, 0x3D, 0x8D, 0xEB, 0x8E, 0xBB, 0x54, 0x36, 0xC7, 0xBC,
+ 0x91, 0x93, 0x1D, 0xBE, 0x71, 0x38, 0x2C, 0xBD, 0x97, 0x66, 0x74, 0x3D,
+ 0x56, 0xDF, 0x65, 0xBE, 0xE0, 0x47, 0x22, 0xBC, 0x1A, 0xA5, 0x2D, 0x3D,
+ 0x2D, 0x4B, 0xD5, 0x3D, 0x1B, 0x4F, 0xCD, 0xBB, 0x16, 0x93, 0x4C, 0xBC,
+ 0xC4, 0x83, 0xF2, 0x3C, 0xD7, 0x7C, 0x1C, 0xBD, 0xF9, 0x07, 0x54, 0xBC,
+ 0x19, 0x3F, 0x73, 0x3E, 0x93, 0x81, 0x88, 0xBD, 0x5D, 0x36, 0x39, 0x3E,
+ 0x80, 0x80, 0x5A, 0x3B, 0x4F, 0xF0, 0xAD, 0xB9, 0xF6, 0x86, 0x13, 0x3E,
+ 0xA9, 0x0D, 0x19, 0x3B, 0x01, 0x53, 0xA5, 0x3E, 0x3D, 0x7A, 0xF7, 0xBC,
+ 0x38, 0xF2, 0xA4, 0x3C, 0xD9, 0xE5, 0xC8, 0x3D, 0x5E, 0x98, 0x2A, 0x3C,
+ 0x07, 0xF9, 0xBF, 0x3C, 0x8C, 0xF4, 0xAE, 0xBD, 0xFC, 0x81, 0xCE, 0xBC,
+ 0x08, 0xCA, 0xF4, 0x3D, 0x87, 0x38, 0x54, 0xBC, 0xAE, 0x87, 0x11, 0x3D,
+ 0x1B, 0x82, 0xE2, 0xBC, 0x35, 0xDF, 0xEA, 0xBC, 0x61, 0xB7, 0xDC, 0xBC,
+ 0xC3, 0x81, 0x11, 0x3D, 0x9F, 0xE4, 0x0D, 0xBD, 0x6B, 0xAA, 0xB0, 0x3D,
+ 0x53, 0x70, 0x5A, 0x3D, 0xAE, 0xBC, 0x35, 0x39, 0xCE, 0x44, 0xCD, 0x3C,
+ 0xBD, 0x60, 0x2D, 0xBB, 0xFC, 0x60, 0x6D, 0x3D, 0x2C, 0xD0, 0x02, 0xBE,
+ 0x0E, 0x39, 0x38, 0x3C, 0x1D, 0xAB, 0xD3, 0x3B, 0xF8, 0x98, 0xC9, 0xBD,
+ 0x98, 0x14, 0x13, 0x3E, 0x3C, 0x67, 0xC9, 0xBD, 0xAF, 0x9D, 0x05, 0xBC,
+ 0xC0, 0x72, 0xAE, 0x3D, 0x2C, 0xE5, 0x1E, 0xBE, 0x99, 0x4A, 0x8C, 0xBD,
+ 0xDA, 0xC9, 0xC3, 0xBE, 0xF1, 0xBC, 0xA2, 0xBC, 0xBA, 0xE5, 0x93, 0x3B,
+ 0x4A, 0x4A, 0xA2, 0xBD, 0x7B, 0xD6, 0x5D, 0xBD, 0x95, 0xC3, 0x33, 0x3D,
+ 0x21, 0x78, 0x83, 0x3D, 0xD0, 0x01, 0x5E, 0xBD, 0x40, 0x87, 0x42, 0xBD,
+ 0x23, 0x96, 0x15, 0x3D, 0x84, 0x22, 0x11, 0xBC, 0xC1, 0xDB, 0x96, 0x3D,
+ 0x87, 0x73, 0xAA, 0x3C, 0xFC, 0x91, 0x7C, 0x3C, 0xD2, 0x39, 0x27, 0xBD,
+ 0xEF, 0x79, 0xEA, 0xBC, 0xA4, 0xB8, 0x19, 0x3D, 0x6F, 0x6B, 0xB2, 0xBE,
+ 0x32, 0xBC, 0x3F, 0x3D, 0x86, 0xD8, 0x83, 0xBD, 0x1E, 0x90, 0xF0, 0x3C,
+ 0x20, 0x40, 0x4C, 0x3D, 0x8D, 0x8A, 0xF3, 0x3D, 0x04, 0x5D, 0x0A, 0xBD,
+ 0x2C, 0x25, 0x81, 0x3D, 0x3B, 0x61, 0x62, 0x3D, 0xDA, 0x2B, 0x0E, 0xBD,
+ 0x54, 0x66, 0x37, 0xBE, 0x33, 0x2B, 0x5D, 0xBD, 0xA9, 0x7B, 0xEC, 0x3C,
+ 0x61, 0x2F, 0x06, 0xBD, 0xE8, 0x51, 0xE8, 0x3C, 0x72, 0x60, 0x12, 0xBD,
+ 0x9A, 0x92, 0xEC, 0x3D, 0x01, 0x01, 0x40, 0x3C, 0xB5, 0xC9, 0x16, 0x3D,
+ 0x82, 0xD9, 0x9E, 0xBD, 0x74, 0x02, 0xE1, 0xBE, 0x23, 0x5C, 0x51, 0x3E,
+ 0xAF, 0x44, 0xD5, 0xBC, 0x8E, 0xF4, 0x06, 0x3D, 0x10, 0x1B, 0x7F, 0xBE,
+ 0x13, 0x7D, 0xA9, 0x3D, 0xE6, 0x17, 0x2B, 0x3E, 0xA4, 0x4C, 0x06, 0xBE,
+ 0xFC, 0xBE, 0xFE, 0xBD, 0x4C, 0x90, 0x01, 0xBD, 0xE6, 0x20, 0x03, 0xBE,
+ 0x72, 0x40, 0xC5, 0xBD, 0x2B, 0x43, 0xBA, 0xBE, 0xAD, 0xB8, 0xF2, 0xBD,
+ 0x61, 0xFE, 0xD2, 0xBE, 0x98, 0x05, 0x03, 0xBD, 0x71, 0x11, 0x51, 0x3E,
+ 0x23, 0x9A, 0x02, 0xBF, 0x4F, 0x07, 0x29, 0x3E, 0xF4, 0x35, 0x51, 0xBB,
+ 0x1D, 0x8D, 0xB5, 0x3B, 0x7B, 0x44, 0x1F, 0x3D, 0x2E, 0xB9, 0xC0, 0x3B,
+ 0x00, 0x7C, 0x03, 0x3D, 0x9C, 0xFB, 0xA0, 0xBC, 0x00, 0xBA, 0xB6, 0xBE,
+ 0x15, 0x00, 0xC9, 0xBD, 0x00, 0x85, 0xEE, 0xBD, 0x35, 0x61, 0x74, 0x3D,
+ 0xF6, 0x27, 0x34, 0x3B, 0x40, 0x5D, 0x81, 0xBE, 0x44, 0x32, 0x2D, 0x3D,
+ 0x62, 0x15, 0x88, 0xBD, 0x96, 0x00, 0x3D, 0x3E, 0x5C, 0xF5, 0x9F, 0xBD,
+ 0x0C, 0x21, 0x30, 0x3D, 0x65, 0x1B, 0xA3, 0xBC, 0xD3, 0xAD, 0xB2, 0xBC,
+ 0xD7, 0x66, 0x14, 0x3D, 0x6D, 0xEB, 0x04, 0x3E, 0xE4, 0x7F, 0xC5, 0xBC,
+ 0x38, 0x6A, 0x5D, 0xBD, 0xC5, 0x70, 0x00, 0x3D, 0x95, 0x5F, 0x2D, 0xBC,
+ 0xF7, 0xCF, 0x1B, 0xBE, 0x59, 0xE4, 0xB8, 0x3D, 0xBD, 0xA1, 0x8A, 0xBB,
+ 0xE8, 0x6D, 0xD0, 0xBC, 0x4E, 0x5D, 0xDC, 0xBD, 0x43, 0x71, 0x3B, 0x3E,
+ 0x57, 0x0A, 0xA7, 0xBC, 0x5C, 0x85, 0x35, 0xBC, 0xEC, 0xB6, 0x74, 0x3D,
+ 0x1F, 0x5A, 0xBC, 0xBD, 0x1D, 0xB8, 0x85, 0xBD, 0xF5, 0x85, 0xAB, 0xBC,
+ 0x0F, 0x15, 0xA4, 0xBC, 0xE4, 0xC7, 0x08, 0x3E, 0xD5, 0x2F, 0xCC, 0x3D,
+ 0xC1, 0x3E, 0x17, 0x3E, 0x2B, 0x8F, 0xDF, 0x3D, 0x37, 0xD2, 0x9A, 0xBD,
+ 0x04, 0x1A, 0x4B, 0x3D, 0x72, 0x2F, 0xF0, 0x3B, 0x54, 0xA3, 0x60, 0xBD,
+ 0x67, 0x85, 0x96, 0xBD, 0x6D, 0x4B, 0xBC, 0xBC, 0x7E, 0xE9, 0x87, 0x3D,
+ 0x8E, 0xD5, 0x7C, 0x3B, 0x9F, 0x4F, 0xB5, 0x3C, 0x0F, 0xB8, 0xD4, 0xBC,
+ 0xED, 0x8E, 0x83, 0xBC, 0xDE, 0xB3, 0x55, 0x3C, 0x1C, 0x67, 0x65, 0x3B,
+ 0x7C, 0xB8, 0x01, 0xBB, 0x34, 0xB1, 0x4B, 0xBD, 0x9E, 0xC9, 0xFC, 0x3D,
+ 0x32, 0xA9, 0x4A, 0x3B, 0xD0, 0xA0, 0xCA, 0x3D, 0xAF, 0xE8, 0x0A, 0x3C,
+ 0x01, 0x17, 0x80, 0xBC, 0x0E, 0xE5, 0x11, 0xBD, 0xC4, 0x41, 0x1D, 0x3D,
+ 0xE3, 0x90, 0x00, 0xBD, 0x61, 0x2B, 0x2B, 0xBD, 0x66, 0x6D, 0x02, 0x3D,
+ 0xE0, 0xCB, 0x27, 0x3D, 0xEC, 0x0A, 0x46, 0x3C, 0xE2, 0xE0, 0xF0, 0x3B,
+ 0xB8, 0x74, 0x2C, 0xBD, 0x7A, 0x5F, 0x24, 0xBD, 0x85, 0x68, 0x38, 0x3E,
+ 0x7C, 0x73, 0x03, 0x3D, 0xF9, 0xE3, 0x3F, 0xBC, 0x63, 0x7E, 0xA6, 0xBE,
+ 0xC6, 0xDB, 0x5B, 0x3E, 0x19, 0x95, 0xBA, 0x3B, 0x41, 0x6D, 0x6D, 0x3E,
+ 0x03, 0xDE, 0x76, 0xBC, 0x64, 0xED, 0x0C, 0x3E, 0x43, 0x60, 0x7C, 0x3E,
+ 0xD7, 0xCD, 0x3D, 0xBE, 0x79, 0xD7, 0x99, 0x3E, 0xD1, 0xA0, 0xA7, 0xBE,
+ 0xEB, 0x0F, 0xE1, 0xBE, 0x67, 0xD3, 0x08, 0xBD, 0x9D, 0x28, 0xB4, 0x3C,
+ 0x3E, 0xD8, 0x17, 0xBD, 0xFA, 0xAD, 0xF2, 0x3E, 0x6A, 0x4D, 0x11, 0xBF,
+ 0x43, 0x3B, 0x93, 0x3E, 0x1B, 0xE8, 0x88, 0xBD, 0x34, 0x6E, 0x0D, 0xBF,
+ 0xB3, 0x7E, 0xBD, 0xBD, 0x5C, 0xDB, 0x6D, 0xBE, 0x47, 0xB6, 0xCE, 0xBC,
+ 0x69, 0xC4, 0x3B, 0x3F, 0x2B, 0x65, 0x60, 0x3D, 0xF3, 0x81, 0x19, 0x3E,
+ 0x0E, 0x78, 0x89, 0xBD, 0x46, 0x56, 0x42, 0xBE, 0xB4, 0x72, 0xDD, 0x3C,
+ 0xB6, 0xE4, 0x89, 0xBD, 0x39, 0xC2, 0x8F, 0xBE, 0x8C, 0xC9, 0x3C, 0xBF,
+ 0xF4, 0xB4, 0x9F, 0x3D, 0xEC, 0xC1, 0x28, 0x3F, 0xBA, 0xF2, 0x5F, 0x3D,
+ 0xDA, 0xD9, 0xA8, 0x3E, 0x0F, 0xED, 0x31, 0xBE, 0x42, 0xCB, 0x2E, 0x3B,
+ 0x87, 0x5C, 0x95, 0x3D, 0xAA, 0x6C, 0x8F, 0x3E, 0x28, 0xE0, 0x27, 0x3E,
+ 0x45, 0x08, 0xB6, 0x3D, 0xFA, 0x71, 0x54, 0xBE, 0x3F, 0x44, 0xB5, 0x3D,
+ 0x1D, 0x7E, 0x55, 0xBC, 0xEE, 0xF6, 0x24, 0xBC, 0xEF, 0x80, 0x2A, 0x3E,
+ 0x74, 0xE4, 0xE7, 0xBE, 0xB6, 0x1B, 0x1D, 0x3D, 0xC5, 0x18, 0x1A, 0xBD,
+ 0x41, 0xF5, 0x67, 0xBC, 0xB9, 0x20, 0x43, 0x3F, 0x59, 0x56, 0x12, 0xBE,
+ 0x1F, 0x0F, 0xB4, 0x3D, 0x81, 0x9C, 0x7D, 0x3C, 0x14, 0x72, 0x0B, 0x3E,
+ 0x2B, 0x88, 0x34, 0xBE, 0xF8, 0x32, 0x88, 0xBE, 0xE6, 0x91, 0xE2, 0x3D,
+ 0xE0, 0x4E, 0xFC, 0x3D, 0x0D, 0x74, 0x1B, 0xBF, 0xE6, 0xA6, 0xF7, 0x3C,
+ 0xE8, 0x52, 0x2B, 0xBE, 0x4D, 0x28, 0x40, 0xBD, 0x3A, 0x6F, 0x1F, 0x3D,
+ 0xE7, 0xC4, 0xA4, 0x3D, 0x3A, 0x3D, 0xA3, 0x3C, 0x7F, 0xC0, 0x61, 0xBE,
+ 0xB3, 0xA8, 0x39, 0x3E, 0x1D, 0xB3, 0xAA, 0xBD, 0xE5, 0x53, 0xE4, 0x3C,
+ 0xDC, 0xF4, 0x09, 0x3D, 0x27, 0xAE, 0xAC, 0x3E, 0x35, 0x58, 0xC2, 0xBD,
+ 0x56, 0x22, 0xDE, 0xBD, 0x8B, 0x81, 0x30, 0x3D, 0xC0, 0x46, 0x26, 0xBD,
+ 0x6E, 0xA9, 0x3A, 0x3E, 0xCA, 0x41, 0xF5, 0x3E, 0x9E, 0x21, 0x83, 0xBE,
+ 0x4D, 0x85, 0xAE, 0xBC, 0x85, 0x55, 0x22, 0x3E, 0x46, 0x39, 0x35, 0xBD,
+ 0xBB, 0x9D, 0x96, 0x3E, 0x6F, 0x2A, 0x99, 0xBE, 0x00, 0xCE, 0xE7, 0x3D,
+ 0x55, 0x3B, 0x92, 0x3D, 0x51, 0x32, 0x02, 0x3E, 0x54, 0xC3, 0x83, 0xBE,
+ 0xC8, 0x07, 0x38, 0xBE, 0x61, 0x52, 0xEA, 0xBC, 0x94, 0xE3, 0x12, 0x3E,
+ 0x65, 0x41, 0x51, 0x3E, 0xC0, 0x65, 0x31, 0xBE, 0x70, 0xA5, 0x43, 0x3F,
+ 0xA1, 0xF2, 0x61, 0xBC, 0xBD, 0x52, 0x24, 0xBD, 0x17, 0xDB, 0x37, 0x3F,
+ 0x12, 0x9D, 0x43, 0xBD, 0x05, 0xA3, 0x6C, 0xBF, 0xEB, 0x76, 0xA4, 0x3F,
+ 0x7B, 0x18, 0xE2, 0xBB, 0xF9, 0x25, 0x85, 0x3E, 0x3A, 0x7D, 0x0E, 0xBF,
+ 0x34, 0x36, 0x4B, 0x3E, 0x96, 0xAD, 0xCA, 0xBF, 0xB6, 0x29, 0xA1, 0x3E,
+ 0x54, 0x17, 0x92, 0xBD, 0x01, 0xEB, 0xBF, 0x3B, 0xB2, 0x25, 0x16, 0x3F,
+ 0x01, 0xF9, 0x0A, 0xBF, 0x09, 0x0F, 0x95, 0x3F, 0x63, 0x8B, 0x1E, 0xBE,
+ 0x83, 0x1F, 0x43, 0xBE, 0x0F, 0xDF, 0x55, 0x3D, 0x4B, 0x6A, 0x81, 0xBF,
+ 0x9F, 0xEA, 0xE2, 0x3D, 0xDD, 0xAF, 0x29, 0x3E, 0xA8, 0xC9, 0x04, 0x3E,
+ 0x26, 0x71, 0x62, 0xBF, 0xAA, 0x65, 0x04, 0x3E, 0x7A, 0x70, 0x96, 0x3F,
+ 0x69, 0x59, 0xD3, 0x3E, 0xC0, 0x29, 0x06, 0x3F, 0x44, 0x94, 0x66, 0xBF,
+ 0x7D, 0x17, 0xA4, 0x3D, 0xAA, 0x91, 0x69, 0x3D, 0x09, 0x7B, 0x86, 0xBF,
+ 0x8B, 0x2D, 0x88, 0xBE, 0xBF, 0x42, 0x82, 0xBE, 0xBD, 0x4C, 0x49, 0x3E,
+ 0x6E, 0x93, 0x86, 0xBE, 0xE1, 0x5B, 0x6D, 0x3F, 0x98, 0x80, 0xE9, 0x3E,
+ 0xB4, 0x75, 0xB1, 0x3E, 0xC1, 0xB7, 0x02, 0x3F, 0x6D, 0xE4, 0x34, 0xBE,
+ 0x57, 0x0B, 0xA8, 0x3D, 0xAD, 0x94, 0x93, 0xBE, 0x72, 0xA7, 0x73, 0xBF,
+ 0xB7, 0x70, 0x38, 0xBE, 0xAE, 0x1D, 0x17, 0x3F, 0x55, 0x51, 0x9E, 0xBF,
+ 0xEF, 0xAF, 0xF6, 0x3E, 0x7E, 0x0F, 0xD0, 0x3D, 0x69, 0x9D, 0x84, 0x3E,
+ 0xC5, 0x64, 0x21, 0xBE, 0x1F, 0xFC, 0x5E, 0x3C, 0x1F, 0x9D, 0x44, 0x3E,
+ 0x74, 0x60, 0xAD, 0xBE, 0xF0, 0x0D, 0x88, 0x3C, 0x3A, 0x2A, 0x81, 0x3F,
+ 0xE2, 0x9E, 0x3B, 0x3F, 0x3E, 0xEC, 0x1B, 0x3F, 0xB7, 0x26, 0x12, 0xBB,
+ 0x80, 0xCB, 0xFC, 0xBE, 0x7C, 0xEC, 0x15, 0xBF, 0xAB, 0xD9, 0x04, 0xBF,
+ 0xE2, 0x45, 0xB9, 0xBE, 0xCD, 0xFD, 0x81, 0xBD, 0x03, 0x67, 0x89, 0xBE,
+ 0x08, 0x55, 0x5D, 0x3D, 0x8B, 0x47, 0x76, 0xBD, 0xA6, 0xDF, 0xF0, 0xBE,
+ 0xDD, 0x58, 0xC8, 0x3E, 0x66, 0x59, 0x9B, 0xBD, 0x1B, 0x40, 0x53, 0x3D,
+ 0x42, 0xAA, 0xEE, 0xBD, 0xD5, 0x40, 0x71, 0xBE, 0x5B, 0xB6, 0xFF, 0x3C,
+ 0x0E, 0x74, 0x00, 0xBE, 0xF9, 0x1D, 0x89, 0xBE, 0xA3, 0x06, 0xB3, 0x3C,
+ 0x93, 0x98, 0x10, 0xBE, 0x7D, 0x38, 0x65, 0xBD, 0x11, 0xA7, 0xA9, 0xBE,
+ 0xE7, 0x90, 0x69, 0xBD, 0x6A, 0xE4, 0x8A, 0xBE, 0xA3, 0xC1, 0xA6, 0x3C,
+ 0xDA, 0xB2, 0x3A, 0xBE, 0xF6, 0x89, 0x83, 0x3E, 0x07, 0x1E, 0xD7, 0xBD,
+ 0xF7, 0x74, 0x57, 0xBD, 0x23, 0xAE, 0x9A, 0x3E, 0x3A, 0x5A, 0x10, 0xBE,
+ 0x51, 0x38, 0x14, 0x3E, 0xCB, 0xD6, 0x38, 0x3E, 0x54, 0x9F, 0x93, 0xBC,
+ 0x64, 0x2C, 0x64, 0xBE, 0xD0, 0x1D, 0x9B, 0x3D, 0xA8, 0xAE, 0x19, 0xBD,
+ 0x5E, 0x4D, 0x8D, 0x3D, 0x96, 0xEC, 0x19, 0xBE, 0xF2, 0x66, 0x09, 0xBD,
+ 0x1B, 0x7A, 0x99, 0xBC, 0x06, 0xAA, 0xF2, 0x3D, 0x40, 0x16, 0x2B, 0x3C,
+ 0x4B, 0x78, 0x21, 0xBD, 0x73, 0xA2, 0xBA, 0xBC, 0xDC, 0x6B, 0xC4, 0x3A,
+ 0x49, 0x7F, 0x6E, 0xBC, 0xEE, 0x8E, 0xCC, 0xBB, 0x74, 0xB2, 0xA0, 0x3C,
+ 0x64, 0x54, 0x60, 0xBD, 0x83, 0x84, 0x3C, 0x3C, 0xDC, 0xBF, 0x37, 0xBD,
+ 0x2E, 0xD5, 0x7E, 0xBB, 0xBE, 0x8E, 0xB7, 0x3D, 0x8C, 0x85, 0x20, 0x3C,
+ 0x1B, 0x85, 0x13, 0x3D, 0xDE, 0x2A, 0xC9, 0x3B, 0xC8, 0xF0, 0xCA, 0x3B,
+ 0xC7, 0xC6, 0x27, 0x3D, 0xEC, 0xCD, 0x78, 0x3C, 0x5E, 0x6A, 0xC0, 0x3C,
+ 0x03, 0xAA, 0x04, 0xBD, 0x95, 0x56, 0x8C, 0x3D, 0xEE, 0x17, 0x26, 0xBD,
+ 0x8E, 0xB1, 0xD2, 0xBD, 0xD9, 0x1F, 0x09, 0x3D, 0xFD, 0xEF, 0xB5, 0xBD,
+ 0x2C, 0x75, 0x31, 0xBD, 0x6E, 0xBA, 0x02, 0x3E, 0x70, 0x3B, 0x82, 0x3D,
+ 0x41, 0x56, 0x83, 0x3D, 0x13, 0x97, 0xA1, 0xBD, 0xF1, 0xBD, 0x74, 0x3B,
+ 0x76, 0x58, 0x48, 0x3D, 0xAA, 0xA9, 0x02, 0x3D, 0xFD, 0x13, 0x63, 0xBC,
+ 0xEB, 0xA1, 0xAE, 0x3C, 0x57, 0xDB, 0xA9, 0x3B, 0x66, 0x9C, 0xA3, 0x39,
+ 0xB9, 0xE2, 0x2F, 0xBD, 0x9B, 0x0F, 0xF7, 0x3C, 0xB3, 0xB2, 0xE0, 0xBB,
+ 0x17, 0xA6, 0xD6, 0xBB, 0x85, 0x26, 0x16, 0x3C, 0xE4, 0xE0, 0xC6, 0xBC,
+ 0x77, 0xF2, 0x70, 0x3D, 0xF6, 0x9B, 0x26, 0x3C, 0xFA, 0xC8, 0x8F, 0x3B,
+ 0x2A, 0x1E, 0x67, 0x3C, 0xBB, 0x9D, 0x46, 0xBA, 0x35, 0x4D, 0x06, 0x3D,
+ 0x90, 0xE9, 0xB0, 0x3C, 0x49, 0xAF, 0xC0, 0xBC, 0x5F, 0x31, 0x14, 0xBC,
+ 0x7F, 0x9C, 0x1E, 0x3C, 0x6F, 0x85, 0xFB, 0x3C, 0x93, 0x30, 0xB0, 0xBC,
+ 0x47, 0xFA, 0x0A, 0xBD, 0x78, 0x41, 0x4E, 0x3D, 0xD3, 0x04, 0x09, 0x3C,
+ 0x38, 0xDA, 0x15, 0x3F, 0xB9, 0x07, 0xB8, 0xBB, 0xC3, 0xA3, 0xB9, 0xBC,
+ 0xCE, 0xB0, 0x80, 0x3D, 0x99, 0xCE, 0x2E, 0x3C, 0xDA, 0xDA, 0x33, 0xBC,
+ 0xC1, 0x96, 0xD8, 0xBD, 0x61, 0xFE, 0x3B, 0xBC, 0xE4, 0x3E, 0x80, 0x3D,
+ 0x05, 0x49, 0x10, 0x3D, 0xFB, 0x8F, 0x99, 0x3D, 0xD1, 0x41, 0xE5, 0xBC,
+ 0x63, 0x71, 0x86, 0xBD, 0x2C, 0xA4, 0x3C, 0x3C, 0x2B, 0x64, 0xE5, 0x3C,
+ 0x9A, 0x12, 0x2C, 0x3C, 0x2F, 0x5E, 0x48, 0x3E, 0xEA, 0xDE, 0xC7, 0x3D,
+ 0x35, 0x7C, 0xC1, 0xBC, 0xAF, 0x2C, 0x04, 0x3D, 0xCF, 0x3B, 0x6E, 0xBC,
+ 0xB8, 0x46, 0xDA, 0x3C, 0xE3, 0xE0, 0x0D, 0xBE, 0x1D, 0xC0, 0x20, 0x3D,
+ 0x43, 0xA9, 0x89, 0xBC, 0x48, 0x72, 0x34, 0xBC, 0xE8, 0x5F, 0x86, 0x3D,
+ 0x5B, 0x8C, 0xBA, 0xBB, 0x59, 0x47, 0x30, 0x3D, 0xBF, 0x52, 0xC3, 0x3B,
+ 0xA0, 0xD2, 0x35, 0xBD, 0x4E, 0x52, 0x1E, 0xBD, 0x79, 0x76, 0x06, 0x3E,
+ 0xB1, 0x73, 0x1E, 0xBD, 0xBA, 0xAF, 0x3A, 0xBD, 0x3F, 0x53, 0x70, 0xBB,
+ 0x3D, 0x7C, 0x25, 0x3C, 0x14, 0x6A, 0xA2, 0x3D, 0x20, 0xA4, 0x91, 0xBD,
+ 0x18, 0x0E, 0xD2, 0x3B, 0xBF, 0xA0, 0x07, 0xBD, 0x2E, 0x32, 0x49, 0x3D,
+ 0xF5, 0x70, 0xCE, 0x3D, 0x03, 0x8E, 0x81, 0xBD, 0xDF, 0x9C, 0x8F, 0xBD,
+ 0x5B, 0x48, 0x0A, 0xBC, 0xFE, 0x61, 0xCD, 0x3B, 0x25, 0x21, 0xC6, 0x3C,
+ 0xF6, 0x1F, 0x5A, 0x3E, 0x30, 0x17, 0x24, 0x3E, 0xDF, 0xB5, 0x1E, 0xBC,
+ 0xA5, 0xE5, 0xB8, 0x3D, 0x3B, 0x2B, 0x73, 0x3B, 0x29, 0x5A, 0x0A, 0xBC,
+ 0x53, 0x79, 0x27, 0xBD, 0x5D, 0xE3, 0x3F, 0x3D, 0x52, 0x5A, 0x62, 0x3D,
+ 0x6C, 0x8A, 0xCE, 0x3C, 0xC2, 0xF0, 0xC8, 0x3B, 0xB6, 0x05, 0xC6, 0xBB,
+ 0x8B, 0xC1, 0x36, 0xBD, 0x08, 0x36, 0xC9, 0xBC, 0xBC, 0xDB, 0xA8, 0xBD,
+ 0x6A, 0x2B, 0x75, 0xBD, 0x53, 0x89, 0xB2, 0x3E, 0x69, 0x29, 0xAC, 0xBD,
+ 0x69, 0x3B, 0xC5, 0x3D, 0x11, 0x18, 0x79, 0x3D, 0x7F, 0x49, 0xA2, 0xBD,
+ 0x1F, 0xB0, 0x2C, 0xBD, 0x52, 0x10, 0x90, 0xBE, 0x20, 0x0F, 0x49, 0x3C,
+ 0x61, 0x7D, 0x07, 0x3D, 0xE5, 0xCC, 0x04, 0x3C, 0xC3, 0xE6, 0x9B, 0x3D,
+ 0x41, 0x58, 0x98, 0x3C, 0x1C, 0x91, 0x70, 0x3E, 0xE9, 0xB3, 0xDC, 0x3D,
+ 0xBE, 0xC7, 0x26, 0xBC, 0x7A, 0xF7, 0x43, 0xBD, 0x21, 0x70, 0x25, 0x3E,
+ 0x0A, 0x22, 0x47, 0xBD, 0xF7, 0x53, 0xBC, 0xBD, 0x5D, 0x49, 0x79, 0xBE,
+ 0xD7, 0xEA, 0x8C, 0xBC, 0x84, 0x81, 0x9F, 0x3D, 0x01, 0x81, 0xC5, 0x3D,
+ 0x4A, 0x34, 0xF8, 0x3D, 0xE7, 0x72, 0x7F, 0x3C, 0x8A, 0xE8, 0x82, 0x3E,
+ 0xF2, 0x3A, 0xEE, 0x3D, 0x1E, 0xC8, 0x4E, 0x3E, 0xBB, 0xB7, 0x45, 0x3B,
+ 0x2B, 0x2C, 0x1A, 0x3D, 0x62, 0xD8, 0x49, 0xBF, 0x3F, 0xA4, 0x0B, 0xBB,
+ 0x6F, 0xAE, 0xC8, 0x3D, 0x24, 0x87, 0x8A, 0x3E, 0xFF, 0xDA, 0x35, 0x3D,
+ 0x3F, 0x7B, 0xFB, 0x3E, 0x36, 0x0B, 0xFA, 0xBD, 0xC8, 0x11, 0xFE, 0x3E,
+ 0x0A, 0x96, 0x23, 0xBF, 0x1F, 0x3F, 0xD0, 0x3D, 0x76, 0xCD, 0x9E, 0xBD,
+ 0xCE, 0x72, 0xB0, 0x3D, 0x0B, 0x3B, 0x99, 0x3E, 0x7A, 0xBB, 0x17, 0xBE,
+ 0x50, 0xDD, 0x18, 0xBE, 0xBA, 0x1C, 0x84, 0x3F, 0xF0, 0x79, 0x66, 0xB9,
+ 0x7C, 0x56, 0xCB, 0x3D, 0x9C, 0xF3, 0x0B, 0x3E, 0xA7, 0xD4, 0x2D, 0x3B,
+ 0xD5, 0xF3, 0x42, 0x3D, 0x74, 0x0C, 0x14, 0x3F, 0x72, 0xE1, 0x90, 0x3A,
+ 0x69, 0x35, 0x57, 0x3F, 0x32, 0x76, 0x93, 0xBE, 0x5D, 0x21, 0x06, 0x3E,
+ 0x99, 0xD0, 0x97, 0x3D, 0x4C, 0x7C, 0xA3, 0xBC, 0xCE, 0xD3, 0xDB, 0x3D,
+ 0x23, 0x41, 0xEB, 0xBD, 0xB2, 0x7D, 0x25, 0xBE, 0x88, 0xF7, 0x05, 0x3E,
+ 0xE0, 0x8F, 0xA1, 0xBE, 0x57, 0x29, 0x38, 0x3D, 0xF6, 0xAD, 0x71, 0xBF,
+ 0x16, 0xFE, 0x1E, 0xBE, 0x64, 0x5F, 0x87, 0x3E, 0x05, 0x15, 0xAF, 0x3D,
+ 0x54, 0x9C, 0xEE, 0x3E, 0xFA, 0xAC, 0xD9, 0xBE, 0x12, 0x1F, 0x9A, 0xBE,
+ 0x64, 0x3E, 0xD0, 0x3D, 0x06, 0x58, 0x9B, 0x3E, 0xAA, 0xD7, 0x07, 0xBF,
+ 0x84, 0xC2, 0x74, 0xBE, 0xBE, 0x66, 0x17, 0x3F, 0x18, 0xE4, 0xF2, 0x3D,
+ 0x81, 0x11, 0x22, 0x3E, 0xD9, 0xC2, 0x19, 0xBE, 0xAC, 0x3E, 0x50, 0x3E,
+ 0x1C, 0xC8, 0x67, 0xBF, 0x87, 0x37, 0xD6, 0x3C, 0x4E, 0x5C, 0xAD, 0xBE,
+ 0xF3, 0x7C, 0x19, 0x3F, 0xD6, 0xEC, 0x13, 0xBE, 0x68, 0xE0, 0xA7, 0x3E,
+ 0xB7, 0x69, 0x08, 0xBF, 0x71, 0xB9, 0xA9, 0x3C, 0x16, 0xFD, 0x3D, 0xBE,
+ 0xBB, 0x15, 0x98, 0xBE, 0x1C, 0xDC, 0x30, 0x3F, 0x51, 0xA0, 0x56, 0x3E,
+ 0xC9, 0xAA, 0x18, 0x3E, 0x32, 0x5F, 0x00, 0x3E, 0x8D, 0x32, 0x56, 0x3F,
+ 0x44, 0x8F, 0xF2, 0xBD, 0x37, 0xCB, 0x50, 0xBF, 0xBF, 0xDD, 0xAD, 0xBF,
+ 0xAC, 0xEE, 0x18, 0xBF, 0x03, 0x0F, 0x0F, 0x3E, 0x54, 0x83, 0x20, 0xBB,
+ 0x0E, 0x9C, 0x0C, 0xBD, 0x07, 0x12, 0xA0, 0xBD, 0xC8, 0xF9, 0xCA, 0x3C,
+ 0xD7, 0x39, 0x2D, 0x3D, 0x67, 0x6C, 0x1B, 0x3D, 0xA6, 0xCB, 0x03, 0x3D,
+ 0xAA, 0x70, 0x1C, 0xBD, 0xC6, 0xD2, 0x51, 0xBD, 0x29, 0x9A, 0x4D, 0x3D,
+ 0xE1, 0x2F, 0x80, 0x3C, 0x51, 0x39, 0xD8, 0x3B, 0x6D, 0x68, 0x65, 0x3D,
+ 0x1A, 0x22, 0xA5, 0x3D, 0x7E, 0x4F, 0x4D, 0xBD, 0x72, 0x9F, 0x9F, 0x3C,
+ 0x9A, 0x14, 0x1A, 0x3B, 0xCB, 0xBD, 0x37, 0x3D, 0x21, 0x1D, 0x96, 0xBD,
+ 0x04, 0x73, 0x9A, 0x3C, 0xD5, 0xF9, 0x59, 0x3C, 0xB6, 0x90, 0xFE, 0xBC,
+ 0xC3, 0x70, 0x15, 0x3C, 0x3E, 0xEA, 0x70, 0x3D, 0x73, 0xCE, 0xF0, 0x3C,
+ 0x8E, 0x92, 0x38, 0x3B, 0x00, 0x9F, 0xDE, 0xBD, 0xAC, 0x3D, 0xEF, 0xBA,
+ 0x9A, 0xCE, 0x0A, 0x3F, 0x1D, 0xB6, 0x0C, 0xBD, 0x36, 0x69, 0xF3, 0xBC,
+ 0xA1, 0xED, 0x6C, 0x3E, 0x53, 0x5E, 0x42, 0xBB, 0xA3, 0xB5, 0x92, 0x3E,
+ 0x80, 0x85, 0xC7, 0xBE, 0xC9, 0x26, 0x71, 0x3C, 0x84, 0x0D, 0xCF, 0x3D,
+ 0xEF, 0x21, 0x51, 0xBD, 0x2A, 0x8B, 0x80, 0x3D, 0x37, 0x08, 0x74, 0x3D,
+ 0xAE, 0x9D, 0xA0, 0xBD, 0x74, 0x62, 0x27, 0x3E, 0xAA, 0xC5, 0x4D, 0x3C,
+ 0xF1, 0xD5, 0xE2, 0xBB, 0xA2, 0xFC, 0x5C, 0xBE, 0x7C, 0x2E, 0x0A, 0xBF,
+ 0x2A, 0x9F, 0xCA, 0x3E, 0x46, 0x54, 0x88, 0xBD, 0x57, 0xF7, 0x00, 0x3C,
+ 0x42, 0x2C, 0xFE, 0x3D, 0xA1, 0x63, 0x87, 0xBE, 0xFA, 0x2B, 0x97, 0x3B,
+ 0xCF, 0xC0, 0xBC, 0x3C, 0x80, 0x88, 0xBA, 0x3D, 0x1C, 0xF9, 0xD5, 0xBD,
+ 0x07, 0xA7, 0x92, 0xBE, 0x35, 0xB0, 0x4D, 0x3E, 0xAB, 0xA1, 0x07, 0x3C,
+ 0x7B, 0x9F, 0x9D, 0xBE, 0x23, 0x95, 0x94, 0x3D, 0x57, 0xF7, 0x87, 0xBF,
+ 0x4E, 0x56, 0x27, 0xBD, 0x69, 0x59, 0x0C, 0x3D, 0x84, 0xF0, 0x71, 0x3E,
+ 0xED, 0x83, 0x67, 0x3E, 0x8D, 0xBD, 0x7A, 0xBD, 0xC6, 0xDD, 0xBC, 0x3E,
+ 0xBD, 0xB6, 0xB0, 0x3E, 0x53, 0xA1, 0x6F, 0xBF, 0xCE, 0x85, 0x11, 0xBE,
+ 0x4D, 0x22, 0xFB, 0xBD, 0x1B, 0xCF, 0x05, 0xBF, 0x76, 0x39, 0x88, 0xBC,
+ 0xDA, 0x47, 0x92, 0xBE, 0xAA, 0xCE, 0xB5, 0x3E, 0x4B, 0x4D, 0xE6, 0xBD,
+ 0xF3, 0xB7, 0x88, 0x3F, 0x20, 0xB8, 0x90, 0x3F, 0xE4, 0x2C, 0x48, 0x3D,
+ 0x85, 0xAF, 0xE5, 0xBE, 0x1D, 0x7E, 0x96, 0x3E, 0x5F, 0xAF, 0x09, 0x3F,
+ 0x2E, 0x93, 0xBE, 0x3E, 0xD6, 0x0C, 0x48, 0xBF, 0xD4, 0x77, 0x82, 0x3E,
+ 0x98, 0xE2, 0xBB, 0xBE, 0x25, 0x72, 0xF0, 0xBD, 0xD7, 0x6F, 0x19, 0x3F,
+ 0x12, 0xA2, 0xAE, 0xBE, 0x05, 0x60, 0x77, 0x3E, 0x71, 0x12, 0xA7, 0xBE,
+ 0xE0, 0x57, 0x62, 0xBC, 0x18, 0xCB, 0x9A, 0xBF, 0x7A, 0xC5, 0xCF, 0xBE,
+ 0x17, 0x9F, 0xF3, 0xBE, 0x24, 0x0E, 0x1E, 0x3E, 0x48, 0x6A, 0xC6, 0xBD,
+ 0x8F, 0x75, 0x22, 0x3E, 0xB8, 0xF9, 0xF3, 0xBD, 0x34, 0xE6, 0x3C, 0x3D,
+ 0x7A, 0x91, 0xE4, 0xBC, 0x05, 0xF4, 0x0A, 0x3D, 0xE1, 0xEE, 0x5E, 0xBD,
+ 0x30, 0xFD, 0x14, 0xBD, 0x28, 0x8B, 0xB1, 0xBD, 0xE6, 0xE4, 0xBC, 0x3D,
+ 0xEE, 0x4C, 0x2E, 0xBD, 0x58, 0x71, 0x81, 0xBD, 0xE2, 0x71, 0xD0, 0x3B,
+ 0xE9, 0xCE, 0x7F, 0xBD, 0x4F, 0x40, 0x99, 0xBD, 0x6B, 0x04, 0xF8, 0xBC,
+ 0xDB, 0xAE, 0x04, 0x3D, 0x5A, 0x2F, 0x13, 0x3E, 0xE6, 0x9A, 0x17, 0xBC,
+ 0x64, 0x2B, 0x78, 0x3A, 0x42, 0x6B, 0x3D, 0x3C, 0x00, 0x03, 0x48, 0xBD,
+ 0xCD, 0xC0, 0xFD, 0xBB, 0x2E, 0x8F, 0xC7, 0x3C, 0x38, 0x94, 0x86, 0xBC,
+ 0xAA, 0x8B, 0x5E, 0x3D, 0x47, 0x0F, 0x6C, 0xBE, 0xC3, 0xD2, 0xD8, 0x3C,
+ 0x4A, 0x5A, 0xE7, 0xBC, 0x6B, 0xEB, 0x17, 0x3D, 0x21, 0x60, 0xF5, 0xBB,
+ 0x12, 0x8E, 0xB4, 0xBD, 0x25, 0x87, 0xE0, 0x3C, 0x9C, 0x37, 0x6B, 0xBD,
+ 0xCC, 0xF2, 0x9D, 0x3D, 0xC9, 0x36, 0x03, 0xBD, 0xF3, 0x7A, 0x86, 0x3D,
+ 0x76, 0xA1, 0x1C, 0x3C, 0x0C, 0xDF, 0x4E, 0x3D, 0xB9, 0x59, 0x87, 0x3C,
+ 0x9B, 0x32, 0xE6, 0xBA, 0xC9, 0x74, 0x8C, 0xBC, 0xB9, 0x0C, 0x90, 0x3C,
+ 0xE7, 0xE8, 0x01, 0xBC, 0x94, 0x3E, 0x63, 0xBE, 0xE2, 0x52, 0xF9, 0x3C,
+ 0x70, 0xB7, 0x80, 0xBC, 0x31, 0xA3, 0x3B, 0x3B, 0x43, 0x05, 0x52, 0xBB,
+ 0x6F, 0xA1, 0x33, 0xBD, 0x0D, 0x29, 0x75, 0xBD, 0x9A, 0x35, 0x89, 0x3C,
+ 0x4E, 0x1C, 0xA4, 0xBD, 0x7D, 0xBA, 0x12, 0xBE, 0x02, 0xAC, 0xB9, 0x3D,
+ 0xAF, 0xDB, 0x48, 0xBD, 0x89, 0x44, 0x6A, 0x3D, 0x42, 0x7C, 0x06, 0xBD,
+ 0xD9, 0x93, 0x69, 0x3E, 0x82, 0x59, 0x30, 0xBD, 0x07, 0x56, 0xC0, 0xBE,
+ 0x31, 0xB9, 0xB2, 0xBC, 0xA6, 0xDD, 0x67, 0xBC, 0x7A, 0xE9, 0xB6, 0xBD,
+ 0xEF, 0x2F, 0x13, 0xBC, 0x69, 0x04, 0xB5, 0xBE, 0x8B, 0xD4, 0x41, 0xBD,
+ 0xBD, 0x1E, 0x5C, 0x3D, 0xF5, 0xFA, 0x98, 0xBD, 0x83, 0x9A, 0xC3, 0x3D,
+ 0xC7, 0x50, 0xAD, 0x3D, 0x1F, 0x9E, 0x36, 0xBD, 0x27, 0x94, 0xD5, 0x3D,
+ 0x02, 0xD0, 0xE1, 0x3D, 0x19, 0xA4, 0x2B, 0xBD, 0x69, 0xAA, 0xF3, 0xBD,
+ 0x59, 0xE9, 0x4C, 0xBF, 0xFC, 0x29, 0x2D, 0x3F, 0xA1, 0xFD, 0x1E, 0xBD,
+ 0x0F, 0x28, 0xFE, 0x3D, 0x1B, 0x93, 0x00, 0xBC, 0xD2, 0x9D, 0x3E, 0xBE,
+ 0x37, 0x8A, 0xA2, 0x3E, 0x9D, 0xC7, 0xB0, 0xBD, 0x20, 0xB9, 0x6E, 0x3D,
+ 0xF4, 0xB6, 0x0D, 0xBC, 0xB8, 0xC4, 0x13, 0xBE, 0x6C, 0x38, 0xCB, 0xBC,
+ 0x80, 0x9A, 0x37, 0x3D, 0x8A, 0x4C, 0x0E, 0x3E, 0x97, 0xB8, 0xE2, 0x3E,
+ 0x86, 0x47, 0x17, 0x3E, 0xD1, 0x24, 0x69, 0x3D, 0x99, 0xCB, 0x0A, 0xBD,
+ 0xE7, 0xAC, 0x3C, 0xBD, 0x1D, 0x0A, 0x24, 0x3F, 0xDB, 0x6C, 0xD2, 0x3E,
+ 0x59, 0x78, 0x13, 0x3F, 0xF7, 0x6D, 0x33, 0xBF, 0xFC, 0x7F, 0x56, 0x3D,
+ 0x4E, 0x7D, 0x94, 0x3E, 0x7B, 0x05, 0x58, 0x3F, 0x0D, 0xA7, 0x80, 0xBF,
+ 0x7C, 0x4A, 0x31, 0x3D, 0xFA, 0x1B, 0x37, 0xBE, 0x4F, 0x30, 0x90, 0x3E,
+ 0xC2, 0xAE, 0xBE, 0xBE, 0xC3, 0xEB, 0x6A, 0x3E, 0xD1, 0xE2, 0x1C, 0xC0,
+ 0x8B, 0x15, 0x05, 0x3E, 0x46, 0x27, 0x5F, 0x3F, 0x23, 0xF2, 0x9C, 0xBE,
+ 0x99, 0x4F, 0x70, 0xBE, 0xB3, 0xCD, 0xB0, 0x3E, 0x5F, 0xD7, 0x86, 0x3E,
+ 0xF4, 0x4D, 0x15, 0x3D, 0xFE, 0xBD, 0xAA, 0xBE, 0x77, 0xD6, 0x60, 0x3E,
+ 0x4E, 0x28, 0xB2, 0xBE, 0x9D, 0xFB, 0x82, 0x3E, 0x62, 0x81, 0x05, 0xBD,
+ 0x1F, 0xD9, 0xF5, 0x3D, 0xA6, 0xED, 0xF0, 0xBE, 0x4C, 0x6B, 0x1A, 0xBF,
+ 0x12, 0x6C, 0x83, 0xBE, 0xAE, 0x3A, 0x5E, 0xBD, 0x5F, 0x93, 0x05, 0xBF,
+ 0x4B, 0x3A, 0x36, 0xBF, 0xA0, 0x94, 0xC8, 0xBD, 0x47, 0xB2, 0xA5, 0xBE,
+ 0xEB, 0xA3, 0x37, 0x3E, 0x4A, 0x4B, 0xAD, 0xBB, 0x4B, 0x87, 0x83, 0xBD,
+ 0x54, 0xD3, 0x4C, 0xBE, 0x9D, 0x21, 0xC4, 0xBD, 0xBF, 0x78, 0xD2, 0xBD,
+ 0x2D, 0xC9, 0x35, 0x3D, 0x09, 0x93, 0x01, 0xBE, 0x76, 0xD6, 0x6F, 0x3C,
+ 0x30, 0x1B, 0x1D, 0x3D, 0x81, 0x6F, 0x9B, 0xBE, 0x3A, 0x44, 0xB6, 0x3E,
+ 0x75, 0x14, 0x4F, 0x3D, 0x94, 0x4E, 0xED, 0xBC, 0xE2, 0x7D, 0x4C, 0x3C,
+ 0xEE, 0x6F, 0x2F, 0xBF, 0x1F, 0xDB, 0x87, 0x3E, 0x90, 0xC7, 0x9F, 0xBD,
+ 0x3A, 0x0E, 0x3C, 0xBC, 0x51, 0x58, 0x59, 0xBE, 0x5E, 0x44, 0x5D, 0x3E,
+ 0x69, 0xE5, 0x86, 0xBB, 0x9F, 0xAB, 0xA6, 0xBD, 0x87, 0x50, 0x0E, 0xBE,
+ 0xFF, 0xFC, 0x10, 0x3F, 0x9B, 0x68, 0x5B, 0xBD, 0x0B, 0xC0, 0xBD, 0x3E,
+ 0x9B, 0xB1, 0xA5, 0xBD, 0x40, 0x62, 0x74, 0xBD, 0x2F, 0x5C, 0xBB, 0xBD,
+ 0xFA, 0x80, 0x9E, 0x3D, 0x18, 0x94, 0x43, 0xBF, 0x85, 0x1A, 0xE8, 0x3D,
+ 0x1C, 0x34, 0x23, 0x3D, 0xDE, 0xA1, 0xF2, 0xBD, 0x2E, 0xF6, 0x2B, 0xBE,
+ 0xDD, 0x6B, 0xAF, 0xBE, 0x80, 0x84, 0x61, 0xBE, 0x22, 0x20, 0xDB, 0x39,
+ 0x35, 0xDE, 0x94, 0x3D, 0x14, 0x0C, 0xFB, 0x3D, 0x29, 0xD1, 0x2F, 0x3D,
+ 0x14, 0xA6, 0x53, 0x3F, 0x1A, 0xC0, 0x82, 0x3F, 0x11, 0xB2, 0xBA, 0xBE,
+ 0x53, 0x60, 0x83, 0x3D, 0xB7, 0x5F, 0x33, 0x3C, 0xA0, 0x67, 0x93, 0xBE,
+ 0x9C, 0x95, 0x8F, 0xBD, 0xD5, 0xD3, 0x7F, 0xBE, 0x0F, 0xBD, 0x26, 0x3C,
+ 0xA4, 0xDF, 0x53, 0xBE, 0xF4, 0x7D, 0xC5, 0x3D, 0xAE, 0xF6, 0xA9, 0x3F,
+ 0xF6, 0x6A, 0x8A, 0x3D, 0xE7, 0xB7, 0x83, 0xBB, 0x0D, 0xBA, 0x41, 0x3E,
+ 0x09, 0x2D, 0xFC, 0x3E, 0x9A, 0xFF, 0xC9, 0xBF, 0x3B, 0x71, 0xF2, 0xBE,
+ 0xD9, 0x67, 0xC8, 0x3D, 0x0D, 0xD4, 0x26, 0xBC, 0x30, 0xB2, 0x80, 0x3D,
+ 0xDF, 0xB6, 0x76, 0xBE, 0x09, 0x68, 0x3C, 0x3C, 0x1D, 0x8A, 0x6A, 0x3D,
+ 0x6A, 0x3F, 0x37, 0x3D, 0x09, 0x24, 0x22, 0xBE, 0xD1, 0x6B, 0xBA, 0xBD,
+ 0xC1, 0x38, 0x40, 0x3D, 0x8B, 0x8D, 0x40, 0x3D, 0xE8, 0xBF, 0xC6, 0x3D,
+ 0xCC, 0x4A, 0x7C, 0xBC, 0x1F, 0x96, 0x7D, 0x3D, 0x89, 0x15, 0x00, 0x3F,
+ 0x5C, 0xB5, 0xA9, 0xBD, 0x83, 0x4D, 0x05, 0x3C, 0x6F, 0xE0, 0x5B, 0xBD,
+ 0x8F, 0x19, 0x07, 0xBD, 0x96, 0x54, 0xAD, 0xBD, 0xD2, 0xF5, 0x8B, 0x3D,
+ 0xDD, 0xB6, 0x1F, 0x3D, 0x39, 0x3A, 0x03, 0xBC, 0x8F, 0xAC, 0xBF, 0x3D,
+ 0xD7, 0x70, 0xC8, 0xBD, 0xEA, 0x6B, 0x6C, 0xB9, 0xA2, 0x9D, 0x3E, 0xBA,
+ 0xA3, 0x23, 0x20, 0xBD, 0x3F, 0xE3, 0xD8, 0x3D, 0xF4, 0xA6, 0x41, 0x3D,
+ 0x1E, 0x47, 0x0F, 0xBD, 0x1A, 0x7D, 0xB5, 0x3D, 0x0B, 0x93, 0xF6, 0x3C,
+ 0xAF, 0xA1, 0x65, 0xBE, 0x1E, 0x0A, 0x58, 0x3E, 0x98, 0x79, 0x57, 0x3F,
+ 0xCB, 0x80, 0x1B, 0x3F, 0xB7, 0x31, 0x92, 0xBE, 0x16, 0x45, 0xBE, 0x3E,
+ 0xF7, 0xBC, 0xA2, 0x3E, 0xA1, 0xBF, 0x13, 0xBF, 0x56, 0xFD, 0x1C, 0x3E,
+ 0x1A, 0x85, 0x53, 0xBD, 0x78, 0x20, 0xCC, 0xBE, 0xD0, 0x1C, 0xBE, 0xBD,
+ 0x66, 0x35, 0x2F, 0xBD, 0x7C, 0xD2, 0x29, 0xBF, 0xB9, 0x8F, 0xA4, 0xBE,
+ 0x73, 0xFE, 0x5F, 0xBE, 0x4D, 0x90, 0x8D, 0x3E, 0x67, 0x45, 0xB7, 0xBD,
+ 0xD1, 0xD9, 0x27, 0xBF, 0xB0, 0x49, 0x07, 0x3C, 0x68, 0x13, 0x13, 0xBE,
+ 0x13, 0xC4, 0x33, 0xBE, 0x4E, 0x07, 0xDA, 0xBD, 0x8B, 0xF0, 0x7D, 0x3E,
+ 0xE8, 0xD9, 0xDA, 0xBB, 0xD2, 0x82, 0x85, 0x3E, 0x8E, 0xEF, 0x08, 0xBF,
+ 0x27, 0x07, 0x15, 0xBE, 0xF9, 0x4E, 0xD5, 0xBE, 0xA8, 0xE8, 0xE1, 0x3E,
+ 0x44, 0xDD, 0x02, 0xBE, 0xF8, 0xF2, 0x56, 0xBE, 0xBF, 0xD1, 0x6A, 0x3E,
+ 0x07, 0x67, 0x0D, 0xBE, 0x41, 0xEC, 0x4F, 0x3F, 0x13, 0x06, 0x33, 0x3F,
+ 0x00, 0x7F, 0xFB, 0xBD, 0x14, 0xF8, 0xC5, 0x3E, 0x4F, 0xBF, 0x0A, 0xBE,
+ 0xCF, 0x1C, 0xB6, 0x3E, 0x1B, 0xF3, 0x44, 0x3C, 0x32, 0x17, 0x9D, 0x3B,
+ 0x1F, 0xCA, 0xC7, 0xBF, 0x16, 0x6A, 0xC9, 0xBD, 0x83, 0xA9, 0x2D, 0xBE,
+ 0xD0, 0x9C, 0x49, 0xBF, 0xFD, 0x7E, 0x25, 0xBF, 0x12, 0x42, 0xD9, 0x3B,
+ 0x73, 0xFE, 0xA5, 0xBE, 0x97, 0xDE, 0xF8, 0x3B, 0x93, 0x26, 0x7F, 0xBF,
+ 0x41, 0x77, 0x9F, 0xBF, 0x60, 0xFF, 0xE9, 0x3D, 0xF8, 0xC2, 0x05, 0xBE,
+ 0xDB, 0x77, 0x81, 0x3F, 0x18, 0x8D, 0xE2, 0x3E, 0x9E, 0xCA, 0xE6, 0x3D,
+ 0x04, 0xE7, 0xF3, 0xBD, 0x13, 0x67, 0x10, 0x3D, 0xB6, 0xEB, 0x45, 0x3E,
+ 0xBA, 0x3B, 0x10, 0xBE, 0x96, 0x3C, 0xC7, 0x3F, 0x83, 0xDA, 0x3E, 0xBE,
+ 0x1F, 0x86, 0x02, 0xBD, 0x02, 0xA8, 0xEE, 0xBD, 0xDB, 0xD0, 0x6A, 0x3C,
+ 0x2C, 0xCE, 0x02, 0xBF, 0xA3, 0xC5, 0x2F, 0x3E, 0x1E, 0x5E, 0x2A, 0xBC,
+ 0x55, 0x32, 0x32, 0x3E, 0x54, 0x5B, 0x09, 0xBE, 0x3B, 0xAA, 0xB0, 0x3D,
+ 0x56, 0x6E, 0x56, 0x3E, 0x86, 0x54, 0x9A, 0x3D, 0xEC, 0x64, 0xA5, 0x3D,
+ 0x71, 0xE9, 0x92, 0x3D, 0xE8, 0x7E, 0xAD, 0xBE, 0x29, 0x2E, 0xDA, 0x3D,
+ 0xC7, 0x51, 0x6B, 0xBF, 0xA1, 0x91, 0x99, 0x3E, 0x95, 0x17, 0xB1, 0xBE,
+ 0xE5, 0x7D, 0xD6, 0x3C, 0x75, 0x26, 0x85, 0xBE, 0x2C, 0xA1, 0x42, 0x3D,
+ 0x60, 0xFC, 0x78, 0x3E, 0x2A, 0x11, 0x94, 0x3D, 0x16, 0x81, 0x25, 0xBD,
+ 0xB5, 0x23, 0x3C, 0xBE, 0x0A, 0xAB, 0x23, 0xBF, 0x5D, 0xB6, 0xE0, 0x3C,
+ 0xE9, 0x0E, 0x4C, 0xBB, 0x47, 0xDC, 0x75, 0xBE, 0x06, 0xEF, 0xBE, 0x3D,
+ 0xEF, 0xE2, 0x8B, 0xBF, 0xEB, 0xEE, 0x27, 0x3F, 0x26, 0x58, 0xD9, 0x3C,
+ 0x00, 0x12, 0x11, 0xBD, 0x6E, 0xC1, 0x05, 0x3E, 0x07, 0x37, 0x6D, 0x3E,
+ 0xFB, 0x6B, 0x0B, 0xBE, 0x1C, 0xB9, 0x54, 0xBD, 0x22, 0x0D, 0x37, 0xBC,
+ 0x86, 0x33, 0x0D, 0xBE, 0xDD, 0xB1, 0x3B, 0xBE, 0xC6, 0x00, 0xA4, 0xBD,
+ 0xBA, 0x3C, 0x34, 0x3E, 0x42, 0xA6, 0xA5, 0x3E, 0xB5, 0xC2, 0x73, 0x3C,
+ 0x15, 0x23, 0x02, 0xBE, 0x62, 0x11, 0x19, 0x3E, 0xDA, 0x79, 0x49, 0xBE,
+ 0xA1, 0xAB, 0xD3, 0x3A, 0x28, 0x06, 0xF6, 0xBD, 0x05, 0x57, 0x2E, 0x3C,
+ 0xD1, 0x7F, 0x44, 0xBE, 0xF5, 0x30, 0xAF, 0x3C, 0xCC, 0xCD, 0x58, 0x3D,
+ 0x4F, 0x89, 0x97, 0x3C, 0xB5, 0x36, 0xC2, 0xBE, 0x2A, 0x30, 0xEC, 0x3D,
+ 0x82, 0xB6, 0x05, 0xBE, 0x72, 0x40, 0x01, 0xBE, 0x31, 0xC6, 0xC2, 0xBC,
+ 0xCC, 0xB3, 0x75, 0xBD, 0x36, 0xE9, 0x5E, 0x3D, 0x6D, 0x7A, 0x85, 0xBE,
+ 0xD2, 0x8F, 0xE5, 0x3E, 0x8E, 0xF2, 0x7B, 0x3C, 0xE5, 0xD7, 0xBB, 0x3D,
+ 0x2E, 0xDF, 0x16, 0x3E, 0x91, 0xAC, 0x92, 0x3D, 0x93, 0xB5, 0x04, 0x3F,
+ 0x7C, 0x03, 0x6A, 0x3D, 0x3F, 0xC8, 0x16, 0x3E, 0x7E, 0xA4, 0x97, 0xBD,
+ 0x76, 0x7C, 0xF0, 0x3D, 0x3E, 0x59, 0xC2, 0xBE, 0xAF, 0x68, 0x9A, 0x3E,
+ 0x34, 0x89, 0x38, 0xBE, 0x10, 0xD5, 0x11, 0xBD, 0xBB, 0x53, 0xA1, 0x3E,
+ 0xA0, 0xB0, 0x4C, 0x3F, 0x8C, 0x28, 0x55, 0xBE, 0x42, 0xB2, 0x04, 0xBD,
+ 0x14, 0x0E, 0x2A, 0x3F, 0x55, 0x0E, 0xA3, 0xBB, 0xAE, 0xE6, 0x95, 0x3E,
+ 0x1D, 0x4A, 0xD2, 0xBE, 0x37, 0x30, 0x49, 0x3E, 0xA3, 0x25, 0x65, 0x3D,
+ 0xC3, 0x19, 0xA6, 0x3E, 0x0A, 0x32, 0x13, 0xBE, 0x7D, 0x34, 0x31, 0x3E,
+ 0x5F, 0xE4, 0xBA, 0x3D, 0xB8, 0x7E, 0x2F, 0x3F, 0x4F, 0xF9, 0x0F, 0x3F,
+ 0xF5, 0x1B, 0xA0, 0x3E, 0xCA, 0x23, 0xCB, 0xBE, 0xFA, 0x27, 0x27, 0x3E,
+ 0xF8, 0x27, 0xC6, 0xBD, 0x48, 0xAF, 0x7E, 0xBD, 0x79, 0x87, 0xD7, 0x3C,
+ 0x72, 0x15, 0xEB, 0x3C, 0xA0, 0x29, 0x06, 0xBC, 0xDF, 0x3B, 0xE6, 0xBC,
+ 0x86, 0x11, 0x8F, 0x3D, 0x08, 0x6E, 0x48, 0xBB, 0x29, 0x27, 0x12, 0x3D,
+ 0x35, 0xCD, 0x8E, 0x3C, 0xC3, 0xB9, 0xD9, 0xBB, 0x85, 0xEC, 0x0C, 0xBD,
+ 0xED, 0x0F, 0x05, 0x3D, 0xA6, 0x54, 0x67, 0xBC, 0xFE, 0x16, 0x14, 0x3D,
+ 0x94, 0xB1, 0xF7, 0x3D, 0x42, 0xCF, 0x04, 0xBA, 0xA5, 0x5C, 0x0C, 0xBB,
+ 0xA8, 0xB3, 0x4F, 0xBB, 0xB9, 0x38, 0x8E, 0xBD, 0x49, 0x75, 0xCF, 0xBD,
+ 0xF2, 0x9A, 0xE2, 0x3C, 0xB2, 0x1D, 0xBD, 0xBC, 0xF1, 0x7C, 0x7C, 0xBD,
+ 0x98, 0xB4, 0xDB, 0x3D, 0x7B, 0xA9, 0x5E, 0xBD, 0x8B, 0x57, 0xBD, 0x3B,
+ 0x77, 0x82, 0x5F, 0xBB, 0x84, 0xA8, 0xC6, 0x3D, 0x94, 0x64, 0x1F, 0xBD,
+ 0xDC, 0x8C, 0x69, 0xBE, 0x5B, 0x07, 0xAC, 0xBA, 0x9B, 0x59, 0xAC, 0x3C,
+ 0xF0, 0x97, 0x0E, 0xBE, 0xFA, 0xAA, 0x81, 0xBE, 0xDF, 0x76, 0x5B, 0x3F,
+ 0x2C, 0x61, 0x7C, 0x3E, 0x42, 0x14, 0x32, 0x3D, 0xC3, 0x9F, 0xA4, 0xBE,
+ 0xA1, 0xEE, 0x3E, 0x3E, 0x1F, 0x8F, 0xAD, 0x3E, 0x04, 0x43, 0x05, 0xBE,
+ 0xC2, 0x11, 0xF9, 0xBE, 0x57, 0xC6, 0x54, 0xBF, 0x5B, 0x07, 0x15, 0x3D,
+ 0x9F, 0xAE, 0xF5, 0x3E, 0x49, 0x1E, 0xB8, 0xBE, 0x58, 0x94, 0x54, 0x3F,
+ 0x5D, 0x61, 0x0F, 0xBD, 0xC0, 0x89, 0x5D, 0x3E, 0xFA, 0x69, 0xB6, 0x3C,
+ 0x90, 0x71, 0x9C, 0x3E, 0xC8, 0x8E, 0x0B, 0xBF, 0xE6, 0x04, 0x33, 0xBE,
+ 0x27, 0xE3, 0x8D, 0x3D, 0x09, 0x0A, 0x9A, 0x3F, 0x03, 0x39, 0xC3, 0x3D,
+ 0xB5, 0xE2, 0x35, 0x3F, 0x69, 0x8C, 0x36, 0xBE, 0x12, 0xAB, 0xE4, 0x3C,
+ 0x2F, 0x9C, 0xCE, 0xBE, 0x48, 0x04, 0x32, 0xBD, 0x2F, 0x6B, 0xEB, 0xBE,
+ 0xFE, 0xCA, 0x93, 0xBF, 0x8F, 0xDA, 0x13, 0xBE, 0x69, 0x48, 0xDE, 0x3C,
+ 0xAC, 0x45, 0xCE, 0x3C, 0x8A, 0x54, 0xF6, 0x3C, 0x17, 0xF7, 0x09, 0xBC,
+ 0x4C, 0x3D, 0xA9, 0xBB, 0xDA, 0xD4, 0x84, 0xBC, 0x02, 0xB4, 0xB0, 0xBC,
+ 0xB0, 0xBE, 0x03, 0x3D, 0x2C, 0xBE, 0x0E, 0x3D, 0xA5, 0x14, 0xA2, 0xBB,
+ 0xA9, 0x0E, 0x05, 0xBD, 0x56, 0x00, 0x28, 0xBC, 0x02, 0x97, 0x76, 0x3C,
+ 0x41, 0x5E, 0x7A, 0xBC, 0x9D, 0xC6, 0x25, 0x3D, 0x46, 0x17, 0x2F, 0x3D,
+ 0xFB, 0xE7, 0x7B, 0x3D, 0x33, 0xC3, 0xF8, 0x3B, 0x85, 0xE5, 0xBE, 0xBD,
+ 0xBB, 0x60, 0x68, 0x3D, 0x40, 0x42, 0xEF, 0xBC, 0x59, 0xDA, 0xF2, 0x39,
+ 0xEB, 0x37, 0xE8, 0x3D, 0xE9, 0x8C, 0x18, 0xBD, 0x74, 0x77, 0xED, 0x3C,
+ 0x5B, 0x1C, 0x21, 0xBC, 0x93, 0x9B, 0x50, 0xBC, 0x66, 0x9A, 0x33, 0x3D,
+ 0x62, 0x71, 0x35, 0x3C, 0x6F, 0x47, 0x7B, 0xBD, 0xDF, 0x54, 0xD5, 0xBC,
+ 0xCE, 0x89, 0x41, 0x3D, 0xDD, 0x79, 0x37, 0xBF, 0x42, 0xE4, 0x38, 0x3E,
+ 0xE7, 0x46, 0x26, 0xBD, 0x90, 0x22, 0x37, 0xBF, 0xE7, 0xBA, 0x4A, 0x3C,
+ 0x04, 0x64, 0xD4, 0x3D, 0x8D, 0x1F, 0x6D, 0xBE, 0x49, 0xAE, 0x83, 0xBE,
+ 0xEC, 0x45, 0x36, 0x3E, 0x1A, 0xF4, 0x7F, 0x3F, 0x40, 0x27, 0xA8, 0x3E,
+ 0x26, 0x3A, 0x95, 0x3D, 0x48, 0x0A, 0x0A, 0xBE, 0x24, 0x7E, 0xBA, 0xBE,
+ 0x51, 0xCB, 0x93, 0xBF, 0xC0, 0xEE, 0xB6, 0x3D, 0xAC, 0x63, 0xB5, 0xBE,
+ 0x5F, 0xE6, 0xBC, 0x3D, 0x57, 0x58, 0x1D, 0xBF, 0xEA, 0x93, 0xE4, 0x3E,
+ 0xBB, 0xC8, 0x5B, 0x3E, 0x75, 0x35, 0x3E, 0x3C, 0x86, 0x5B, 0x4A, 0xBF,
+ 0x1A, 0x01, 0xDE, 0x3E, 0xE2, 0x9D, 0x96, 0xBC, 0xA3, 0x99, 0x96, 0x3D,
+ 0xB8, 0x08, 0xD1, 0xBD, 0xD8, 0xD4, 0xE9, 0x3E, 0x0D, 0xEF, 0xB3, 0x3D,
+ 0x58, 0xD9, 0x24, 0xBF, 0x8F, 0x67, 0xBC, 0x3F, 0xD4, 0x3E, 0x34, 0x3E,
+ 0x4A, 0x59, 0xB5, 0x3E, 0x4C, 0x0C, 0x61, 0xBE, 0x1E, 0xD3, 0xF9, 0x3D,
+ 0x59, 0xEE, 0x3D, 0xBF, 0x80, 0x2D, 0x8B, 0x3E, 0x3E, 0xAC, 0x84, 0x3D,
+ 0x76, 0x49, 0x00, 0x3E, 0x63, 0xEA, 0x0D, 0xBE, 0x36, 0x5F, 0x91, 0x3C,
+ 0xAC, 0x73, 0x8F, 0x3E, 0xF3, 0xD7, 0xCC, 0x3E, 0xC7, 0x26, 0x1E, 0x3E,
+ 0x6C, 0x33, 0xA6, 0x3E, 0x52, 0xBF, 0xCC, 0x3F, 0x15, 0xE8, 0xAB, 0x3E,
+ 0xA1, 0xD4, 0xD0, 0x3E, 0x2D, 0x7B, 0xBC, 0x3E, 0xDE, 0x51, 0x44, 0x3E,
+ 0xCA, 0xE5, 0x31, 0xBD, 0x22, 0x36, 0x8E, 0x3D, 0x29, 0x4A, 0xC5, 0x3C,
+ 0x07, 0x68, 0xEE, 0x3D, 0x3C, 0x34, 0xD1, 0x3C, 0xD8, 0x4C, 0x01, 0x3E,
+ 0x47, 0x54, 0x95, 0x3E, 0x5E, 0x3B, 0x26, 0xBF, 0xC1, 0xC9, 0x8A, 0xBD,
+ 0x6F, 0xE6, 0xDC, 0xBE, 0x28, 0x0B, 0x61, 0x3E, 0xB8, 0xAD, 0x2D, 0xBF,
+ 0xE3, 0xD6, 0x8C, 0x3E, 0xF5, 0xD3, 0x67, 0x3E, 0x63, 0x9C, 0xFD, 0xBD,
+ 0xF9, 0xB1, 0x90, 0x3E, 0x1C, 0x9D, 0x54, 0xBF, 0x6E, 0xB1, 0xDE, 0x3E,
+ 0xA5, 0xA9, 0xFA, 0x3E, 0x54, 0x84, 0x9D, 0xBE, 0x57, 0x57, 0xB9, 0xBE,
+ 0x43, 0x4C, 0x92, 0xBE, 0x65, 0xB0, 0x97, 0xBE, 0x08, 0x0A, 0x40, 0x3F,
+ 0x93, 0xF4, 0xB7, 0x3D, 0x04, 0x58, 0x5E, 0x3E, 0x3A, 0xCA, 0x64, 0xBD,
+ 0xB2, 0x04, 0xAC, 0x3F, 0x05, 0xB4, 0xFD, 0xBD, 0xBA, 0x28, 0x63, 0x3F,
+ 0xC4, 0x56, 0x4F, 0xBE, 0x8C, 0x2E, 0x74, 0x3E, 0x6B, 0xCE, 0xE7, 0x3D,
+ 0x3E, 0x3B, 0xF1, 0x3E, 0x30, 0x6C, 0x06, 0x3C, 0x83, 0x7C, 0x15, 0x3E,
+ 0x26, 0x36, 0x14, 0xBF, 0x02, 0x68, 0x9F, 0xBE, 0xAC, 0xD5, 0xA3, 0x3D,
+ 0x06, 0xD4, 0x40, 0xBE, 0x37, 0x0B, 0x50, 0xBE, 0xE6, 0xFB, 0xAC, 0xBE,
+ 0xB0, 0xA1, 0x4E, 0x3F, 0xD3, 0xD4, 0x31, 0xBF, 0x38, 0xCF, 0xC9, 0xBD,
+ 0x5F, 0xB2, 0xED, 0x3C, 0x0C, 0xA6, 0x28, 0x3E, 0x43, 0x58, 0x02, 0x3E,
+ 0x19, 0x07, 0x45, 0x3E, 0x18, 0x82, 0x03, 0x3F, 0x56, 0xD7, 0x62, 0xBC,
+ 0x67, 0x7D, 0x86, 0x3D, 0x0E, 0x93, 0x0B, 0x3E, 0xBD, 0xC8, 0x88, 0xBD,
+ 0xBE, 0x4A, 0xF5, 0x3C, 0x90, 0xB6, 0x15, 0xBE, 0xF2, 0x50, 0x63, 0xBE,
+ 0x44, 0x2D, 0x52, 0x3D, 0xDB, 0xCF, 0x7B, 0xBD, 0x6E, 0x35, 0xB3, 0x3F,
+ 0xDC, 0x36, 0x72, 0xBF, 0xEB, 0x6F, 0x4B, 0xBE, 0x0C, 0xA3, 0xD4, 0xBE,
+ 0xF6, 0xF0, 0x9F, 0x3D, 0x23, 0x69, 0x9E, 0x3E, 0x04, 0x6F, 0xB0, 0xBE,
+ 0x89, 0x35, 0x11, 0x3E, 0xA0, 0x8A, 0xB2, 0xBD, 0xAE, 0xC5, 0x83, 0xBE,
+ 0x49, 0x4D, 0x20, 0x3F, 0xF8, 0x9D, 0x3D, 0x3E, 0x35, 0xA3, 0x93, 0xBE,
+ 0x79, 0xEE, 0xC0, 0xBD, 0xB4, 0xC2, 0xBD, 0xBE, 0x61, 0xD5, 0x81, 0xBE,
+ 0xD5, 0xA9, 0xF7, 0xBE, 0x3A, 0x4D, 0xF7, 0x3E, 0x3E, 0x04, 0x68, 0x3B,
+ 0xF1, 0xDD, 0x0D, 0x3F, 0x17, 0x87, 0xDA, 0xBE, 0x06, 0xE6, 0x7A, 0xBF,
+ 0x0D, 0x4C, 0x43, 0xBE, 0xC5, 0x1A, 0x8F, 0xBD, 0x95, 0x38, 0x55, 0x3D,
+ 0xA3, 0xDE, 0x97, 0xBE, 0x71, 0xB2, 0xE9, 0x3E, 0xD2, 0x4F, 0x76, 0x3D,
+ 0x7B, 0x57, 0x41, 0xBF, 0xA8, 0xDF, 0x12, 0x3E, 0x4D, 0x9C, 0x5A, 0x3D,
+ 0x15, 0xE3, 0x9C, 0x3E, 0x30, 0x8C, 0xB2, 0xBE, 0xFB, 0xE1, 0x69, 0x3E,
+ 0xC4, 0x86, 0xFF, 0xBE, 0xF5, 0x1C, 0xAF, 0x3E, 0x73, 0x98, 0xA4, 0x3D,
+ 0x2A, 0x4A, 0xBC, 0x3E, 0xC0, 0x44, 0x94, 0x3F, 0x60, 0x6F, 0x3D, 0xBE,
+ 0x08, 0xDF, 0x8C, 0x3E, 0xE5, 0xDD, 0xAC, 0x3E, 0x7E, 0xBB, 0x0D, 0xBF,
+ 0x3F, 0x08, 0xA8, 0xBC, 0x95, 0xCE, 0xDC, 0xBD, 0xDD, 0x2C, 0x91, 0xBE,
+ 0x5F, 0xA8, 0x8D, 0x3F, 0x41, 0xCA, 0x10, 0xBE, 0x2F, 0x69, 0x6B, 0x3E,
+ 0x2C, 0xA9, 0x61, 0xBD, 0xE2, 0xEB, 0xCA, 0x3E, 0x15, 0xBD, 0xAF, 0xBE,
+ 0xC6, 0x92, 0x24, 0x3E, 0xB3, 0xEE, 0x9A, 0x3F, 0x8F, 0x41, 0xE1, 0x3D,
+ 0x16, 0x7D, 0x12, 0xBD, 0x6F, 0xD3, 0xBB, 0x3D, 0xB1, 0x48, 0x2D, 0xBD,
+ 0x6D, 0xD8, 0x59, 0xBE, 0x8C, 0x14, 0x2D, 0xBE, 0xAA, 0x18, 0x11, 0xBE,
+ 0xE9, 0x66, 0x3F, 0xBD, 0xAC, 0xC1, 0xD1, 0xBC, 0x00, 0x65, 0xB2, 0x3D,
+ 0x18, 0xEB, 0x44, 0x3D, 0x01, 0x30, 0x88, 0x3E, 0xFA, 0x35, 0x4A, 0x3D,
+ 0x99, 0xDA, 0xD5, 0xBE, 0x5C, 0x6E, 0xD8, 0xBB, 0xA5, 0x6B, 0xF1, 0xBE,
+ 0x2C, 0xA6, 0x2B, 0xBE, 0x18, 0xE6, 0x91, 0xBD, 0x13, 0xAF, 0xA3, 0xBC,
+ 0x77, 0x90, 0x0B, 0x3E, 0x09, 0x05, 0x65, 0xBD, 0x25, 0x47, 0x10, 0xBE,
+ 0xCE, 0x8F, 0x66, 0xBE, 0x3B, 0xA9, 0x00, 0x3D, 0xB5, 0x42, 0xD0, 0x3E,
+ 0x21, 0xFC, 0xCB, 0x3C, 0x64, 0x87, 0x26, 0xBE, 0xD6, 0x48, 0x0D, 0xBB,
+ 0x7D, 0xD2, 0x14, 0x3D, 0x64, 0xD0, 0x79, 0xBD, 0x19, 0xEF, 0xFA, 0x3E,
+ 0xDE, 0x23, 0x16, 0xC0, 0xA9, 0xC8, 0xCB, 0xBE, 0xB4, 0x5C, 0x13, 0x3D,
+ 0x9E, 0xD9, 0x1B, 0xBE, 0x67, 0xC5, 0x2A, 0xBD, 0xAB, 0x1D, 0xE1, 0x3E,
+ 0x34, 0x62, 0x77, 0xBD, 0x50, 0x85, 0x63, 0x3F, 0xEE, 0xB4, 0xF7, 0x3E,
+ 0xD5, 0xDC, 0xA3, 0x3C, 0xAF, 0xBA, 0x88, 0x3E, 0x64, 0x3E, 0x77, 0x3C,
+ 0x55, 0x3A, 0x25, 0xBF, 0x37, 0x45, 0x49, 0x3E, 0x6F, 0x4B, 0x63, 0x3F,
+ 0x25, 0x4E, 0x67, 0xBD, 0x6C, 0xAC, 0xF6, 0xBD, 0xA7, 0xE7, 0x16, 0x3F,
+ 0x25, 0x0D, 0x5E, 0xBE, 0x58, 0x0E, 0x9D, 0x3D, 0x4A, 0x46, 0xA5, 0x3E,
+ 0x2F, 0x76, 0x07, 0x3E, 0x15, 0x69, 0xC1, 0x3E, 0xEB, 0xCB, 0xD8, 0x3E,
+ 0x62, 0x34, 0x1C, 0x3D, 0x15, 0x6B, 0x6D, 0x3F, 0x31, 0xD9, 0xDF, 0xBC,
+ 0xF6, 0x6D, 0xDC, 0xBD, 0x7F, 0xC3, 0xFC, 0xBD, 0xC7, 0x48, 0x1A, 0xBD,
+ 0xFE, 0x92, 0xEC, 0x3E, 0x64, 0xC1, 0xC8, 0x3E, 0x7D, 0x3E, 0x52, 0x3F,
+ 0x2D, 0x64, 0xE2, 0xBE, 0x5F, 0x92, 0xBB, 0xBC, 0xE1, 0xC4, 0x56, 0x3E,
+ 0xD2, 0x87, 0x48, 0x3F, 0x51, 0xF7, 0xA4, 0x3D, 0x16, 0x40, 0x06, 0x3F,
+ 0x72, 0xD3, 0xC0, 0xBD, 0xAE, 0xDF, 0x29, 0x3F, 0x08, 0x84, 0x65, 0xBB,
+ 0x57, 0x2F, 0xE7, 0xBD, 0xB3, 0x3A, 0x14, 0xBF, 0xB3, 0xF8, 0x6C, 0xBE,
+ 0x55, 0xE1, 0x8D, 0xBC, 0xEB, 0xD5, 0x18, 0xBF, 0x09, 0x1B, 0x41, 0xBD,
+ 0x76, 0x8B, 0xAC, 0x3C, 0x90, 0x17, 0xC9, 0x3E, 0xEA, 0x43, 0x89, 0x3D,
+ 0xBE, 0xE5, 0xFA, 0x3D, 0x24, 0xFA, 0x7B, 0xBE, 0x57, 0x6C, 0x59, 0xBE,
+ 0x11, 0xCF, 0x17, 0x3D, 0xEF, 0x44, 0xF2, 0x3B, 0xFA, 0x1A, 0xE6, 0x3C,
+ 0x56, 0x3F, 0x53, 0xBD, 0x08, 0xB3, 0x56, 0xBE, 0x4F, 0x05, 0xA3, 0x3F,
+ 0xFD, 0x03, 0xB4, 0x3D, 0x45, 0xE3, 0x40, 0x3B, 0x4B, 0x69, 0x89, 0xBE,
+ 0x67, 0xF5, 0x74, 0xBE, 0x49, 0xE9, 0x51, 0x3F, 0xE8, 0x7A, 0xCA, 0xBE,
+ 0xDD, 0x7B, 0xE1, 0x3B, 0x7C, 0xDF, 0xC6, 0xBD, 0x6C, 0x4D, 0x0D, 0x3F,
+ 0x23, 0x09, 0x9F, 0x3E, 0xCA, 0x60, 0x0B, 0xBF, 0xA4, 0xA1, 0xB3, 0xBD,
+ 0x56, 0x99, 0x32, 0x3F, 0x45, 0x2A, 0xE0, 0x3D, 0x2B, 0xCC, 0xF2, 0xBE,
+ 0x10, 0x4E, 0x3C, 0x3F, 0x5A, 0x96, 0xDD, 0xBE, 0x85, 0x41, 0xE1, 0x3C,
+ 0xA3, 0x06, 0xE9, 0x3E, 0x4D, 0xE7, 0x03, 0x3C, 0xF5, 0x49, 0x9A, 0x3F,
+ 0x7A, 0x65, 0x4F, 0xBD, 0xFD, 0x71, 0x57, 0x3D, 0xB2, 0x1B, 0xD8, 0x3D,
+ 0x51, 0xEA, 0xB1, 0xBE, 0x00, 0x8A, 0xFE, 0xBC, 0x29, 0x92, 0x19, 0xBE,
+ 0xA2, 0x3C, 0x9F, 0xBD, 0x47, 0xB7, 0xE4, 0x3D, 0xE7, 0x48, 0x62, 0x3F,
+ 0xFB, 0x03, 0x81, 0x3E, 0x88, 0x2A, 0x27, 0xC0, 0x3F, 0xAA, 0x10, 0x3E,
+ 0x37, 0x54, 0x07, 0x3D, 0x97, 0x2A, 0x91, 0xBF, 0x8D, 0x24, 0xB3, 0xBE,
+ 0x95, 0xFC, 0x98, 0x3F, 0x99, 0x32, 0xCB, 0x3E, 0xAF, 0x5B, 0x19, 0xBE,
+ 0xD8, 0x6A, 0x55, 0xBE, 0x38, 0xE8, 0x3A, 0xBE, 0x3F, 0x66, 0x30, 0x3F,
+ 0xB8, 0x12, 0x41, 0xBF, 0xFF, 0x83, 0xDD, 0x3E, 0x9B, 0x4A, 0x12, 0xBF,
+ 0xC3, 0x51, 0xAE, 0x3E, 0xAB, 0x64, 0x4F, 0xBF, 0xBD, 0x4D, 0x4B, 0x3F,
+ 0xE2, 0xB5, 0x83, 0xBD, 0x03, 0xC2, 0xD7, 0x3E, 0x37, 0x80, 0xB9, 0x3F,
+ 0x45, 0x17, 0xD1, 0x3E, 0x7B, 0xA0, 0x07, 0xBF, 0xA3, 0x77, 0xA6, 0xBE,
+ 0x62, 0x5A, 0x3F, 0xBE, 0x8D, 0x0E, 0x8A, 0x3E, 0xCE, 0x4E, 0x59, 0xBE,
+ 0xFB, 0x16, 0x89, 0x3E, 0xB8, 0xE3, 0x64, 0xBE, 0x7A, 0x41, 0xA4, 0x3D,
+ 0x2E, 0x32, 0xC5, 0x3E, 0xE9, 0x60, 0x3E, 0xBF, 0x49, 0xFD, 0xA9, 0x3E,
+ 0xD3, 0x23, 0xA4, 0x3E, 0xF3, 0x77, 0xB4, 0x3E, 0xD8, 0xF3, 0xF1, 0xBD,
+ 0x39, 0xE2, 0x9F, 0xBC, 0x6A, 0x4A, 0xAB, 0x3C, 0xF0, 0x92, 0xE7, 0xBD,
+ 0x0D, 0x90, 0x68, 0x3C, 0xE2, 0x2A, 0x9F, 0x3D, 0xEC, 0x6B, 0xD8, 0x3B,
+ 0xB6, 0x18, 0x92, 0x3D, 0xAF, 0xB2, 0x92, 0xBC, 0x61, 0xF0, 0x6D, 0xBE,
+ 0x4B, 0x2C, 0xFB, 0xBD, 0x05, 0x3F, 0x13, 0x3E, 0xD3, 0xD2, 0x65, 0x3D,
+ 0xBD, 0x70, 0xA7, 0xBD, 0xB2, 0x43, 0xF0, 0x3B, 0x4B, 0x6E, 0xB8, 0x3C,
+ 0xC6, 0x16, 0xAA, 0x3D, 0xD8, 0x5E, 0x30, 0x3E, 0xFB, 0x1C, 0xAD, 0x3C,
+ 0x64, 0xC0, 0x47, 0x3E, 0x04, 0x03, 0x3F, 0xBB, 0x61, 0x42, 0xA3, 0x3D,
+ 0x5D, 0xEB, 0x72, 0x3C, 0xF3, 0xBF, 0x58, 0x3C, 0x83, 0x15, 0xFC, 0xBD,
+ 0x4C, 0x51, 0xC3, 0xBD, 0x93, 0xF1, 0x9F, 0xBD, 0x28, 0xC5, 0x0C, 0x3E,
+ 0xA5, 0x86, 0xF3, 0x3D, 0x86, 0xCF, 0x4D, 0x3C, 0xA3, 0xC4, 0x6A, 0x3E,
+ 0xBB, 0x60, 0xE0, 0x3C, 0x2E, 0x12, 0x81, 0x3D, 0xFC, 0x4E, 0x55, 0x3E,
+ 0x11, 0xCB, 0xFE, 0xBC, 0xA9, 0xD2, 0x22, 0x3E, 0x91, 0x1A, 0x49, 0x3D,
+ 0x35, 0x41, 0xA1, 0x3D, 0x3C, 0x45, 0xB9, 0x3A, 0xC3, 0xFF, 0x0A, 0xBC,
+ 0x2B, 0x92, 0x43, 0xBC, 0xD6, 0xD3, 0xB0, 0xBA, 0xEB, 0xB4, 0xCB, 0xBD,
+ 0x03, 0xAC, 0x65, 0x3D, 0xBD, 0x9C, 0xFD, 0x3B, 0x03, 0xE7, 0x94, 0xBD,
+ 0xFB, 0xB2, 0x3E, 0x3D, 0xC7, 0x42, 0x88, 0x3C, 0xE4, 0xA2, 0x19, 0xBD,
+ 0x90, 0x37, 0x49, 0xBD, 0x6E, 0xFB, 0xB9, 0xBB, 0x89, 0x14, 0x1B, 0x3E,
+ 0xD7, 0x39, 0x53, 0x3D, 0xC0, 0xD6, 0xED, 0x3B, 0x75, 0x99, 0x7E, 0x3B,
+ 0xE2, 0x9C, 0x00, 0x3C, 0x98, 0xA0, 0x96, 0xBD, 0xF1, 0xFD, 0xA0, 0xBD,
+ 0x94, 0x5D, 0xD7, 0xBD, 0x49, 0x5C, 0xA8, 0x3D, 0x2B, 0x6D, 0xD3, 0xBD,
+ 0xA1, 0xD9, 0x28, 0x3D, 0xC8, 0xA7, 0xDC, 0xBD, 0xA9, 0x0B, 0x98, 0xBD,
+ 0x40, 0x96, 0xC5, 0x3D, 0x4A, 0x63, 0xE7, 0x3E, 0x6B, 0xB4, 0xCB, 0x3E,
+ 0xF0, 0x19, 0xBF, 0x3E, 0x99, 0x07, 0xDF, 0xBD, 0x20, 0x04, 0x0A, 0x3F,
+ 0xC2, 0x9F, 0xF6, 0xBD, 0xB1, 0x32, 0x94, 0x3F, 0xAE, 0xA8, 0xBD, 0x3D,
+ 0x27, 0x3A, 0x7F, 0xBE, 0x04, 0xCE, 0x77, 0x3E, 0xE5, 0x2E, 0x8E, 0x3E,
+ 0x6D, 0x79, 0x82, 0x3E, 0xF1, 0x22, 0xB2, 0x3C, 0xE8, 0x21, 0xB2, 0xBF,
+ 0x1C, 0x12, 0x8A, 0x3E, 0x25, 0x9E, 0x73, 0x3F, 0xF6, 0x54, 0x88, 0x3F,
+ 0x2F, 0xCA, 0x52, 0x3E, 0xBB, 0x26, 0x0E, 0x3F, 0x59, 0x90, 0x39, 0x3E,
+ 0xB6, 0x4E, 0xDB, 0xBC, 0xD6, 0xE0, 0x4F, 0x3E, 0xCC, 0x4F, 0xC1, 0xBD,
+ 0x9F, 0xC5, 0x39, 0xBD, 0xE7, 0x4B, 0xBF, 0x3E, 0x3A, 0x87, 0xB3, 0x3E,
+ 0xD9, 0x4E, 0x8B, 0x3E, 0x2E, 0x46, 0xC3, 0xBF, 0x00, 0x3B, 0x20, 0x3E,
+ 0x90, 0xF0, 0x31, 0xBD, 0xA1, 0xC6, 0x51, 0xBF, 0x2D, 0x84, 0xA5, 0x3E,
+ 0x3F, 0xC2, 0x0C, 0xBC, 0xD8, 0x4F, 0x26, 0x3D, 0xCA, 0xB5, 0x13, 0xBC,
+ 0xD0, 0x82, 0x42, 0xBD, 0x1B, 0xEE, 0x5F, 0xBC, 0xFB, 0x95, 0x9C, 0x3D,
+ 0x48, 0x75, 0x62, 0xBC, 0x8E, 0x08, 0x39, 0xBC, 0xA2, 0x24, 0x1D, 0x3D,
+ 0x4B, 0x84, 0x7B, 0xBD, 0xED, 0x04, 0xE7, 0x3B, 0x5E, 0x31, 0xA1, 0xBB,
+ 0x7F, 0x9B, 0x04, 0xBC, 0x08, 0x70, 0xFF, 0xBB, 0x01, 0xE6, 0x01, 0x3D,
+ 0x43, 0x5B, 0xE3, 0xBC, 0x31, 0xD7, 0xA5, 0x3D, 0x78, 0x28, 0x33, 0x3B,
+ 0x95, 0x60, 0x6A, 0xBC, 0x0B, 0x76, 0x25, 0xBD, 0x0B, 0x5C, 0x4E, 0xBC,
+ 0x0B, 0xBE, 0xA1, 0xBC, 0xE0, 0xA5, 0xCD, 0xBD, 0x3A, 0x2E, 0x68, 0x3D,
+ 0xE2, 0x36, 0xF3, 0xBB, 0x13, 0x4D, 0xC6, 0x3C, 0xEB, 0x22, 0x3E, 0xBB,
+ 0x5B, 0x8D, 0xC9, 0x3C, 0xE0, 0x09, 0xF1, 0xBC, 0x7F, 0x86, 0x78, 0x3E,
+ 0xF1, 0x5B, 0x04, 0xBD, 0xC5, 0x02, 0x88, 0xBD, 0x45, 0x9D, 0x6B, 0x3B,
+ 0x3B, 0xE0, 0x48, 0xBC, 0x97, 0x96, 0xD1, 0xBB, 0xE6, 0xC1, 0xAE, 0xBD,
+ 0xCA, 0xCB, 0x1B, 0x3C, 0xAA, 0x54, 0x22, 0x3C, 0xAF, 0x13, 0xB2, 0xBA,
+ 0xD1, 0x54, 0xB3, 0xBC, 0x13, 0xAB, 0xDC, 0x3A, 0x1F, 0x48, 0x9B, 0xBD,
+ 0x26, 0x9B, 0x8B, 0x3D, 0x0B, 0x11, 0x40, 0x3C, 0x4D, 0xC1, 0x60, 0xBD,
+ 0x2C, 0x66, 0x92, 0x3D, 0x51, 0x75, 0x91, 0xBD, 0x72, 0x8F, 0xE7, 0xBC,
+ 0xAE, 0xEF, 0xD6, 0xBC, 0x9F, 0xA7, 0x94, 0xBC, 0xD0, 0x2C, 0xCC, 0xBB,
+ 0x39, 0x89, 0x97, 0x3C, 0x80, 0x5C, 0x9C, 0xBC, 0x7A, 0xB3, 0x56, 0x3C,
+ 0xFC, 0xC4, 0x6A, 0xBC, 0x88, 0xB0, 0x21, 0xBD, 0xD5, 0x9B, 0x8C, 0x3C,
+ 0xF1, 0x3D, 0xC3, 0x3C, 0x4C, 0x25, 0x42, 0x3C, 0xFB, 0x30, 0x3E, 0xBC,
+ 0x38, 0xD0, 0x87, 0xBC, 0x7C, 0xF0, 0x28, 0x3E, 0x46, 0x6E, 0x5D, 0x3D,
+ 0x0C, 0xE8, 0x3E, 0xBB, 0xA3, 0x9C, 0x8E, 0xBD, 0x27, 0xBA, 0x9D, 0x3D,
+ 0x1C, 0xF8, 0xAF, 0x3E, 0x7B, 0x3D, 0xC5, 0xBE, 0xCF, 0x1E, 0xC1, 0xBB,
+ 0xC2, 0xC8, 0x1D, 0x3E, 0xE4, 0x12, 0xED, 0x3C, 0xEA, 0xDF, 0xEE, 0xBD,
+ 0x5D, 0xD1, 0xB4, 0x3D, 0x60, 0x20, 0x08, 0x3E, 0xA8, 0xB8, 0xED, 0x3D,
+ 0x2A, 0x3F, 0x42, 0xBC, 0xF6, 0x70, 0xD1, 0x3C, 0xB6, 0x72, 0x3C, 0xBC,
+ 0xA8, 0xF9, 0xE4, 0xBE, 0x43, 0x26, 0x22, 0x3D, 0x46, 0x67, 0xD7, 0xBE,
+ 0x1F, 0xD7, 0x33, 0xBC, 0x6B, 0x36, 0x78, 0xBE, 0x9F, 0x67, 0x94, 0x3E,
+ 0x89, 0x47, 0xBD, 0x3D, 0x36, 0x1D, 0x15, 0x3D, 0xC1, 0x1A, 0xAF, 0x3E,
+ 0x28, 0x1C, 0x81, 0xBC, 0x8B, 0x41, 0xAC, 0xBE, 0x43, 0xA5, 0x5A, 0x3E,
+ 0xD7, 0xB3, 0x94, 0x3C, 0x34, 0x4C, 0x37, 0x3E, 0x12, 0x19, 0x86, 0x3D,
+ 0x7F, 0xE9, 0x20, 0x3E, 0x5C, 0xCF, 0xB3, 0xBE, 0x3B, 0xAE, 0xA8, 0x3D,
+ 0xC5, 0xE0, 0x36, 0x3D, 0x8A, 0x29, 0x54, 0x3B, 0xD9, 0x13, 0xA2, 0xBC,
+ 0x61, 0xF9, 0x82, 0xBD, 0x11, 0xB8, 0x5B, 0xBC, 0xBF, 0x86, 0x2E, 0x3D,
+ 0x89, 0xD0, 0xE2, 0xBC, 0x1D, 0x7C, 0x14, 0xBC, 0x1E, 0xD1, 0xB1, 0x3D,
+ 0x33, 0x1C, 0x59, 0xBD, 0x56, 0xA6, 0x2F, 0xBA, 0x9D, 0x50, 0xEB, 0x3B,
+ 0x22, 0x88, 0x08, 0xBD, 0x8B, 0xE6, 0x79, 0x3D, 0xAB, 0x8B, 0xE2, 0xBB,
+ 0x29, 0x2C, 0xDB, 0xBC, 0xA2, 0xBD, 0xA4, 0x3B, 0x76, 0x1A, 0x0D, 0xB8,
+ 0xBD, 0xD2, 0xC2, 0x3A, 0x5B, 0xF2, 0x22, 0xBD, 0x25, 0x27, 0xE5, 0xBC,
+ 0x5F, 0x37, 0x35, 0xBC, 0x26, 0xE6, 0x9B, 0xBD, 0xA2, 0x16, 0x16, 0x3D,
+ 0x37, 0xB9, 0x3E, 0xBC, 0x63, 0x14, 0x2F, 0x3C, 0x51, 0x11, 0x4C, 0x3C,
+ 0x51, 0x5A, 0xE2, 0xBB, 0xA4, 0x21, 0xF7, 0xBC, 0x5F, 0x36, 0x7B, 0x3E,
+ 0xD2, 0x40, 0x63, 0xBC, 0x1B, 0xC7, 0xEE, 0x3B, 0xD4, 0xAD, 0x26, 0x3E,
+ 0x58, 0x73, 0xA4, 0xBE, 0x15, 0x00, 0xCA, 0xBF, 0x02, 0x33, 0xB9, 0xBE,
+ 0x11, 0x08, 0xBD, 0xBE, 0x41, 0x92, 0x8D, 0x3E, 0x50, 0x8D, 0xCF, 0x3B,
+ 0x9D, 0x69, 0x23, 0x3E, 0xF0, 0x5E, 0xAC, 0x3E, 0x96, 0x48, 0x2D, 0xBE,
+ 0x98, 0xEF, 0x2D, 0x3D, 0x32, 0x61, 0xB3, 0xBE, 0x44, 0x69, 0x14, 0x3F,
+ 0x4A, 0x2D, 0xB8, 0xBF, 0x8C, 0x08, 0x1C, 0x3F, 0x93, 0xE1, 0x0F, 0x3E,
+ 0xCE, 0xC3, 0x2B, 0xBD, 0x6D, 0x71, 0x93, 0xBE, 0xE8, 0x68, 0x92, 0xBE,
+ 0x23, 0x2D, 0x3D, 0x3F, 0x40, 0x60, 0x32, 0xBE, 0xAB, 0xD8, 0x22, 0xBE,
+ 0x25, 0xB4, 0xDC, 0x3E, 0x19, 0x71, 0xC2, 0xBE, 0xF1, 0x00, 0x7B, 0x3F,
+ 0x41, 0x09, 0x21, 0x3F, 0x08, 0x38, 0x9F, 0x3E, 0xFC, 0x9E, 0x57, 0x3F,
+ 0xC1, 0x71, 0x31, 0xBF, 0x61, 0x3F, 0xFD, 0x3D, 0xDE, 0x81, 0xDC, 0xBD,
+ 0xA4, 0x55, 0x05, 0x3C, 0x28, 0xAD, 0x37, 0xBF, 0x15, 0xA4, 0x9E, 0xBE,
+ 0x8F, 0x6D, 0x0E, 0x3F, 0x3A, 0xDD, 0xB1, 0x3F, 0x4B, 0x40, 0x52, 0x3E,
+ 0xBF, 0xE4, 0x23, 0x3F, 0xC3, 0x11, 0x86, 0x3B, 0x8D, 0x0B, 0x21, 0xBD,
+ 0x58, 0xC2, 0x9C, 0x3E, 0x35, 0x4D, 0xA5, 0xBE, 0xFF, 0xFF, 0x5D, 0xBD,
+ 0xCC, 0x7B, 0x4C, 0xBE, 0x5C, 0x6F, 0xE6, 0x3E, 0x9A, 0xA7, 0x07, 0xC0,
+ 0x33, 0x99, 0x5D, 0x3E, 0x0C, 0x78, 0x2D, 0xBF, 0x11, 0x6D, 0x32, 0xBD,
+ 0xC5, 0x52, 0x2E, 0xBE, 0x28, 0x30, 0x30, 0xBF, 0xFE, 0x14, 0x30, 0xBE,
+ 0x96, 0xA5, 0xDA, 0x3D, 0x20, 0xE6, 0x54, 0xBD, 0x8B, 0x36, 0x9F, 0x3B,
+ 0x1F, 0x06, 0x6B, 0x3C, 0x8C, 0x64, 0x60, 0xBF, 0xAF, 0x59, 0x07, 0xBE,
+ 0xB9, 0x26, 0xBB, 0xBE, 0x03, 0xFC, 0x21, 0xBF, 0x68, 0x86, 0x0B, 0xBF,
+ 0xFD, 0x5E, 0xC8, 0xBE, 0xE8, 0xD7, 0xA4, 0xBF, 0x97, 0x07, 0xA5, 0xBE,
+ 0xEC, 0x53, 0xA1, 0x3D, 0xA7, 0xD0, 0xE1, 0x3D, 0xFB, 0x8F, 0xB4, 0xBD,
+ 0x51, 0x92, 0x3B, 0xBE, 0x70, 0x85, 0x54, 0x3D, 0x1F, 0x5D, 0x83, 0x3D,
+ 0xD5, 0x9D, 0xB9, 0xBD, 0x3D, 0x3B, 0x26, 0xBC, 0x6F, 0x25, 0x80, 0x3E,
+ 0x7C, 0xA3, 0x25, 0x3E, 0x0A, 0x4F, 0x80, 0x3D, 0xFB, 0x55, 0x50, 0x3D,
+ 0x06, 0xB6, 0x21, 0xBD, 0x27, 0x1B, 0x82, 0x3D, 0x88, 0xD2, 0x8C, 0x3E,
+ 0x16, 0xF9, 0x30, 0xBC, 0xE8, 0xCA, 0x50, 0xBC, 0xAB, 0x6B, 0xA8, 0x3D,
+ 0xAC, 0x46, 0x81, 0xBD, 0xB6, 0x7E, 0xA1, 0xBD, 0x13, 0xE3, 0x8E, 0xBD,
+ 0xA3, 0xF7, 0x6B, 0xBC, 0xCB, 0x91, 0xBF, 0xBE, 0x1A, 0x85, 0x8D, 0x3E,
+ 0xDF, 0x11, 0xEC, 0xBD, 0xC9, 0x05, 0xD2, 0x3D, 0xBE, 0xC8, 0xA1, 0xBD,
+ 0x72, 0x37, 0xEB, 0xBD, 0xA0, 0xC3, 0x78, 0xBC, 0x72, 0x9A, 0x1E, 0x3F,
+ 0x2B, 0xC1, 0xBE, 0xBD, 0x2B, 0x2C, 0x56, 0x3D, 0x23, 0x51, 0x6B, 0xBC,
+ 0x64, 0xF0, 0xEB, 0x3C, 0xAA, 0x01, 0xB8, 0xBD, 0x41, 0x64, 0x9F, 0x3B,
+ 0x53, 0x86, 0x59, 0xBC, 0xE0, 0x1D, 0x0B, 0x3B, 0xEA, 0x62, 0xCF, 0x3B,
+ 0x40, 0x2D, 0xDC, 0x3C, 0x06, 0x62, 0x05, 0xBD, 0x55, 0x73, 0x23, 0x3D,
+ 0x3A, 0x04, 0x00, 0xBD, 0x48, 0x23, 0x73, 0x3B, 0xAB, 0x5C, 0x05, 0x3D,
+ 0x6C, 0x62, 0x30, 0xBD, 0x72, 0xC4, 0x4D, 0x3D, 0x74, 0x12, 0x96, 0x3B,
+ 0x0B, 0xA3, 0xA3, 0x3C, 0x10, 0x5D, 0x6E, 0x3C, 0x95, 0xA5, 0xA6, 0xBC,
+ 0xFA, 0x71, 0x44, 0xBB, 0xEB, 0x5E, 0x2E, 0x3C, 0x4B, 0xDC, 0xC3, 0x3A,
+ 0x9C, 0xBD, 0x9A, 0x3C, 0xE6, 0x97, 0x5E, 0x3B, 0xE7, 0x0C, 0x85, 0x3C,
+ 0x01, 0x9B, 0xB5, 0x3B, 0x8B, 0xBB, 0x85, 0xBC, 0x2F, 0xC0, 0x20, 0x3D,
+ 0xF5, 0xA8, 0xAD, 0xBC, 0x16, 0x56, 0x2F, 0xBE, 0x4E, 0xBB, 0xB6, 0x3C,
+ 0xD9, 0xAA, 0xA4, 0x3C, 0xF9, 0xD9, 0x7D, 0xBE, 0x17, 0xAE, 0xBE, 0x3C,
+ 0x91, 0x57, 0xF6, 0x3E, 0xC5, 0xD3, 0xDF, 0xBD, 0x65, 0x04, 0x14, 0xBB,
+ 0xFE, 0x10, 0x8F, 0x3C, 0xF2, 0x1C, 0x21, 0x3E, 0x0D, 0x8A, 0x53, 0x3D,
+ 0x7B, 0x21, 0x1F, 0xBD, 0x9D, 0x7A, 0xD0, 0xBD, 0xF3, 0xBB, 0x63, 0x3C,
+ 0x50, 0x27, 0x9C, 0xBD, 0xE8, 0xE1, 0x49, 0x3D, 0x2D, 0xD7, 0x0D, 0x3E,
+ 0xD0, 0x42, 0xB0, 0x3E, 0x94, 0x5D, 0x9F, 0x3E, 0xDF, 0x4A, 0x24, 0xBE,
+ 0xDB, 0x09, 0x9C, 0xBD, 0xE4, 0xA9, 0x6A, 0xBE, 0x22, 0x67, 0xF5, 0x3E,
+ 0x0B, 0xFF, 0x6B, 0x3B, 0xDE, 0x75, 0xEE, 0xBC, 0x35, 0x26, 0x99, 0xBE,
+ 0x54, 0x28, 0xBC, 0x3D, 0xA3, 0xE4, 0xAA, 0x3D, 0xD2, 0xC0, 0xBE, 0x3D,
+ 0x3E, 0x6D, 0xE2, 0x3D, 0x50, 0xC3, 0x04, 0x3F, 0x00, 0x58, 0xAB, 0x3C,
+ 0xD9, 0x71, 0xB6, 0xBF, 0x73, 0xCF, 0x1D, 0xBE, 0xB1, 0x5C, 0xA2, 0x3C,
+ 0x72, 0x5E, 0x90, 0xBE, 0xCA, 0x5C, 0x6D, 0xBE, 0x64, 0x2D, 0xA3, 0xBF,
+ 0x73, 0xE0, 0xB8, 0xBD, 0x7F, 0xF3, 0xB2, 0xBE, 0x1B, 0x3E, 0xD8, 0x3E,
+ 0xC8, 0xD9, 0xB2, 0x3E, 0x24, 0xE1, 0x2D, 0xBE, 0x18, 0x99, 0xB2, 0x3D,
+ 0xAC, 0x98, 0xC6, 0x3E, 0xF2, 0x57, 0xB3, 0xBE, 0xDD, 0x6D, 0xBE, 0x3C,
+ 0x8F, 0x60, 0x09, 0xBE, 0x96, 0xF7, 0x7A, 0x3F, 0x8E, 0xFB, 0x23, 0x3D,
+ 0xA8, 0x5D, 0x58, 0x3F, 0x74, 0x8C, 0xE5, 0xBE, 0x51, 0x04, 0x00, 0x3D,
+ 0x2B, 0xB2, 0xD2, 0x3E, 0x37, 0xEE, 0xD1, 0xBE, 0x1D, 0x01, 0x55, 0xBE,
+ 0x6F, 0x84, 0x02, 0x3D, 0xB7, 0x86, 0x05, 0x3F, 0xC7, 0x2F, 0xE4, 0x3C,
+ 0x0D, 0x5E, 0x7F, 0x3E, 0x97, 0x00, 0x82, 0x3E, 0xD8, 0x40, 0x95, 0x3E,
+ 0x7B, 0x6A, 0x13, 0xBD, 0x60, 0xEE, 0x67, 0xBC, 0xEB, 0xD5, 0xE6, 0x3D,
+ 0x0F, 0xA1, 0x1B, 0xBE, 0x57, 0x76, 0x79, 0xBE, 0xDF, 0x53, 0x40, 0xBF,
+ 0x5C, 0x14, 0xC6, 0xBD, 0x26, 0x2C, 0x9E, 0xBE, 0xDE, 0x55, 0x30, 0x3F,
+ 0x68, 0xF0, 0x63, 0xBE, 0x6A, 0x7A, 0xCB, 0x3E, 0x1F, 0x22, 0x80, 0xBE,
+ 0xDB, 0xF8, 0x10, 0x3E, 0x59, 0x1D, 0x4A, 0x3E, 0xA2, 0xB1, 0x96, 0xBE,
+ 0xE4, 0x35, 0xB6, 0xBE, 0x14, 0xCB, 0xDF, 0xBD, 0xC0, 0xF3, 0xEB, 0x38,
+ 0x77, 0xF2, 0x00, 0x3E, 0x4E, 0x36, 0x44, 0xBF, 0x35, 0x30, 0x88, 0xBE,
+ 0x9A, 0x77, 0x12, 0xC0, 0x11, 0x14, 0x2E, 0xBD, 0xBC, 0xF3, 0x28, 0xBF,
+ 0xCD, 0x89, 0x6C, 0xBF, 0xC6, 0x00, 0x74, 0x3D, 0xA0, 0x81, 0x91, 0xBD,
+ 0xD1, 0xB8, 0xB6, 0x3E, 0x7A, 0xE9, 0xB0, 0xBC, 0x66, 0xE0, 0xDE, 0x3E,
+ 0x53, 0xB8, 0x94, 0xBE, 0xBD, 0x26, 0x9A, 0x3B, 0xA3, 0xDF, 0xD9, 0xBE,
+ 0xA3, 0x2E, 0x0F, 0xBE, 0x9D, 0x92, 0xC4, 0x3C, 0xEE, 0x34, 0xD1, 0xBE,
+ 0xF1, 0x5A, 0xAB, 0xBC, 0x70, 0x66, 0xC4, 0x3E, 0x1C, 0x50, 0x36, 0xBE,
+ 0x0B, 0xE7, 0x81, 0xBF, 0x56, 0xEF, 0x24, 0xBF, 0x6D, 0x50, 0x30, 0x3E,
+ 0xC1, 0x87, 0x40, 0xBE, 0x8D, 0x81, 0x60, 0xBB, 0x0D, 0x05, 0x17, 0x3E,
+ 0xEE, 0x6E, 0x05, 0x3E, 0x86, 0xC0, 0xA6, 0x3E, 0x88, 0x11, 0x93, 0xBE,
+ 0x78, 0xCF, 0x82, 0x3D, 0x7E, 0x2C, 0xB7, 0xBE, 0x2D, 0x12, 0x4F, 0x3F,
+ 0x8C, 0xBB, 0xB6, 0xBD, 0x09, 0x7A, 0x42, 0x3E, 0xFB, 0x41, 0x9B, 0x3F,
+ 0x0F, 0x49, 0x28, 0xBD, 0xAF, 0x0B, 0x8A, 0x3F, 0x2D, 0x5C, 0xB6, 0x3E,
+ 0xC4, 0x01, 0x1F, 0xBC, 0x85, 0xC4, 0x37, 0x3E, 0xEA, 0x70, 0x94, 0xBE,
+ 0xB7, 0x94, 0xA1, 0xBE, 0x7C, 0xFC, 0x37, 0xBE, 0x7F, 0x05, 0x33, 0xBE,
+ 0x30, 0x13, 0x85, 0x3E, 0x8A, 0xA2, 0xD5, 0x3E, 0x61, 0xE1, 0xB8, 0xBE,
+ 0x0B, 0xBB, 0xCB, 0x3C, 0xBF, 0xFF, 0x7A, 0x3F, 0x54, 0xB9, 0x84, 0x3C,
+ 0x5B, 0xA6, 0x3B, 0xBE, 0x80, 0x20, 0x28, 0x3E, 0x9E, 0x5F, 0x14, 0x3E,
+ 0xF7, 0xB0, 0xA4, 0x3D, 0x19, 0x93, 0xB4, 0xBC, 0xA2, 0xD7, 0xB3, 0x3D,
+ 0x6C, 0x14, 0x4E, 0x3D, 0xF9, 0xF0, 0x2F, 0x3D, 0x20, 0x88, 0x5F, 0x3C,
+ 0xAA, 0x52, 0xC2, 0x3C, 0xF5, 0xAF, 0x48, 0xBD, 0xD8, 0x76, 0x48, 0x3C,
+ 0xAD, 0x7C, 0xA2, 0x3C, 0xCE, 0xAB, 0xB8, 0xBE, 0xFA, 0x35, 0x80, 0xBD,
+ 0xE1, 0x3D, 0xE8, 0x3C, 0xB7, 0x43, 0xAB, 0x3D, 0x8D, 0x89, 0x3C, 0xBD,
+ 0x10, 0xB5, 0xBF, 0xBD, 0x38, 0x78, 0x49, 0xBD, 0xF1, 0x36, 0xA4, 0xBC,
+ 0xAE, 0x35, 0xFE, 0xBD, 0x46, 0xD7, 0x9A, 0xBE, 0x04, 0x14, 0x55, 0x3E,
+ 0xBE, 0xC7, 0x75, 0x3D, 0x7C, 0x8C, 0xF7, 0x3C, 0xCF, 0x5E, 0xE6, 0xBC,
+ 0x96, 0x2C, 0x4A, 0x3D, 0x93, 0x96, 0xDA, 0xBC, 0x35, 0x19, 0x99, 0xBE,
+ 0xD4, 0xB8, 0x13, 0xBE, 0x06, 0x2A, 0x5A, 0xBE, 0xD8, 0x87, 0xA9, 0xBC,
+ 0xF7, 0x9E, 0x23, 0x3C, 0xB5, 0x7C, 0xAD, 0x3E, 0x92, 0x80, 0x9D, 0xBD,
+ 0x26, 0xA5, 0x8E, 0xBD, 0x72, 0xD1, 0xA2, 0x3C, 0xF7, 0xAD, 0x16, 0xBE,
+ 0xFD, 0xAD, 0x85, 0x3D, 0x6D, 0xAA, 0xCA, 0x3D, 0xA0, 0x6A, 0x8D, 0xBC,
+ 0xD8, 0x6B, 0x39, 0x3C, 0x50, 0x6C, 0x90, 0xBD, 0xAA, 0x61, 0xA3, 0xBD,
+ 0xFE, 0x31, 0x1D, 0xBE, 0xE8, 0x9F, 0x8D, 0x3D, 0xC9, 0x1E, 0x46, 0x3D,
+ 0x91, 0x3C, 0xAF, 0xBC, 0x67, 0xC5, 0x1F, 0x3C, 0x43, 0x43, 0x50, 0xBE,
+ 0x13, 0x6C, 0xF6, 0xBD, 0x97, 0x8E, 0x60, 0x3C, 0x24, 0x9F, 0xF5, 0xBD,
+ 0x42, 0xD1, 0xEC, 0x3C, 0xDC, 0x0A, 0x6B, 0xBA, 0xF7, 0x2B, 0x42, 0xBE,
+ 0xB1, 0x4A, 0x94, 0x3D, 0xE1, 0x2B, 0xC1, 0xBD, 0x68, 0x69, 0x83, 0xBD,
+ 0xFE, 0xA7, 0x7D, 0x3D, 0xD9, 0x77, 0x86, 0xBE, 0xC3, 0xDA, 0xE6, 0xBA,
+ 0x7C, 0x68, 0x26, 0x3E, 0x82, 0xC6, 0x77, 0xBE, 0xA0, 0xF5, 0xE8, 0x3C,
+ 0x97, 0xAB, 0x63, 0xBD, 0x39, 0x18, 0x6E, 0x3D, 0xAD, 0xFC, 0x41, 0x3D,
+ 0xD2, 0xC0, 0x0B, 0xBD, 0x7A, 0x76, 0xB4, 0xBD, 0x6E, 0xEB, 0x8D, 0xBC,
+ 0x58, 0xF7, 0x2F, 0xBC, 0x9A, 0x6E, 0x4C, 0xBD, 0xA2, 0x60, 0xEC, 0x3D,
+ 0x03, 0x19, 0x66, 0x3B, 0x5F, 0x5E, 0x37, 0xBB, 0x7A, 0x01, 0x13, 0xBE,
+ 0x75, 0xF8, 0xD5, 0x3C, 0x16, 0x9A, 0xA4, 0x3D, 0xA8, 0x18, 0x6A, 0x3C,
+ 0x2C, 0xD1, 0x51, 0x3C, 0x67, 0xB8, 0xEB, 0xBD, 0x8C, 0xDC, 0x9B, 0xBD,
+ 0x27, 0x94, 0x21, 0x3D, 0x34, 0x21, 0x5E, 0x3C, 0xFB, 0x4A, 0x45, 0xBC,
+ 0x9B, 0x07, 0x3F, 0xBD, 0xF5, 0xF3, 0x6C, 0xBD, 0x0C, 0x77, 0x4C, 0x3B,
+ 0xC1, 0x1B, 0x0E, 0x3C, 0x06, 0x72, 0xA1, 0x3D, 0xCB, 0x2B, 0x87, 0x3D,
+ 0x2D, 0xC0, 0xF4, 0x3E, 0x7C, 0xDF, 0x34, 0x3D, 0xAD, 0x57, 0x8E, 0x3D,
+ 0x88, 0xBF, 0x0A, 0xBE, 0xE6, 0xAA, 0x8E, 0xBD, 0xA0, 0x5C, 0x2B, 0xBD,
+ 0x10, 0x65, 0x97, 0x3D, 0x2C, 0x13, 0x96, 0xBC, 0xC4, 0x33, 0x04, 0xBE,
+ 0xE8, 0xFE, 0xEB, 0xBB, 0x75, 0x4B, 0x22, 0xBC, 0xBF, 0x7C, 0xB1, 0x3C,
+ 0x70, 0xBB, 0x0C, 0x3E, 0xBB, 0x63, 0xAF, 0xBC, 0xEE, 0x6C, 0x34, 0xBD,
+ 0x8B, 0xD3, 0x66, 0x3D, 0x3B, 0x90, 0xAE, 0xBD, 0x0A, 0x6D, 0x80, 0xBD,
+ 0xF1, 0xC8, 0x5A, 0x3D, 0x5C, 0x39, 0xB1, 0xBD, 0x98, 0xAC, 0x3F, 0x3C,
+ 0x3A, 0xB0, 0xA1, 0xBD, 0x49, 0x8B, 0x13, 0x3D, 0xB5, 0x17, 0xA0, 0x3C,
+ 0x58, 0x67, 0xE2, 0xBC, 0xF0, 0x1E, 0x5D, 0x3E, 0x0D, 0x78, 0xA5, 0xBD,
+ 0x61, 0x8B, 0x49, 0x3D, 0xA1, 0xDA, 0x29, 0x3B, 0xBA, 0xFF, 0xBC, 0xBC,
+ 0x5A, 0xDE, 0x59, 0xBC, 0x15, 0x96, 0x77, 0x3B, 0x1E, 0x98, 0xA4, 0xBE,
+ 0x92, 0xF7, 0xF7, 0x3D, 0x8C, 0x73, 0xC0, 0xBC, 0x42, 0xBF, 0xE1, 0x3D,
+ 0xFB, 0xE8, 0x8F, 0x3D, 0xEC, 0x12, 0x6B, 0xBE, 0x0E, 0x7B, 0x01, 0xBE,
+ 0x0B, 0x70, 0x84, 0xBC, 0x77, 0x67, 0xF4, 0x3C, 0x47, 0x56, 0x05, 0xBE,
+ 0x37, 0xE5, 0xFB, 0x3C, 0x92, 0xAF, 0x86, 0xBB, 0x6B, 0x0A, 0x57, 0x3D,
+ 0x4C, 0x8C, 0x2B, 0xBB, 0x69, 0xB9, 0x89, 0x3D, 0xD5, 0xBE, 0xED, 0x3D,
+ 0xE4, 0x17, 0xC5, 0xBE, 0xF1, 0x97, 0x84, 0x3E, 0xB8, 0x88, 0x1F, 0xBD,
+ 0xD6, 0x77, 0xD2, 0x3D, 0xC4, 0x02, 0x3B, 0xBC, 0x20, 0xEC, 0x19, 0xBE,
+ 0xDB, 0xD4, 0xB5, 0xBC, 0x8F, 0x93, 0x98, 0xBA, 0xFF, 0xD2, 0x66, 0xBD,
+ 0xCF, 0x73, 0xFF, 0x3B, 0xF2, 0x2B, 0x95, 0x3C, 0x0A, 0x4E, 0xDD, 0x3C,
+ 0x7A, 0x05, 0x3B, 0x3D, 0x3C, 0x0C, 0x7C, 0xBD, 0x7A, 0x80, 0x81, 0x3E,
+ 0xFF, 0x2C, 0x1A, 0x3E, 0xF2, 0xFE, 0x9D, 0x3D, 0x4E, 0x94, 0x0C, 0x3C,
+ 0x2D, 0xEB, 0x60, 0xBD, 0x70, 0x77, 0x6C, 0xBD, 0xA6, 0xCE, 0x73, 0xBE,
+ 0xB7, 0xCD, 0x17, 0x3F, 0x26, 0x85, 0xDA, 0x3C, 0x96, 0x0B, 0x34, 0x3D,
+ 0x1B, 0x27, 0x4B, 0x3D, 0xFC, 0xA1, 0xCF, 0xBC, 0xD7, 0xBF, 0xC3, 0xBD,
+ 0xE5, 0xC2, 0x2D, 0x3E, 0x29, 0x01, 0xD3, 0x3D, 0x13, 0x8C, 0xC4, 0xBB,
+ 0x34, 0xCD, 0xB5, 0x3D, 0x55, 0x46, 0x52, 0xBE, 0x70, 0xD4, 0xB0, 0x3E,
+ 0x3A, 0x4F, 0x00, 0xBF, 0xDD, 0xDF, 0xDD, 0xBD, 0x51, 0xCB, 0x05, 0xBD,
+ 0x44, 0x98, 0x8F, 0x3D, 0xF9, 0x9A, 0xC0, 0xBD, 0x2C, 0xB6, 0xDA, 0x3E,
+ 0xCB, 0x03, 0xCC, 0x3D, 0xF3, 0x4F, 0x0C, 0x3C, 0x2B, 0xA0, 0x09, 0xBE,
+ 0x95, 0x9C, 0x7D, 0xBB, 0x78, 0x41, 0xB9, 0xBE, 0x87, 0xDD, 0xAA, 0x3C,
+ 0xB6, 0xEB, 0xD9, 0x3C, 0x1B, 0xBF, 0x2C, 0x3E, 0x5D, 0x19, 0xC9, 0x3D,
+ 0x13, 0xA8, 0x28, 0x3C, 0x7E, 0x86, 0xA6, 0x3E, 0x4F, 0x88, 0x1C, 0xBD,
+ 0xB7, 0x35, 0x88, 0x3E, 0xBD, 0xF8, 0xF7, 0xBD, 0xA2, 0xDB, 0x2F, 0xBE,
+ 0xD3, 0x36, 0x3F, 0xBE, 0x1B, 0x1F, 0xE2, 0x3C, 0xFC, 0x02, 0x11, 0xBD,
+ 0xB7, 0x3F, 0x77, 0xBD, 0xCE, 0x57, 0x91, 0xBD, 0x76, 0x0B, 0xC2, 0x3D,
+ 0x57, 0x0D, 0xF3, 0xBD, 0x49, 0x0A, 0x8E, 0x3D, 0x3D, 0x82, 0x33, 0x3B,
+ 0x76, 0xE1, 0x89, 0xBA, 0xAA, 0x6C, 0xBE, 0xBD, 0x72, 0x7A, 0xB2, 0x3D,
+ 0x73, 0x5D, 0xBE, 0xBD, 0x2D, 0x6D, 0x08, 0x3D, 0x2C, 0x42, 0x49, 0x3B,
+ 0x1E, 0xE5, 0x24, 0x3D, 0x43, 0x8F, 0xC6, 0x3B, 0x55, 0x55, 0xF8, 0xBC,
+ 0x54, 0xAB, 0x1E, 0xBB, 0x3C, 0x8C, 0x67, 0xBD, 0x81, 0xB8, 0xCD, 0x3A,
+ 0xC0, 0x5F, 0x84, 0x3D, 0x0E, 0x0C, 0x80, 0x3D, 0xAA, 0x1B, 0xCA, 0xBB,
+ 0x78, 0x6B, 0xCF, 0x3D, 0x7E, 0x62, 0x54, 0x3D, 0x4C, 0x9C, 0x5C, 0xBE,
+ 0x9E, 0x85, 0x30, 0xBD, 0x98, 0x98, 0xEF, 0x3C, 0xCC, 0x93, 0xB6, 0xBD,
+ 0x7C, 0x46, 0x80, 0xBD, 0x2D, 0x5B, 0xAC, 0x3D, 0x93, 0x71, 0xC6, 0x3D,
+ 0x57, 0xDA, 0x14, 0xBC, 0xC6, 0x1A, 0xC4, 0xBD, 0x1C, 0x7D, 0x37, 0xBA,
+ 0x9D, 0xBF, 0x96, 0x3C, 0xBC, 0xAA, 0xB4, 0x3D, 0xE9, 0x08, 0x62, 0xBC,
+ 0x24, 0x4C, 0x2E, 0xBD, 0x62, 0x3D, 0x21, 0xBD, 0xB4, 0xA0, 0xAC, 0xBC,
+ 0x6F, 0xAA, 0x11, 0xBE, 0xBE, 0xD5, 0xFF, 0xBD, 0xF8, 0xBC, 0x84, 0x39,
+ 0x60, 0x47, 0xF8, 0xBD, 0x2A, 0x23, 0x18, 0xBC, 0xD8, 0x48, 0x97, 0x3B,
+ 0x96, 0xE6, 0xDF, 0xBC, 0x1E, 0xFA, 0x87, 0xBC, 0xB0, 0x6D, 0x8A, 0x3B,
+ 0x63, 0x53, 0x9B, 0x3D, 0x6C, 0xD1, 0x18, 0xBD, 0xAB, 0x05, 0x10, 0xBC,
+ 0x9F, 0x9A, 0xB4, 0xBC, 0x32, 0x2A, 0xAC, 0x3C, 0x9B, 0xA4, 0x81, 0xBD,
+ 0x16, 0xF2, 0xCF, 0xBC, 0x8C, 0xB1, 0xD3, 0xBD, 0x00, 0x6C, 0x32, 0xBC,
+ 0xF7, 0x0D, 0x70, 0x3D, 0xF6, 0x67, 0x79, 0x3F, 0x7C, 0xCC, 0x2C, 0x3E,
+ 0x68, 0xDD, 0xB6, 0x3D, 0x5B, 0x97, 0x86, 0xBE, 0x29, 0x03, 0xFC, 0xBD,
+ 0xF5, 0xFA, 0x9B, 0x3D, 0xF7, 0xC0, 0x54, 0x3E, 0x55, 0x39, 0x4D, 0x3F,
+ 0x5C, 0x39, 0x0E, 0x3D, 0xFF, 0x15, 0x28, 0x3F, 0x1D, 0xFC, 0x3C, 0x3F,
+ 0x42, 0x31, 0x12, 0x3E, 0xD4, 0x75, 0x43, 0x3D, 0xA1, 0xC7, 0xAF, 0x3F,
+ 0x21, 0x0A, 0x48, 0xBF, 0x03, 0x7B, 0x26, 0x3F, 0xA8, 0x0A, 0x24, 0x3E,
+ 0xFF, 0x95, 0xC3, 0x3D, 0x31, 0xA8, 0x59, 0x3E, 0xA1, 0xA0, 0xDF, 0xBE,
+ 0xB7, 0x30, 0xED, 0x3E, 0x19, 0x02, 0x66, 0x3D, 0x08, 0xDB, 0x45, 0xBF,
+ 0x08, 0xC8, 0x8D, 0x3E, 0x5E, 0x9E, 0xD4, 0xBE, 0xA8, 0x95, 0x18, 0x3E,
+ 0xEC, 0xBB, 0xDA, 0xBD, 0x13, 0x63, 0x22, 0xBF, 0xDC, 0xB0, 0x98, 0x3E,
+ 0x59, 0x75, 0x9B, 0xBF, 0xB8, 0xD8, 0x63, 0x3F, 0xAE, 0xB3, 0x8D, 0x3E,
+ 0xBB, 0xDC, 0x80, 0x3F, 0x5B, 0x57, 0xD1, 0xBD, 0x40, 0x37, 0xB0, 0xBF,
+ 0xCE, 0x9D, 0x83, 0xBE, 0x60, 0x0F, 0x4E, 0x3D, 0xA4, 0x90, 0xF1, 0xBC,
+ 0x7C, 0x3E, 0x9B, 0x3E, 0xDF, 0xC0, 0xFB, 0x3D, 0xC2, 0x4A, 0x6A, 0x3D,
+ 0x15, 0x18, 0x57, 0x3E, 0xFF, 0x0B, 0xA7, 0x3E, 0xBC, 0x46, 0xD9, 0x3C,
+ 0xFA, 0xDD, 0x5E, 0x3D, 0x13, 0x18, 0xB5, 0x3B, 0x34, 0x65, 0x4B, 0x3E,
+ 0x6B, 0x6E, 0x1A, 0xBD, 0x0F, 0x09, 0xC0, 0x3E, 0x10, 0xA2, 0x64, 0x3B,
+ 0x9B, 0xA9, 0x77, 0x3F, 0xB2, 0x63, 0x26, 0x3E, 0xBE, 0xB3, 0x01, 0xBC,
+ 0xFE, 0x48, 0xDB, 0x3C, 0x69, 0x2B, 0x39, 0x3C, 0x6C, 0x02, 0x7E, 0xBE,
+ 0xA0, 0x37, 0xAA, 0x3E, 0x11, 0xAA, 0x3B, 0x3D, 0xB0, 0x28, 0x91, 0x3D,
+ 0xDD, 0x7C, 0x5F, 0x3E, 0xC5, 0x3B, 0x9C, 0x3D, 0xFE, 0xF2, 0x34, 0xBE,
+ 0x2A, 0x1B, 0x5E, 0x3E, 0x53, 0x90, 0x55, 0x3D, 0x46, 0x21, 0x74, 0x3E,
+ 0xEA, 0x45, 0x27, 0x3E, 0x10, 0x3B, 0x2B, 0xBF, 0xC1, 0xAD, 0xC9, 0xBE,
+ 0xDB, 0x7F, 0x16, 0xBC, 0xA5, 0xB8, 0x85, 0xBD, 0xD9, 0x0C, 0xEE, 0x3D,
+ 0xAB, 0x36, 0x84, 0x3E, 0x72, 0xEC, 0x94, 0x3C, 0x02, 0x69, 0x16, 0x3E,
+ 0x35, 0x69, 0xBD, 0x3D, 0x16, 0xF5, 0xCC, 0x3D, 0xF8, 0xCF, 0xC1, 0xBD,
+ 0x68, 0xA0, 0x05, 0xBF, 0x75, 0x30, 0xCB, 0x3D, 0x72, 0x73, 0x84, 0xBC,
+ 0x75, 0x2A, 0x82, 0xBE, 0x52, 0xDA, 0x9C, 0x3D, 0x06, 0xD0, 0x40, 0xBC,
+ 0x1B, 0xE7, 0x76, 0x3E, 0x7D, 0x46, 0xD3, 0x3A, 0xF3, 0xE0, 0x0D, 0xBE,
+ 0x08, 0x0C, 0x68, 0xBD, 0x15, 0xEB, 0x8C, 0x3C, 0xD6, 0x13, 0x82, 0x3D,
+ 0x5E, 0x83, 0xDF, 0x3D, 0x49, 0x06, 0x61, 0xBE, 0x8F, 0x6A, 0x8C, 0x3D,
+ 0xE8, 0xF4, 0x86, 0x3E, 0xB5, 0xEB, 0xCC, 0xBE, 0x7B, 0xF5, 0xF4, 0x3D,
+ 0x16, 0xDC, 0x83, 0x3E, 0x95, 0xC9, 0xAC, 0x3F, 0xFE, 0x35, 0x16, 0xBE,
+ 0x97, 0x64, 0xA9, 0xBE, 0x3D, 0x83, 0xFD, 0xBE, 0x98, 0x59, 0x82, 0xB9,
+ 0xBE, 0x2B, 0x87, 0x3E, 0x59, 0xFA, 0x30, 0xBF, 0xD3, 0x8D, 0x38, 0xBF,
+ 0xCE, 0x6C, 0xBB, 0xBE, 0xDB, 0xDE, 0x9F, 0x3A, 0xBA, 0xA3, 0x96, 0x3E,
+ 0x75, 0x54, 0x7C, 0x3E, 0x06, 0x61, 0xD9, 0xBE, 0x1F, 0x22, 0x4C, 0x3E,
+ 0xBD, 0x8D, 0x1A, 0x3F, 0x56, 0x50, 0x2D, 0x3E, 0x90, 0xBD, 0x0C, 0xBF,
+ 0xE1, 0xD2, 0x22, 0x3E, 0x40, 0xED, 0x40, 0x3E, 0xA7, 0x82, 0xD9, 0x3E,
+ 0xFD, 0x6C, 0xEA, 0x3E, 0x13, 0x69, 0x28, 0x3F, 0x88, 0xAC, 0x00, 0x3F,
+ 0xE9, 0x21, 0xF2, 0xBD, 0x5E, 0x6E, 0xB5, 0x3E, 0x5D, 0xA9, 0xFF, 0x3E,
+ 0xF6, 0x56, 0x7E, 0xBD, 0x25, 0x0D, 0x33, 0x3F, 0x30, 0xED, 0xC3, 0xBD,
+ 0x00, 0x45, 0x67, 0x3E, 0xD0, 0xEF, 0x9E, 0x3C, 0xFA, 0x37, 0x69, 0xBD,
+ 0x55, 0xFC, 0x96, 0xBE, 0x62, 0x30, 0x66, 0x3E, 0xBF, 0x19, 0x80, 0x3C,
+ 0x06, 0xC2, 0x70, 0xBF, 0x87, 0x4D, 0x0E, 0x3F, 0x2F, 0xD8, 0x81, 0x3E,
+ 0x41, 0xB5, 0x07, 0x3F, 0x04, 0x06, 0x63, 0xBD, 0x5A, 0x2A, 0xCE, 0x3D,
+ 0xA7, 0x74, 0x82, 0xBF, 0x1B, 0x6E, 0x14, 0xBF, 0x3F, 0x20, 0x7D, 0x3D,
+ 0x70, 0xC0, 0xAB, 0x3E, 0xCE, 0x87, 0x56, 0xBF, 0x40, 0x1F, 0x4A, 0x3E,
+ 0xDA, 0xC2, 0x54, 0xBE, 0x62, 0x45, 0x14, 0x3F, 0xEF, 0x44, 0x43, 0x3D,
+ 0x11, 0xA7, 0x8D, 0x3E, 0x37, 0x31, 0xC5, 0xBE, 0x51, 0xB6, 0x60, 0x3D,
+ 0xCD, 0x2D, 0x92, 0x3E, 0xA6, 0xA2, 0x52, 0x3F, 0x8C, 0xAA, 0x49, 0x3E,
+ 0x43, 0xC4, 0x35, 0xBF, 0x7A, 0x35, 0x57, 0xBD, 0x6E, 0xBE, 0x68, 0xBE,
+ 0x17, 0x6D, 0x3F, 0x3F, 0xBA, 0xC7, 0x96, 0x3C, 0xE5, 0x00, 0x5E, 0xBE,
+ 0x38, 0xBD, 0xDD, 0xBD, 0xF5, 0x93, 0xCC, 0xBD, 0x7D, 0x09, 0x42, 0xBE,
+ 0xEE, 0xC4, 0x22, 0x3D, 0x0B, 0x19, 0x32, 0x3E, 0x34, 0x9E, 0x8E, 0x3C,
+ 0xBC, 0x12, 0xA1, 0xBD, 0x4A, 0x67, 0xC9, 0xBC, 0x5D, 0x68, 0x68, 0x3E,
+ 0x98, 0x05, 0x44, 0x3E, 0x10, 0xF1, 0xE4, 0x3D, 0x4E, 0x3D, 0x19, 0xBE,
+ 0x2F, 0xD5, 0x95, 0xBE, 0x9F, 0x82, 0xA7, 0xBD, 0x47, 0x8B, 0x47, 0x3E,
+ 0xD8, 0xB8, 0xE6, 0xBE, 0x61, 0x1C, 0xB7, 0x3E, 0x03, 0x4F, 0x76, 0x3E,
+ 0x82, 0x1F, 0xAC, 0x3D, 0x96, 0xC5, 0x99, 0xBD, 0x29, 0xD0, 0xD0, 0x3B,
+ 0x62, 0xA1, 0xAE, 0xBF, 0x3B, 0xDC, 0xAE, 0x3D, 0xA7, 0x04, 0x82, 0x3C,
+ 0x2D, 0xF9, 0x14, 0x3F, 0xB7, 0x59, 0xCC, 0xBD, 0x4F, 0x36, 0xE8, 0x3E,
+ 0x9E, 0xA5, 0x27, 0xBE, 0x25, 0x9A, 0x34, 0xBD, 0x2C, 0x3D, 0x7A, 0x3F,
+ 0x0D, 0x73, 0x48, 0xBD, 0xF1, 0xF5, 0xF8, 0x3E, 0xDF, 0x53, 0x83, 0xBE,
+ 0x81, 0xF3, 0x07, 0x3E, 0x79, 0x35, 0xAC, 0x3D, 0xE1, 0x40, 0x29, 0x3B,
+ 0x3C, 0x9F, 0xFF, 0xBD, 0xD3, 0xE6, 0xCA, 0xBD, 0x6A, 0x50, 0x60, 0x3B,
+ 0x1A, 0x83, 0x10, 0x3D, 0xC4, 0xF2, 0x74, 0xBD, 0x43, 0x31, 0x19, 0xBD,
+ 0xC1, 0xF8, 0xB5, 0x3D, 0x37, 0x6B, 0x1C, 0xBD, 0x68, 0x66, 0xAC, 0x3D,
+ 0x1D, 0x27, 0x09, 0xBC, 0x1F, 0x4C, 0x99, 0x3C, 0xBA, 0x3B, 0x5C, 0xBC,
+ 0xD7, 0xB0, 0x87, 0xBD, 0x55, 0x4A, 0x14, 0xBD, 0x1D, 0x64, 0x82, 0xBD,
+ 0x83, 0x44, 0xAE, 0xBC, 0x6C, 0x6A, 0x44, 0x3D, 0x01, 0x76, 0x8B, 0xBD,
+ 0xE3, 0x42, 0x30, 0xBD, 0x28, 0x11, 0x81, 0xBD, 0x9E, 0x50, 0x96, 0x3C,
+ 0x29, 0x24, 0x6C, 0xBD, 0xE8, 0x07, 0x67, 0x3D, 0xF2, 0x86, 0xAD, 0x3D,
+ 0x2E, 0xB8, 0xA4, 0xBB, 0xA2, 0x39, 0x91, 0x3C, 0x23, 0x0B, 0x36, 0x3D,
+ 0x09, 0xA8, 0xFB, 0x3E, 0x76, 0x2B, 0xCF, 0x3C, 0x1A, 0xCA, 0xA3, 0xBD,
+ 0x11, 0x81, 0x0E, 0x3E, 0xD9, 0x72, 0x0D, 0xBD, 0xD8, 0x11, 0x0F, 0xBD,
+ 0x43, 0x48, 0xF4, 0xBD, 0x1D, 0xCE, 0x73, 0x3C, 0x7A, 0x40, 0x20, 0xBD,
+ 0x26, 0x2A, 0x8F, 0xBC, 0xE0, 0x94, 0xC3, 0xBC, 0x95, 0x7E, 0x02, 0x3E,
+ 0x6E, 0x3C, 0x42, 0xBD, 0x4E, 0x0D, 0x0B, 0x3D, 0xBE, 0x3B, 0xCA, 0x3B,
+ 0xF5, 0xF6, 0x26, 0xBD, 0x83, 0x3C, 0x3E, 0x3E, 0x21, 0x70, 0x4A, 0xBD,
+ 0x44, 0x97, 0x4C, 0xBD, 0xD0, 0x68, 0x6E, 0x3C, 0x7F, 0x2A, 0xAB, 0xBC,
+ 0x9B, 0xC5, 0x2F, 0xBC, 0xC9, 0x20, 0x06, 0xBD, 0xE0, 0x20, 0xDA, 0xBC,
+ 0x9D, 0xC5, 0x44, 0xBC, 0x50, 0x84, 0xFE, 0xBC, 0x8E, 0x2D, 0x5A, 0xBC,
+ 0xB8, 0x2D, 0x4C, 0x3D, 0xEB, 0x29, 0x29, 0x3D, 0xE3, 0xC0, 0xFB, 0x3C,
+ 0x97, 0x32, 0x0E, 0xBD, 0x0F, 0x90, 0x16, 0x3D, 0x2D, 0x13, 0x06, 0xBE,
+ 0x36, 0x6E, 0xD3, 0x3C, 0xE9, 0x0B, 0x7E, 0x3B, 0xA9, 0xC3, 0x5A, 0xBD,
+ 0x11, 0xF6, 0xD2, 0xBB, 0xFE, 0xDA, 0xA3, 0x3D, 0xC3, 0x21, 0x17, 0x3E,
+ 0xC2, 0x00, 0x39, 0x3C, 0x06, 0x8E, 0xBB, 0xBD, 0x14, 0xEA, 0x6C, 0x3D,
+ 0xB7, 0xCA, 0xD1, 0x3B, 0x10, 0xE3, 0x08, 0xBD, 0x14, 0xC3, 0x87, 0x3D,
+ 0xC1, 0x1F, 0xCD, 0xBC, 0x0A, 0x51, 0xA6, 0xBC, 0x7B, 0xB2, 0x78, 0xBB,
+ 0x41, 0x99, 0x92, 0x3D, 0xFF, 0x68, 0x8A, 0xBD, 0x68, 0x7B, 0x72, 0x3D,
+ 0xB1, 0xD0, 0xE3, 0xBC, 0x90, 0x6B, 0xA0, 0x3C, 0x41, 0xA2, 0x8F, 0x3C,
+ 0xF2, 0x0A, 0xA3, 0x3D, 0x4E, 0xC4, 0x06, 0x3D, 0x85, 0x58, 0x43, 0x3D,
+ 0x8D, 0x5B, 0xCA, 0x3C, 0xF8, 0xEC, 0xD4, 0xBC, 0x45, 0xA7, 0xA0, 0xBD,
+ 0xDE, 0xE0, 0xC0, 0xBD, 0xE8, 0xCD, 0x3F, 0x3D, 0x9F, 0x3C, 0x2F, 0xBD,
+ 0x18, 0x2D, 0xA4, 0x3C, 0xA1, 0x56, 0x86, 0xBE, 0x25, 0xEC, 0x81, 0xBB,
+ 0x49, 0x8D, 0x89, 0x3D, 0xD4, 0xEE, 0x0D, 0x3D, 0xA6, 0x65, 0x9B, 0x3D,
+ 0x37, 0x85, 0x83, 0x3D, 0x4A, 0xE5, 0x7E, 0x3D, 0xDB, 0x2F, 0x75, 0xBB,
+ 0x58, 0xFD, 0xE8, 0x3C, 0x98, 0xCF, 0xA5, 0x3C, 0x09, 0xFE, 0x81, 0x3C,
+ 0xA0, 0x73, 0x85, 0x3C, 0x05, 0x5E, 0x64, 0xBD, 0xDD, 0x36, 0x53, 0x3D,
+ 0xF8, 0x4F, 0xD1, 0x3B, 0xD7, 0x58, 0x7F, 0xBD, 0xD7, 0x00, 0x14, 0xBE,
+ 0xA6, 0xB5, 0xAC, 0xBD, 0xD9, 0x50, 0x51, 0x3D, 0xC9, 0x2B, 0x32, 0x3C,
+ 0xEF, 0x9D, 0xE7, 0xBC, 0x3E, 0xCC, 0xEE, 0x3D, 0x7D, 0xA3, 0x2E, 0xBB,
+ 0x22, 0xF7, 0xE1, 0x3B, 0xF1, 0x5B, 0xE5, 0xBB, 0x82, 0x00, 0x81, 0xBD,
+ 0x7B, 0x54, 0xBD, 0x3C, 0xC3, 0xEF, 0xCF, 0xBD, 0x7B, 0x3A, 0x36, 0xBB,
+ 0xA6, 0xD3, 0x5C, 0x3D, 0xA5, 0xEF, 0x03, 0xBC, 0x05, 0x00, 0xF7, 0x3B,
+ 0xF6, 0x23, 0x07, 0xBF, 0x3B, 0x1D, 0x2D, 0xBB, 0xC8, 0x30, 0x39, 0xBC,
+ 0x4A, 0x18, 0x1D, 0x3F, 0x4E, 0x7F, 0x06, 0x3D, 0xA9, 0x0F, 0x85, 0xBE,
+ 0x12, 0xC5, 0x53, 0xBF, 0xCC, 0x0B, 0xE6, 0x3D, 0x9B, 0x4F, 0xCA, 0xBD,
+ 0x9C, 0xD1, 0x6B, 0x3E, 0x02, 0xE7, 0x94, 0x3E, 0x37, 0xFF, 0x03, 0xBE,
+ 0xE9, 0x46, 0x28, 0xBD, 0x49, 0x20, 0x1B, 0x3F, 0x2F, 0x44, 0xE6, 0x3C,
+ 0x26, 0x06, 0x42, 0x3D, 0x51, 0x87, 0xBA, 0x3D, 0xF3, 0x82, 0x3F, 0x3F,
+ 0x37, 0x85, 0x86, 0xBE, 0x5C, 0x67, 0x81, 0x3F, 0x9A, 0xF1, 0xB4, 0x3C,
+ 0xE1, 0xA5, 0x28, 0x3F, 0x0B, 0x69, 0x89, 0x3E, 0xC5, 0x05, 0xE5, 0xBB,
+ 0xDA, 0xC3, 0x93, 0x3D, 0xCF, 0x74, 0xD9, 0xBE, 0x9C, 0xD0, 0x73, 0xBD,
+ 0x40, 0x29, 0x2D, 0xBE, 0x6D, 0xF1, 0x3B, 0xBE, 0x86, 0xC9, 0x0E, 0x3E,
+ 0x69, 0x90, 0x84, 0x3F, 0x0B, 0x65, 0x50, 0x3B, 0x67, 0x21, 0x27, 0x3E,
+ 0x5F, 0xD0, 0xB6, 0x3D, 0x4A, 0x95, 0xC9, 0x3D, 0x9E, 0x62, 0x05, 0x3F,
+ 0x2A, 0x24, 0x86, 0xBD, 0x69, 0x55, 0x0E, 0xBE, 0xEC, 0x43, 0x5B, 0xBF,
+ 0xC8, 0x80, 0xD0, 0x3D, 0x01, 0xC2, 0xB9, 0xBD, 0x18, 0x18, 0x23, 0x3E,
+ 0xEC, 0xD0, 0xE5, 0xBE, 0x9B, 0x33, 0x50, 0xBD, 0x4D, 0x6E, 0x65, 0x3E,
+ 0x74, 0x2E, 0x9E, 0x3D, 0x4D, 0x8F, 0x20, 0x3D, 0x9D, 0x14, 0x3E, 0xBD,
+ 0x36, 0x47, 0x84, 0xBE, 0x6E, 0xB5, 0x24, 0x3E, 0xC1, 0xEF, 0x5E, 0x3E,
+ 0x64, 0x30, 0x20, 0x3E, 0x63, 0xD1, 0xDA, 0x3C, 0x57, 0x72, 0x65, 0x3E,
+ 0x92, 0x73, 0x13, 0x3F, 0x17, 0x25, 0xC6, 0x3C, 0x05, 0x22, 0x89, 0x3D,
+ 0xCC, 0xD1, 0x1E, 0xBF, 0xBD, 0x64, 0x4B, 0xBB, 0xF8, 0x6B, 0x8C, 0xBE,
+ 0xD8, 0x93, 0x2B, 0x3E, 0x3F, 0xD2, 0xFC, 0x3C, 0xE9, 0x32, 0x8A, 0xBD,
+ 0xCC, 0x8F, 0xFA, 0xBA, 0xAC, 0xAA, 0x11, 0x3F, 0x01, 0xD9, 0x66, 0x3D,
+ 0x8F, 0x13, 0x53, 0xBD, 0xD5, 0x73, 0x5B, 0x3D, 0x55, 0x1A, 0x86, 0x3E,
+ 0x88, 0x01, 0x0E, 0x3E, 0xFD, 0xDF, 0x00, 0xBF, 0x66, 0xBA, 0x14, 0xBE,
+ 0xE0, 0x88, 0x17, 0xBD, 0xE8, 0x76, 0x79, 0x3F, 0xDF, 0x2A, 0xA0, 0xBE,
+ 0x02, 0x47, 0x70, 0x3E, 0x53, 0x96, 0x3F, 0x3C, 0xF1, 0xF7, 0x06, 0xBD,
+ 0xC0, 0x69, 0x36, 0x3E, 0x78, 0x8E, 0x3B, 0xBF, 0x6B, 0xE1, 0x13, 0xBF,
+ 0xA9, 0xE3, 0x9B, 0xBE, 0x0A, 0xBF, 0x76, 0x3F, 0xBE, 0xB6, 0xEA, 0xBE,
+ 0x1A, 0x0C, 0x90, 0xBE, 0xDE, 0x92, 0xCF, 0x3C, 0x81, 0xCB, 0x18, 0x3F,
+ 0xFE, 0x4E, 0x0C, 0x3F, 0x43, 0x94, 0xEC, 0x3E, 0x09, 0xE6, 0x00, 0xBD,
+ 0x8A, 0xD6, 0xE2, 0x3E, 0xBD, 0xDB, 0x12, 0xBF, 0x00, 0xA8, 0xD2, 0x3D,
+ 0x9B, 0xAE, 0x5F, 0x3F, 0x18, 0xEB, 0x8A, 0xBE, 0x6C, 0x87, 0x7A, 0x3E,
+ 0x6E, 0xE1, 0x02, 0xBF, 0xCA, 0xEA, 0x81, 0x3F, 0x6D, 0xEF, 0xC0, 0x3E,
+ 0x79, 0x05, 0x5C, 0xBE, 0xFE, 0xFC, 0xE1, 0x3B, 0x31, 0xBC, 0x2A, 0x3D,
+ 0x2A, 0x02, 0x11, 0x3E, 0x8F, 0xAE, 0xA7, 0xBC, 0x3D, 0xC6, 0x1A, 0xBD,
+ 0xB8, 0x25, 0x0A, 0x3D, 0xAE, 0xF9, 0x12, 0x3D, 0x77, 0xF2, 0x16, 0xBC,
+ 0x87, 0x0B, 0xAB, 0x3D, 0xC9, 0x8D, 0x57, 0xBD, 0x5D, 0x17, 0xE6, 0xBC,
+ 0x36, 0x90, 0x8A, 0x3C, 0xB3, 0x6A, 0x07, 0x3C, 0xF3, 0x92, 0xED, 0xBC,
+ 0x2B, 0xAC, 0xA7, 0x3D, 0x83, 0xD0, 0xE8, 0x3C, 0x16, 0x39, 0xA9, 0x3A,
+ 0xDB, 0x91, 0x21, 0xBD, 0x91, 0x62, 0x31, 0x3D, 0xAF, 0xA6, 0xF4, 0x3C,
+ 0xE0, 0xDD, 0x1B, 0x3C, 0x79, 0xE3, 0x94, 0x3D, 0x8F, 0x54, 0x7D, 0x3C,
+ 0xDE, 0x9F, 0x1E, 0xBD, 0xB6, 0xDD, 0x99, 0xBD, 0xFC, 0xE6, 0x8A, 0x3B,
+ 0x2E, 0xDD, 0x87, 0xBD, 0x77, 0xBC, 0xB4, 0xBD, 0xAE, 0xD3, 0xB6, 0xBD,
+ 0x2B, 0xDD, 0xFC, 0x3B, 0xA4, 0x23, 0xA9, 0x3C, 0x11, 0xEA, 0xA6, 0x3D,
+ 0xEC, 0xDD, 0x70, 0x3C, 0x8B, 0x2B, 0xFB, 0x3E, 0x65, 0xB7, 0xB7, 0xBE,
+ 0x87, 0xE0, 0x39, 0x3B, 0x91, 0xED, 0xFD, 0xBC, 0x5F, 0xDC, 0x09, 0x3E,
+ 0x9E, 0xD1, 0x93, 0x3E, 0xFE, 0x2F, 0x89, 0xBD, 0x71, 0x6B, 0xAA, 0xBE,
+ 0x4D, 0x53, 0xD1, 0xBD, 0x17, 0x29, 0xB2, 0xBB, 0x07, 0xAA, 0x8A, 0x3D,
+ 0x1B, 0x17, 0x33, 0x3C, 0x14, 0xCD, 0xC9, 0xBE, 0xB6, 0x85, 0xD6, 0x3D,
+ 0x6C, 0x4C, 0xE5, 0x3E, 0x8A, 0x84, 0x1E, 0xBC, 0x02, 0x9B, 0x2E, 0xBD,
+ 0x76, 0xDD, 0xDA, 0xBD, 0xE0, 0x0A, 0x9D, 0x3C, 0x35, 0xB3, 0x13, 0xBC,
+ 0xD7, 0x54, 0x09, 0x3F, 0x85, 0x45, 0xBC, 0x3D, 0x47, 0x58, 0xBD, 0x3E,
+ 0xB3, 0xEE, 0xE9, 0x3D, 0x7E, 0xD3, 0xC5, 0x3C, 0x7F, 0xED, 0x39, 0xBE,
+ 0x37, 0x66, 0x9F, 0x3D, 0x39, 0x51, 0x0E, 0xBE, 0x51, 0x3C, 0x12, 0xBE,
+ 0xFE, 0xED, 0xA2, 0xBD, 0x6B, 0xD7, 0xA3, 0xBE, 0x1E, 0x9C, 0xA0, 0x3C,
+ 0x17, 0xD7, 0x83, 0x3F, 0x92, 0xE9, 0x01, 0xBE, 0xB1, 0x35, 0xB1, 0xBE,
+ 0x22, 0x4A, 0x53, 0x3F, 0x04, 0x6A, 0x57, 0x3F, 0xFA, 0x9B, 0xE0, 0xBD,
+ 0x8B, 0xB8, 0x08, 0x3F, 0xC5, 0xD5, 0x47, 0xBE, 0xD9, 0x70, 0x20, 0x3F,
+ 0x28, 0x66, 0x96, 0xBE, 0xCB, 0x74, 0xBF, 0xBE, 0x31, 0x69, 0x48, 0xBF,
+ 0x8F, 0x6D, 0x20, 0xBF, 0xA4, 0x44, 0x7F, 0x3C, 0xD3, 0x16, 0xA0, 0xBE,
+ 0x4C, 0xD5, 0x94, 0xBE, 0xBD, 0xC8, 0x15, 0xBF, 0x2E, 0xCF, 0xFB, 0xBD,
+ 0xD7, 0x9A, 0x0A, 0x3F, 0x9B, 0x43, 0xD9, 0x3E, 0xE8, 0x16, 0xCA, 0x3C,
+ 0xCF, 0x75, 0x70, 0x3E, 0x8B, 0x9C, 0x52, 0xBE, 0xA0, 0xC8, 0xB6, 0x3E,
+ 0x06, 0xDF, 0xEF, 0xBE, 0x0F, 0x58, 0x89, 0x3E, 0x4C, 0xE8, 0xC4, 0xBE,
+ 0x54, 0x5E, 0xF2, 0xBE, 0xCE, 0x6D, 0x3D, 0x3F, 0x6E, 0xD7, 0xA8, 0x3F,
+ 0x92, 0xCA, 0x32, 0xBE, 0x6E, 0x6C, 0xFC, 0x3D, 0xAC, 0x59, 0xF9, 0xBC,
+ 0xF1, 0xA6, 0xC6, 0x3D, 0x0F, 0xB7, 0x7C, 0xBD, 0x97, 0x00, 0x70, 0x3C,
+ 0x14, 0xFC, 0xAC, 0x3C, 0xBC, 0xBD, 0x3E, 0x3D, 0xA8, 0xDD, 0xEA, 0xBC,
+ 0x61, 0x61, 0x3E, 0x3E, 0xCD, 0x61, 0x00, 0xBE, 0x3C, 0x26, 0x10, 0x3D,
+ 0xCC, 0x05, 0x9B, 0x3D, 0xBB, 0xC1, 0xD8, 0xBB, 0x35, 0xD3, 0xD3, 0x3C,
+ 0x14, 0x44, 0xD4, 0x3D, 0xB2, 0xB9, 0xC5, 0x3B, 0x68, 0xE2, 0x02, 0xBC,
+ 0x52, 0x90, 0x23, 0xBE, 0xDC, 0x98, 0x99, 0xBC, 0xCD, 0x62, 0x0E, 0x3D,
+ 0x79, 0xAE, 0xE1, 0xBC, 0xE8, 0x40, 0x95, 0x3D, 0x2D, 0xEF, 0x85, 0x3D,
+ 0x5C, 0x78, 0x89, 0xBD, 0x74, 0x8A, 0xCC, 0xBC, 0x70, 0x83, 0x46, 0xBD,
+ 0x78, 0xFB, 0x3F, 0x3D, 0x92, 0xA4, 0xC2, 0xBD, 0x5D, 0xB3, 0xBF, 0xBE,
+ 0xF5, 0xA2, 0x14, 0x3B, 0x2B, 0xF9, 0x92, 0xBD, 0xCD, 0x77, 0xC8, 0x3D,
+ 0xA4, 0x69, 0xEE, 0xBD, 0x74, 0x4E, 0xE1, 0x3D, 0xDB, 0xBC, 0x31, 0xBE,
+ 0xA1, 0x07, 0xC5, 0x3C, 0x5F, 0x08, 0xC3, 0xBC, 0x2D, 0xB8, 0x82, 0xBD,
+ 0x24, 0x54, 0x3E, 0xBC, 0xEF, 0xD3, 0xB5, 0x3D, 0x3C, 0x25, 0x90, 0xBD,
+ 0x98, 0x88, 0x74, 0x3D, 0xA1, 0xC0, 0x7D, 0xBB, 0xD4, 0xC9, 0xE4, 0xBD,
+ 0xD8, 0x14, 0x86, 0x3E, 0x72, 0x85, 0x3E, 0xBD, 0xC2, 0xFD, 0x77, 0xBD,
+ 0x6F, 0x8B, 0x6C, 0xBD, 0x25, 0xA6, 0xC7, 0x3B, 0x54, 0x38, 0x30, 0x3C,
+ 0xEF, 0x79, 0xFF, 0x3B, 0xE4, 0x05, 0x90, 0x3B, 0x7E, 0x46, 0x8A, 0x3D,
+ 0x96, 0x2A, 0x7F, 0x3D, 0xD8, 0x89, 0xD1, 0xBD, 0x53, 0x2B, 0x1C, 0x3D,
+ 0xF3, 0xA5, 0x03, 0x3D, 0x30, 0xCB, 0x0B, 0x3D, 0xC5, 0x23, 0x1A, 0xBE,
+ 0xC4, 0x03, 0x65, 0x3D, 0x0C, 0xAF, 0x6B, 0x3D, 0x71, 0x58, 0xBD, 0x3D,
+ 0xE1, 0x1E, 0x00, 0x3C, 0x0B, 0xAF, 0x7C, 0x3E, 0x0A, 0xE6, 0x70, 0xBB,
+ 0x8E, 0x97, 0x20, 0x3F, 0x07, 0x14, 0xD0, 0xBD, 0x68, 0x49, 0x8E, 0x3D,
+ 0x1F, 0x6B, 0xFB, 0x3D, 0x46, 0xDC, 0x86, 0x3D, 0x92, 0xC6, 0x30, 0xBE,
+ 0x60, 0x06, 0xF8, 0x3D, 0x3B, 0x8F, 0xD4, 0xBE, 0xB9, 0x6B, 0x4F, 0x3E,
+ 0xAD, 0xD7, 0x5A, 0xBE, 0x3F, 0x0A, 0x31, 0xBE, 0xBA, 0x1A, 0x7F, 0xBE,
+ 0x65, 0x87, 0x07, 0xBF, 0xEF, 0x46, 0x15, 0xBE, 0xD5, 0x6D, 0x37, 0xBE,
+ 0xB8, 0x17, 0x1C, 0xBD, 0x7A, 0xB7, 0xA1, 0x3E, 0xB5, 0xF9, 0xCB, 0xBE,
+ 0xCA, 0xE9, 0xFB, 0x3D, 0x33, 0xB3, 0xD7, 0xBD, 0x9B, 0xE2, 0xA4, 0xBD,
+ 0xD3, 0x2D, 0x30, 0xBD, 0x75, 0x6B, 0x43, 0xBE, 0x7F, 0x84, 0x65, 0xBE,
+ 0x88, 0xAB, 0x97, 0xBD, 0x18, 0x40, 0x94, 0x3C, 0x93, 0x54, 0x71, 0xBE,
+ 0x38, 0xDB, 0x0E, 0x3F, 0x5B, 0x02, 0x01, 0xBE, 0x09, 0x14, 0xC6, 0x3D,
+ 0x5A, 0x2B, 0x44, 0x3E, 0x64, 0x49, 0x80, 0xBE, 0x97, 0xB0, 0x74, 0x3D,
+ 0x7B, 0x25, 0x9D, 0xBE, 0xEA, 0xCE, 0x31, 0xBE, 0xD9, 0x1D, 0x0C, 0x3E,
+ 0xD0, 0x18, 0x47, 0xBF, 0x2E, 0xD1, 0x0D, 0x3F, 0x86, 0xA1, 0x3E, 0xBF,
+ 0x36, 0xE6, 0x9C, 0x3E, 0xCD, 0xD2, 0xD4, 0x3E, 0xA0, 0xA7, 0x3F, 0xBE,
+ 0xCA, 0x63, 0x56, 0x3F, 0x3A, 0x37, 0xBC, 0xBF, 0x08, 0xA2, 0x6C, 0x3B,
+ 0x13, 0xCD, 0x89, 0xBE, 0xBA, 0xCA, 0x2E, 0xBE, 0x8E, 0xE4, 0xBA, 0xBD,
+ 0xFA, 0x6B, 0xDD, 0xBE, 0xDF, 0x27, 0xAA, 0x3E, 0xA4, 0x6B, 0x70, 0xBA,
+ 0x0B, 0xAA, 0x7F, 0xBE, 0xE3, 0x7F, 0x48, 0x3D, 0x0F, 0x60, 0x84, 0x3E,
+ 0x87, 0x3A, 0xE0, 0xBE, 0x85, 0x0E, 0x02, 0xBF, 0xA5, 0x6D, 0x8B, 0x3E,
+ 0xC5, 0x4E, 0x58, 0x3F, 0xFB, 0x08, 0x19, 0xBD, 0x19, 0x23, 0x11, 0xBD,
+ 0x62, 0x3D, 0x19, 0x3F, 0xD4, 0xA4, 0xE7, 0xBE, 0x4C, 0xDB, 0xCF, 0xBE,
+ 0x1F, 0x68, 0x2B, 0x3C, 0xC2, 0xDC, 0x7A, 0x3F, 0x9E, 0x3B, 0x3B, 0x3F,
+ 0x75, 0x05, 0x94, 0xBD, 0x2B, 0x0D, 0x4B, 0x3C, 0x19, 0x30, 0x46, 0xBE,
+ 0x85, 0xD8, 0x6F, 0xBE, 0xE6, 0x6B, 0x89, 0xBC, 0xCD, 0xB4, 0x4B, 0x3D,
+ 0x9E, 0xCD, 0x4C, 0xBF, 0x5C, 0x9A, 0xC4, 0xBB, 0x7D, 0x02, 0xDA, 0xBD,
+ 0x36, 0xA4, 0x3A, 0xBE, 0x2F, 0x56, 0x29, 0xBF, 0xBA, 0x15, 0x5A, 0xBC,
+ 0x4F, 0xCA, 0xFE, 0xBE, 0xF0, 0xF4, 0x9D, 0x3C, 0x29, 0x4E, 0x1B, 0xBF,
+ 0xB3, 0xBA, 0x50, 0xBD, 0xAE, 0x99, 0xCC, 0x3C, 0x82, 0x11, 0x8C, 0xBC,
+ 0x57, 0x55, 0x9E, 0x3E, 0x5E, 0x42, 0xA4, 0x3E, 0x38, 0xF5, 0x99, 0xBE,
+ 0x36, 0x62, 0x5F, 0x3E, 0xDB, 0xB2, 0xCB, 0xBD, 0x94, 0x30, 0xDC, 0xBE,
+ 0xAB, 0xE1, 0x06, 0xBD, 0xE5, 0x13, 0x2D, 0x3F, 0x77, 0xD5, 0x70, 0x3C,
+ 0x83, 0x4D, 0x9C, 0xBD, 0x1E, 0x1E, 0xEA, 0x3E, 0x00, 0x74, 0x15, 0xBE,
+ 0xA1, 0x53, 0x64, 0xBF, 0x63, 0x0C, 0x03, 0x3F, 0xF4, 0x0E, 0x84, 0xBD,
+ 0xC2, 0xDF, 0xC6, 0xBD, 0x78, 0x4A, 0x8B, 0xBE, 0x52, 0x3F, 0xE1, 0x3E,
+ 0x4D, 0x02, 0xAA, 0x3D, 0x65, 0x45, 0xB3, 0x3E, 0x90, 0xA7, 0x30, 0xBF,
+ 0x1B, 0x27, 0x36, 0x3D, 0x28, 0x68, 0x46, 0xBE, 0xDE, 0x8B, 0x38, 0x3F,
+ 0x7B, 0x26, 0xE7, 0xBE, 0xE0, 0xCB, 0xB4, 0x3E, 0x17, 0xD8, 0x19, 0xBF,
+ 0xEA, 0xF7, 0x94, 0xBE, 0xAB, 0xC9, 0x9E, 0xBF, 0x46, 0x32, 0x96, 0x3E,
+ 0xC0, 0x6E, 0xAA, 0x3D, 0x23, 0xFC, 0x37, 0x3E, 0xFC, 0x15, 0x38, 0x3E,
+ 0xAB, 0xB6, 0x4D, 0xBD, 0xB6, 0x17, 0x1C, 0x3D, 0x3B, 0x91, 0x81, 0xBE,
+ 0xE5, 0x5F, 0x2B, 0xBE, 0xA0, 0x29, 0x82, 0xBF, 0xCF, 0x58, 0xEC, 0x3D,
+ 0x98, 0xC0, 0x4C, 0x3E, 0xE2, 0x15, 0xDC, 0x3E, 0xDD, 0x20, 0x61, 0x3E,
+ 0x5D, 0x13, 0x4E, 0x3D, 0x83, 0x43, 0x71, 0xBD, 0xE4, 0x08, 0x90, 0x3E,
+ 0x8E, 0x27, 0xC1, 0x3D, 0xB6, 0xF5, 0x17, 0x3D, 0x84, 0x31, 0x78, 0xBD,
+ 0x3B, 0x8E, 0x2A, 0x3E, 0x5A, 0x54, 0x9D, 0xBB, 0x66, 0x6A, 0x9B, 0x3D,
+ 0x91, 0x54, 0xBA, 0xBC, 0xC2, 0x2A, 0xDD, 0xBD, 0x09, 0x80, 0x87, 0x3D,
+ 0x75, 0xE4, 0xEE, 0xBB, 0x71, 0xED, 0xE9, 0xBD, 0x04, 0xC3, 0xA0, 0xBC,
+ 0x7E, 0xF2, 0x06, 0xBE, 0xFD, 0x98, 0x2C, 0xBD, 0xB1, 0x1A, 0xD7, 0x3C,
+ 0x62, 0x31, 0x7F, 0x3E, 0xF6, 0xC1, 0x02, 0x3D, 0x1D, 0x31, 0x8E, 0xBD,
+ 0xC1, 0xAE, 0x8E, 0x3D, 0x3B, 0xFB, 0x74, 0xBE, 0xA4, 0x51, 0xA6, 0x3D,
+ 0xC0, 0xF1, 0x3D, 0xBD, 0x5A, 0xBD, 0xF1, 0xBC, 0x7A, 0xAB, 0x3F, 0x3D,
+ 0xC3, 0xCE, 0x9D, 0xBD, 0xE2, 0xFA, 0x04, 0xBE, 0x4B, 0x37, 0x0B, 0xBF,
+ 0xE1, 0x1B, 0x74, 0xBE, 0x2B, 0x13, 0x3C, 0x3D, 0x84, 0x5D, 0x2D, 0xBF,
+ 0x1D, 0x2D, 0x2A, 0xBE, 0x4C, 0x68, 0xBF, 0xBD, 0xA9, 0x84, 0x30, 0x3F,
+ 0x21, 0xB4, 0x26, 0xBE, 0x84, 0x3A, 0xBA, 0x3E, 0x48, 0x47, 0xDB, 0xBD,
+ 0x11, 0x4C, 0x2A, 0x3F, 0xB0, 0x74, 0x52, 0x3E, 0x1D, 0x8F, 0xE2, 0xBE,
+ 0x69, 0x00, 0x03, 0xBF, 0x46, 0xB0, 0x29, 0xBC, 0x03, 0x9C, 0xF3, 0x3E,
+ 0x0F, 0x31, 0xC8, 0x3E, 0x66, 0xB9, 0x1C, 0x3E, 0x9E, 0xB1, 0x56, 0xBE,
+ 0x4F, 0x13, 0x11, 0xBF, 0xFA, 0x14, 0x06, 0x3E, 0x7F, 0x93, 0x9F, 0xBF,
+ 0xD5, 0xD5, 0xD6, 0xBD, 0xB8, 0xB5, 0x32, 0xBE, 0x9F, 0xBD, 0xE2, 0x3C,
+ 0x73, 0x08, 0xB7, 0x3F, 0x79, 0x0D, 0x4A, 0x3F, 0xE0, 0x43, 0xA0, 0xBD,
+ 0xC4, 0xAF, 0xB0, 0xBD, 0xA3, 0xA4, 0x1C, 0xBF, 0x6E, 0x92, 0xBC, 0x3E,
+ 0xE1, 0x96, 0xAA, 0x3E, 0x9E, 0x16, 0x63, 0xBE, 0x8F, 0x5C, 0xD9, 0xBE,
+ 0x2B, 0xD4, 0x21, 0xBE, 0xA1, 0x84, 0x1D, 0xBE, 0x7B, 0xE4, 0xE2, 0x3E,
+ 0x96, 0x0B, 0x04, 0xBF, 0x07, 0xCD, 0xAC, 0xBE, 0xEA, 0x46, 0x34, 0xBD,
+ 0x48, 0x3E, 0xF7, 0xBD, 0xA0, 0x49, 0x10, 0x3E, 0xB9, 0x4A, 0x33, 0x3E,
+ 0x4F, 0x07, 0xA3, 0xBD, 0x77, 0x71, 0x30, 0xBE, 0xC3, 0x07, 0x49, 0x3D,
+ 0x8D, 0x17, 0x81, 0xBC, 0x3F, 0x89, 0xFA, 0xBC, 0xAE, 0x7E, 0x0B, 0xBF,
+ 0xA3, 0xD2, 0xB6, 0x3E, 0xB6, 0x96, 0x7E, 0xBD, 0x17, 0x20, 0x48, 0x3F,
+ 0xC6, 0x16, 0x2D, 0xBC, 0x71, 0x7C, 0x3D, 0x3F, 0x86, 0x0E, 0x51, 0x3E,
+ 0x6E, 0x23, 0x15, 0xBD, 0x8A, 0x14, 0x18, 0xBD, 0x1A, 0x59, 0x06, 0x3F,
+ 0x46, 0xAF, 0xFE, 0xBC, 0x23, 0x84, 0x2A, 0xBF, 0xE7, 0xB5, 0x93, 0xBE,
+ 0xEB, 0x80, 0x3A, 0x3D, 0x56, 0x72, 0xCF, 0x3E, 0x6C, 0xA0, 0x3C, 0xBD,
+ 0x2A, 0x37, 0xF9, 0xBD, 0x99, 0x11, 0x8B, 0x3E, 0x62, 0xEB, 0x68, 0xBD,
+ 0x39, 0x84, 0xB9, 0x3D, 0x86, 0x90, 0xCF, 0xBD, 0xAF, 0xBF, 0x66, 0x3E,
+ 0x63, 0xBE, 0xEA, 0x3E, 0xFA, 0x72, 0x36, 0xBD, 0x91, 0xA1, 0x07, 0x3E,
+ 0x79, 0xE6, 0xC6, 0xBE, 0xB1, 0xA5, 0x55, 0x3E, 0x3B, 0xF3, 0x92, 0x3E,
+ 0xB2, 0xD6, 0x3B, 0xBE, 0xF1, 0x1A, 0x04, 0xBE, 0xCB, 0xEF, 0x20, 0x3E,
+ 0x06, 0x89, 0x35, 0x3F, 0xF0, 0xAB, 0x27, 0x3F, 0xD4, 0xB8, 0xB7, 0x3E,
+ 0xDF, 0x4F, 0xA0, 0xBE, 0x68, 0xE2, 0x21, 0x3F, 0x24, 0xE8, 0x37, 0x3C,
+ 0xA2, 0x86, 0x0E, 0x3E, 0xD0, 0x41, 0x03, 0x3F, 0x30, 0x11, 0xB2, 0xBE,
+ 0xF0, 0xBE, 0x5D, 0xBE, 0xC5, 0x10, 0x39, 0xBF, 0x34, 0xD0, 0x13, 0x3E,
+ 0x11, 0xCA, 0xCB, 0x3D, 0x35, 0x69, 0x94, 0xBD, 0x29, 0xA6, 0xC1, 0xBE,
+ 0x93, 0x5B, 0x40, 0x3E, 0xE0, 0x5E, 0x64, 0x3E, 0x08, 0xCA, 0xD8, 0xBE,
+ 0xB9, 0xFB, 0xF2, 0xBE, 0x05, 0x4F, 0x1C, 0x3E, 0x88, 0xE1, 0x2E, 0xBE,
+ 0xBD, 0xA2, 0x86, 0xBC, 0x66, 0xBD, 0x08, 0x3F, 0x40, 0x48, 0xEF, 0x39,
+ 0x30, 0x6F, 0x1F, 0xBD, 0x9A, 0x1C, 0xA5, 0xBA, 0x9C, 0xFF, 0xF9, 0x3D,
+ 0x83, 0x54, 0x26, 0x3E, 0x87, 0xA3, 0xC1, 0xBD, 0xCC, 0x98, 0xF8, 0xBE,
+ 0x12, 0xC7, 0x43, 0x3D, 0xE9, 0xC2, 0x59, 0x3C, 0x81, 0xAC, 0xAE, 0xBE,
+ 0x7B, 0x3A, 0xB5, 0x3E, 0x5D, 0x7B, 0x1E, 0x3E, 0x6B, 0x66, 0x4F, 0xBE,
+ 0x45, 0x2E, 0x41, 0xBD, 0x23, 0x9A, 0x98, 0x3C, 0x81, 0xA1, 0x94, 0xBE,
+ 0xB5, 0x95, 0xA9, 0x3E, 0x6F, 0xB2, 0xD9, 0xBC, 0x64, 0x34, 0x9B, 0xBC,
+ 0xE9, 0xE2, 0x80, 0x3E, 0xBA, 0xFA, 0xF2, 0xBE, 0x8E, 0x73, 0xEC, 0x3E,
+ 0x87, 0xBF, 0xF6, 0xBD, 0x99, 0x8B, 0x46, 0x3D, 0x94, 0xC1, 0xB3, 0xBE,
+ 0xF4, 0x3C, 0xDF, 0x3D, 0x78, 0x74, 0x4C, 0xBF, 0x4B, 0x6E, 0x9F, 0x3D,
+ 0x82, 0x3F, 0xC1, 0xBD, 0x0C, 0xAF, 0x06, 0x3F, 0xDC, 0xBA, 0xB2, 0xBC,
+ 0x17, 0x9A, 0xA7, 0xBF, 0x4D, 0x63, 0x66, 0xBE, 0xCA, 0x75, 0xA3, 0x3C,
+ 0xB7, 0xFB, 0x13, 0xBE, 0x66, 0xA5, 0xB3, 0x3E, 0x6D, 0xE7, 0xC2, 0x3E,
+ 0xF0, 0x7F, 0xE4, 0x3E, 0x84, 0x19, 0x6C, 0xBE, 0x43, 0xA7, 0x55, 0x3E,
+ 0xE8, 0x99, 0x23, 0xBD, 0xC4, 0xB4, 0xE7, 0xBE, 0xB0, 0xC5, 0xF9, 0xBD,
+ 0x70, 0x19, 0x49, 0xBF, 0x3A, 0xB8, 0x90, 0xBE, 0x0C, 0x86, 0xB0, 0xBF,
+ 0x29, 0x28, 0x49, 0xBB, 0xA2, 0x21, 0xBE, 0x3E, 0xA3, 0xF1, 0xFF, 0x3E,
+ 0xF4, 0x50, 0xB0, 0xBE, 0x36, 0x3D, 0x96, 0x3E, 0xA9, 0x41, 0x38, 0xBF,
+ 0xAC, 0x25, 0xF7, 0xBD, 0xFF, 0x41, 0x59, 0xBE, 0x3D, 0xF8, 0x19, 0xBB,
+ 0x59, 0x79, 0xFD, 0xBE, 0x71, 0x6C, 0xC5, 0xBE, 0x33, 0xC2, 0x74, 0x3C,
+ 0x9E, 0x3B, 0x90, 0xBE, 0x19, 0x98, 0x6D, 0x3E, 0x51, 0xD1, 0x54, 0x3E,
+ 0xBC, 0x98, 0x01, 0x3E, 0x64, 0xD3, 0x8B, 0xBD, 0x60, 0x22, 0x32, 0xBC,
+ 0x95, 0xB7, 0x22, 0xBD, 0x3C, 0x3C, 0xD2, 0x3C, 0xDB, 0x5F, 0x12, 0xBD,
+ 0x91, 0x49, 0x95, 0x3C, 0x72, 0x63, 0x2A, 0xBD, 0xF6, 0xA5, 0x83, 0x3C,
+ 0xF3, 0xD9, 0x4B, 0xBD, 0xAF, 0xA8, 0x4E, 0x3D, 0xBE, 0x7B, 0xC7, 0xBB,
+ 0xB5, 0x40, 0xD3, 0xBC, 0x6E, 0x21, 0x96, 0x3D, 0xED, 0x06, 0x46, 0xBD,
+ 0xDE, 0xCD, 0x18, 0xBD, 0x73, 0xCA, 0xFA, 0xBC, 0x04, 0xB4, 0x3E, 0xBC,
+ 0x9F, 0xA0, 0x02, 0x3E, 0x95, 0x90, 0x90, 0x3D, 0x6D, 0xA5, 0xD0, 0xBC,
+ 0x79, 0x72, 0x3B, 0x3D, 0x53, 0x61, 0x0B, 0x3D, 0x38, 0xF0, 0xCF, 0xBD,
+ 0x37, 0x98, 0x4E, 0xBC, 0x4A, 0xE4, 0x66, 0x3C, 0xDF, 0x38, 0x3E, 0x3D,
+ 0x7C, 0x1C, 0x9E, 0xBD, 0xA2, 0x10, 0x95, 0x3C, 0xB7, 0xDB, 0x6A, 0x3E,
+ 0x0F, 0x11, 0xBE, 0x3C, 0x85, 0x53, 0x55, 0xBC, 0x47, 0x8D, 0x84, 0x3F,
+ 0x1D, 0x41, 0xD6, 0xBB, 0xE1, 0x56, 0x1E, 0xBF, 0xE3, 0x93, 0x9E, 0xBE,
+ 0xEA, 0x90, 0xFB, 0x3B, 0x12, 0x1A, 0x0A, 0x3E, 0x02, 0x97, 0xA0, 0x3E,
+ 0xD4, 0xA2, 0xB2, 0xBD, 0x2C, 0xBF, 0x81, 0xBE, 0xA3, 0x55, 0x77, 0x3F,
+ 0xCC, 0x1A, 0x9C, 0x3E, 0x70, 0xB3, 0x58, 0xBD, 0x85, 0x5F, 0x75, 0xBD,
+ 0xD8, 0x13, 0x2D, 0xBF, 0xC4, 0x7C, 0x42, 0xBD, 0xA7, 0x6A, 0xC7, 0x3F,
+ 0xAA, 0x59, 0xC9, 0x3D, 0x5C, 0xCB, 0xD8, 0xBC, 0x3F, 0x77, 0xCE, 0x3F,
+ 0x7C, 0x35, 0x2F, 0x3E, 0x9F, 0x2D, 0xBD, 0x3D, 0xAB, 0x91, 0x32, 0xBD,
+ 0xCE, 0xBC, 0x35, 0xBF, 0x88, 0xCB, 0x90, 0xBB, 0x71, 0xCF, 0x29, 0xBF,
+ 0xF0, 0x60, 0x01, 0x3F, 0xE9, 0x5F, 0x22, 0x3E, 0x68, 0x55, 0x01, 0x3E,
+ 0xF5, 0xB2, 0x36, 0xBE, 0xBE, 0xC5, 0x09, 0xBF, 0x64, 0x2F, 0x92, 0x3F,
+ 0xB2, 0xF2, 0xDB, 0x3D, 0xEF, 0x76, 0xF4, 0xBD, 0x26, 0xAE, 0x77, 0xBC,
+ 0xBA, 0x74, 0x30, 0xBD, 0xD6, 0x8F, 0x8A, 0x3D, 0x6A, 0xDC, 0x85, 0xBC,
+ 0x5D, 0x39, 0x3E, 0x3B, 0x9A, 0xBA, 0x05, 0xBD, 0xDA, 0x21, 0x31, 0xBD,
+ 0x6F, 0x6A, 0xAA, 0xBC, 0x1B, 0x98, 0x98, 0xBD, 0x20, 0x6F, 0xDB, 0xBA,
+ 0x77, 0x79, 0x12, 0xBC, 0x2D, 0x5B, 0x63, 0xBB, 0x75, 0xE3, 0x25, 0xBE,
+ 0xAC, 0xCB, 0xB5, 0xBC, 0x35, 0xC7, 0xBE, 0x3C, 0xB5, 0xBF, 0x87, 0xBC,
+ 0x7B, 0x7E, 0xD7, 0xBB, 0x30, 0xE3, 0x76, 0x3D, 0x4C, 0x76, 0x66, 0xBD,
+ 0x2D, 0xA0, 0x76, 0x3B, 0x4D, 0xD0, 0x03, 0xBD, 0xB4, 0x6D, 0x0B, 0x3D,
+ 0x27, 0x8F, 0x17, 0xBC, 0xEB, 0x49, 0x4F, 0xBD, 0xAA, 0x4D, 0xCA, 0x3C,
+ 0xF9, 0x31, 0xC8, 0xBB, 0x83, 0x75, 0xE5, 0x3D, 0x79, 0xF1, 0x6D, 0x3C,
+ 0xB4, 0xA8, 0xFD, 0xBC, 0x5C, 0x77, 0xF0, 0x3C, 0xAB, 0x31, 0x11, 0xBD,
+ 0x29, 0x18, 0x43, 0xBF, 0x05, 0xCD, 0xD7, 0x3D, 0x57, 0x71, 0x9A, 0x3E,
+ 0x03, 0x85, 0x80, 0x3F, 0xEF, 0xA5, 0xFC, 0x3B, 0x7A, 0xEA, 0x8A, 0xBD,
+ 0x61, 0xA2, 0xB6, 0xBE, 0xA3, 0xCA, 0x96, 0x3E, 0x28, 0x70, 0x51, 0x3E,
+ 0xEF, 0x10, 0x9A, 0xBE, 0x36, 0x3A, 0x2D, 0x3D, 0xE2, 0x82, 0xAF, 0x3C,
+ 0xBF, 0x28, 0x2C, 0x3F, 0xAE, 0x09, 0xF9, 0x3E, 0x92, 0x07, 0x5D, 0xBE,
+ 0x82, 0x28, 0x8F, 0x3E, 0x08, 0x02, 0x1A, 0xBE, 0x2B, 0xF0, 0x60, 0xBC,
+ 0x59, 0xFF, 0x59, 0xBF, 0xE4, 0xE4, 0x57, 0xBE, 0xB3, 0x77, 0xD7, 0xBD,
+ 0xE6, 0x96, 0xC9, 0xBD, 0xE3, 0x52, 0xB0, 0x3E, 0x48, 0xA6, 0x53, 0xBF,
+ 0x7A, 0x87, 0x8C, 0xBD, 0x3E, 0x77, 0x8B, 0xBE, 0x01, 0xD0, 0x4D, 0xBE,
+ 0xA5, 0x13, 0x6A, 0xBF, 0xA5, 0xC8, 0x87, 0x3E, 0xC8, 0xB7, 0x40, 0x3F,
+ 0xDF, 0x04, 0x37, 0xBF, 0x0C, 0x81, 0x70, 0xBE, 0x55, 0x01, 0x18, 0x3E,
+ 0x82, 0x6D, 0x17, 0x3E, 0x66, 0xD4, 0x93, 0xBE, 0xD2, 0xD3, 0xA2, 0x3F,
+ 0xBE, 0x2F, 0xC9, 0x3D, 0xF6, 0x2D, 0x97, 0xBE, 0x5B, 0x2C, 0xE2, 0xBE,
+ 0xD7, 0x99, 0x1E, 0xBF, 0x25, 0xA1, 0x8D, 0xBE, 0x01, 0x29, 0x61, 0x3E,
+ 0xC1, 0xDD, 0x23, 0xBF, 0xDA, 0x79, 0x39, 0xBE, 0x2A, 0xAF, 0xFB, 0x3E,
+ 0x0B, 0x9F, 0x8E, 0xBF, 0x80, 0x4F, 0xD9, 0xBC, 0x0C, 0xD8, 0x02, 0x3F,
+ 0xBD, 0xED, 0x0F, 0xBF, 0x9B, 0x0D, 0xA8, 0xBE, 0x99, 0x42, 0xAA, 0xBE,
+ 0x44, 0x7F, 0x0A, 0x3F, 0x6F, 0x2E, 0xD5, 0x3D, 0x08, 0x92, 0xBC, 0x3B,
+ 0x5E, 0x0F, 0x71, 0xBE, 0xD3, 0xA7, 0x43, 0xBF, 0x45, 0x21, 0x0C, 0x3F,
+ 0x11, 0x59, 0x1A, 0xBE, 0xED, 0x03, 0x45, 0x3E, 0x02, 0x0A, 0xD4, 0x3C,
+ 0x8E, 0x89, 0xA8, 0xBE, 0xF6, 0x79, 0x7D, 0x3E, 0x40, 0xDA, 0xD4, 0xBD,
+ 0x11, 0x21, 0x9C, 0xBD, 0x83, 0xFC, 0x1B, 0x3F, 0xDA, 0x61, 0x03, 0x3F,
+ 0xA2, 0x70, 0x23, 0x3F, 0x85, 0xD8, 0x01, 0xBE, 0x44, 0xE3, 0x53, 0x3E,
+ 0xCE, 0x3E, 0x26, 0xBE, 0xCA, 0x10, 0x96, 0xBD, 0xB1, 0xCF, 0x0B, 0xBF,
+ 0x10, 0x81, 0x2D, 0x3E, 0x19, 0x37, 0x1A, 0xBE, 0xC8, 0x8E, 0x1A, 0x3F,
+ 0xED, 0xC3, 0x44, 0xBE, 0xC5, 0x79, 0x8A, 0x3E, 0x27, 0x88, 0x6A, 0xBF,
+ 0x5E, 0xD6, 0x3D, 0xBE, 0x67, 0x2E, 0x7B, 0xBD, 0xB3, 0xA3, 0xF7, 0x3D,
+ 0x32, 0xD5, 0xA0, 0xBE, 0xE1, 0x38, 0x22, 0x3F, 0x6A, 0x6E, 0xBD, 0xBE,
+ 0xA3, 0xE7, 0xA0, 0xBC, 0x02, 0xEB, 0xFF, 0x3C, 0x1D, 0x43, 0xFC, 0xBE,
+ 0x1F, 0xFF, 0xBB, 0xBC, 0x20, 0xA3, 0xD5, 0xBE, 0xED, 0x34, 0xCC, 0x3C,
+ 0xBE, 0x36, 0x4E, 0xBD, 0x34, 0x8E, 0xE1, 0x3E, 0x46, 0xBF, 0xF7, 0xBE,
+ 0xE4, 0x87, 0x6A, 0xBF, 0xB0, 0x1A, 0x04, 0xBF, 0xCC, 0x0E, 0xA3, 0x3D,
+ 0x4E, 0x1B, 0x10, 0xBF, 0x4C, 0x43, 0x89, 0xBE, 0xD0, 0x17, 0x72, 0xBD,
+ 0x8A, 0x4D, 0x29, 0xBE, 0xAD, 0xEC, 0x37, 0xBE, 0xE4, 0x85, 0x6B, 0xBE,
+ 0x99, 0x8E, 0xA3, 0xBE, 0x36, 0x32, 0xC7, 0x3E, 0x6E, 0x13, 0x8C, 0xBC,
+ 0x7F, 0xBB, 0x1C, 0x3F, 0xD8, 0x54, 0x9F, 0xBD, 0x0B, 0x83, 0xB8, 0x3D,
+ 0x44, 0x8D, 0xA6, 0xBA, 0x6D, 0xA4, 0x0D, 0xBF, 0xB5, 0x64, 0x28, 0x3F,
+ 0xB3, 0x7E, 0xC2, 0xBB, 0xF2, 0xDB, 0x85, 0x3B, 0xDD, 0xD1, 0xAF, 0x3C,
+ 0x81, 0x7D, 0x50, 0xBF, 0x2D, 0xC7, 0xB6, 0x3E, 0x96, 0xB3, 0xA2, 0xBE,
+ 0x6E, 0xCD, 0x5D, 0x3D, 0x74, 0xAA, 0x07, 0x3E, 0x86, 0x75, 0xCA, 0x3D,
+ 0x62, 0x4F, 0x8C, 0xBD, 0x16, 0xF2, 0xB9, 0x3E, 0x6D, 0x02, 0x85, 0xBE,
+ 0x21, 0x21, 0x5A, 0xBE, 0x15, 0xA6, 0xDD, 0xBD, 0xF4, 0xE9, 0xDA, 0xBE,
+ 0xC3, 0x66, 0xE3, 0x3E, 0xC9, 0x20, 0x2A, 0x3C, 0xDD, 0x9A, 0x19, 0x3D,
+ 0xF9, 0xC2, 0x99, 0x3C, 0xDF, 0x51, 0x15, 0x3F, 0x27, 0x37, 0x67, 0xBF,
+ 0xCF, 0x2F, 0x39, 0xBE, 0x30, 0xFA, 0xDC, 0x3D, 0xEE, 0x03, 0x88, 0x3E,
+ 0x67, 0xD1, 0x31, 0xBD, 0x32, 0xC6, 0x4C, 0xBC, 0x36, 0x38, 0x39, 0x3F,
+ 0x71, 0x6E, 0x9D, 0x3D, 0x9A, 0x00, 0x87, 0xBD, 0x08, 0x4C, 0xCB, 0x3E,
+ 0x1A, 0x85, 0xE7, 0xBE, 0xC7, 0x16, 0xEB, 0x3E, 0x88, 0xC5, 0x9C, 0x3D,
+ 0xE6, 0xAF, 0x24, 0x3F, 0x7B, 0xC2, 0x96, 0x3D, 0x48, 0x97, 0x41, 0xBE,
+ 0xF8, 0xA3, 0x2F, 0xBF, 0x9D, 0x39, 0xB1, 0x3E, 0x26, 0x94, 0xB9, 0xBE,
+ 0x4E, 0x07, 0x83, 0x3F, 0x53, 0x21, 0xF4, 0xBD, 0x5B, 0x00, 0x5C, 0x3E,
+ 0x1B, 0x40, 0x22, 0x3E, 0x15, 0x9A, 0x29, 0x3E, 0x55, 0xF0, 0x95, 0xBE,
+ 0x2F, 0x33, 0x38, 0xBE, 0x6A, 0x93, 0x41, 0xBF, 0x2D, 0x21, 0xEC, 0xBD,
+ 0xAE, 0x05, 0xA1, 0xBE, 0x49, 0xB5, 0xFF, 0x3D, 0x79, 0xBD, 0x39, 0x3D,
+ 0x24, 0x6E, 0x34, 0xBF, 0x07, 0x0D, 0xCF, 0x3C, 0x86, 0x51, 0xA1, 0x37,
+ 0x50, 0xAC, 0xCB, 0xBC, 0xC3, 0xF1, 0xAD, 0x3D, 0x98, 0xD5, 0x8A, 0x3B,
+ 0xA1, 0xA9, 0xCB, 0xBD, 0x75, 0xBE, 0xC6, 0xBD, 0x94, 0x13, 0x27, 0x3E,
+ 0x7A, 0x21, 0xD0, 0xBC, 0x96, 0x8E, 0x7B, 0xBD, 0x70, 0x81, 0x9A, 0x3D,
+ 0x30, 0x76, 0x76, 0x3E, 0x9D, 0x53, 0x38, 0xBD, 0x55, 0xA4, 0xBF, 0x3E,
+ 0xD4, 0x3B, 0x35, 0xBC, 0x12, 0xE2, 0x98, 0x3E, 0x23, 0x31, 0xF1, 0x3D,
+ 0x39, 0xD5, 0xC1, 0xBB, 0x67, 0xBC, 0x0C, 0x3D, 0xDA, 0x62, 0xA1, 0xBD,
+ 0xF9, 0xA1, 0x82, 0xBD, 0xA4, 0xAC, 0x8C, 0xBE, 0x55, 0x25, 0x3E, 0xBD,
+ 0x7D, 0x8F, 0xE8, 0xBB, 0xE2, 0x40, 0x75, 0x3D, 0x4E, 0x61, 0x48, 0xBD,
+ 0xD0, 0xE7, 0xD9, 0x3E, 0x87, 0x89, 0x00, 0x3E, 0x46, 0x95, 0x82, 0x3D,
+ 0xD3, 0x30, 0x11, 0x3E, 0xB1, 0x72, 0xC1, 0x3D, 0x9A, 0x9D, 0xAA, 0x3E,
+ 0x67, 0xFA, 0xDF, 0x3E, 0x69, 0x56, 0x67, 0x3D, 0x7D, 0x9D, 0xA8, 0xBC,
+ 0x37, 0xEF, 0x39, 0x3E, 0xFE, 0xBA, 0xB3, 0xBD, 0x11, 0x52, 0x74, 0x3E,
+ 0xA5, 0x53, 0xAB, 0xBE, 0xA1, 0x6C, 0x9D, 0xBE, 0xDE, 0x60, 0x6D, 0xBD,
+ 0x25, 0xE4, 0x38, 0xBE, 0x10, 0x05, 0x31, 0xBD, 0xCE, 0x63, 0xC7, 0x3D,
+ 0x62, 0xF3, 0x1D, 0xBE, 0x0F, 0x46, 0x52, 0xBF, 0xC4, 0xE4, 0x31, 0xBD,
+ 0x10, 0xDC, 0x57, 0x3D, 0x8E, 0x43, 0x90, 0x3E, 0xD2, 0xA0, 0xE1, 0xBD,
+ 0xEA, 0xCF, 0x08, 0x3E, 0x5E, 0xF1, 0x2A, 0xBE, 0x4A, 0xC6, 0x95, 0x3D,
+ 0x87, 0x9A, 0xA8, 0x3E, 0x5A, 0x04, 0x7C, 0xBE, 0x69, 0xF7, 0x6E, 0x3E,
+ 0xA2, 0x56, 0x5A, 0xBF, 0x74, 0xDB, 0x07, 0xBE, 0x53, 0x28, 0x7A, 0x3D,
+ 0xA7, 0xAD, 0x79, 0xBE, 0xB4, 0x5A, 0xB0, 0x3D, 0xB0, 0xFA, 0xAA, 0x3D,
+ 0xC4, 0x44, 0xB1, 0x3E, 0xCF, 0xE1, 0x8D, 0xBF, 0x5A, 0x31, 0xE8, 0xBA,
+ 0xF4, 0xE8, 0x70, 0x3C, 0x75, 0xE1, 0x1A, 0xBD, 0xC1, 0xD3, 0x4F, 0xBD,
+ 0x41, 0x13, 0x14, 0xBE, 0xE8, 0x96, 0x9F, 0xBE, 0x81, 0xED, 0x93, 0xBC,
+ 0xAD, 0x2C, 0x3F, 0xBE, 0x31, 0xC9, 0x31, 0x3C, 0x74, 0x7C, 0xAE, 0x3D,
+ 0xBA, 0x84, 0x8A, 0xBE, 0x0B, 0x94, 0xA4, 0x3E, 0x52, 0xC0, 0x8F, 0x3D,
+ 0xEB, 0x6D, 0x00, 0xBE, 0x42, 0x11, 0x8F, 0x3B, 0xC3, 0x1F, 0x3C, 0x3E,
+ 0x88, 0x71, 0x25, 0x3F, 0x82, 0xE5, 0x17, 0x3D, 0x1A, 0xFB, 0xFA, 0xBD,
+ 0xC1, 0x6D, 0x35, 0x3E, 0xF6, 0x50, 0xAF, 0x3D, 0x29, 0x99, 0x04, 0x3F,
+ 0x86, 0x67, 0x99, 0xBD, 0xC3, 0x21, 0x94, 0x3D, 0xF2, 0xF9, 0x46, 0xBD,
+ 0xA3, 0x96, 0xD3, 0x3D, 0x51, 0xF0, 0xB8, 0xBF, 0xFF, 0x44, 0x3E, 0xBE,
+ 0x7F, 0x4A, 0xFD, 0x3C, 0xCD, 0x17, 0x9A, 0xBE, 0x1E, 0x4A, 0x7A, 0xBD,
+ 0x12, 0x5A, 0x34, 0x3F, 0x13, 0xAC, 0x8C, 0x3E, 0x47, 0xFA, 0x23, 0x3C,
+ 0xB1, 0x74, 0x9E, 0xBD, 0x27, 0x7F, 0xC7, 0xBB, 0x9A, 0xF7, 0x91, 0x3D,
+ 0x2B, 0xF1, 0x47, 0xBE, 0xC4, 0xDB, 0x8C, 0xBE, 0x62, 0xED, 0x83, 0x3E,
+ 0xF0, 0x7F, 0xB8, 0x3D, 0xCA, 0x08, 0x17, 0xBE, 0x73, 0x72, 0x25, 0x3F,
+ 0x52, 0xCB, 0x03, 0xBF, 0x65, 0x72, 0xEF, 0xBE, 0xA0, 0xB0, 0x91, 0x3E,
+ 0x64, 0xE5, 0x47, 0x3D, 0x50, 0x61, 0x71, 0xBE, 0x06, 0x4C, 0x0A, 0x3E,
+ 0x4E, 0x34, 0xE7, 0x3B, 0xFA, 0x30, 0x64, 0x3D, 0xA0, 0x65, 0x71, 0xBE,
+ 0x36, 0x19, 0x72, 0x3E, 0x53, 0xE7, 0x10, 0x3D, 0xF4, 0x50, 0x65, 0xBD,
+ 0x14, 0xC9, 0x9A, 0x3E, 0xBB, 0x2A, 0xDE, 0x3E, 0xDD, 0x59, 0x95, 0x3D,
+ 0x26, 0x5A, 0x14, 0x3F, 0x47, 0xCF, 0x0E, 0xBE, 0xA4, 0x02, 0x0F, 0xBE,
+ 0xC1, 0x88, 0x99, 0x3F, 0x26, 0xA1, 0x14, 0xBD, 0x95, 0xDC, 0xEC, 0xBF,
+ 0x14, 0x33, 0x9E, 0xBE, 0x66, 0xB5, 0xE5, 0xBD, 0x12, 0xAA, 0x28, 0x3E,
+ 0xF4, 0x2F, 0x1F, 0x3F, 0x03, 0xD3, 0x4B, 0xBD, 0xA9, 0xEB, 0x11, 0x3F,
+ 0x33, 0xB8, 0x71, 0xBE, 0xEA, 0x48, 0xB9, 0x3E, 0x1A, 0x28, 0x12, 0xBE,
+ 0x94, 0x72, 0xBE, 0x3E, 0xAD, 0xB2, 0xD5, 0xBF, 0xF3, 0x2B, 0x50, 0xBE,
+ 0xC6, 0xB8, 0xF4, 0xBE, 0xFB, 0xBA, 0x5F, 0xBF, 0x27, 0xB3, 0x4A, 0xBE,
+ 0x2F, 0x47, 0x9E, 0x3F, 0xB3, 0x7C, 0xEE, 0x3C, 0x39, 0x42, 0x57, 0x3E,
+ 0x44, 0x4B, 0x97, 0x3E, 0x64, 0x7C, 0x58, 0xBE, 0xEA, 0x56, 0x7D, 0xBE,
+ 0x26, 0xAE, 0x12, 0x3F, 0xB6, 0x40, 0x27, 0xBD, 0xB9, 0x47, 0x87, 0xBE,
+ 0x2F, 0x47, 0x4A, 0x3F, 0xFD, 0x1E, 0x9D, 0xBE, 0xB3, 0xF2, 0xE6, 0xBD,
+ 0x1D, 0x44, 0xD2, 0x3E, 0x9F, 0x57, 0x0A, 0x3F, 0x10, 0xAB, 0x46, 0x3E,
+ 0x01, 0x08, 0x4D, 0xBE, 0x3C, 0x1B, 0x13, 0x3C, 0xC5, 0xBD, 0x37, 0xBE,
+ 0x5E, 0x31, 0x90, 0xBC, 0xB0, 0xB0, 0x44, 0xBC, 0xB0, 0xAD, 0x07, 0xBE,
+ 0x46, 0x6B, 0x9C, 0x3D, 0x66, 0x65, 0x02, 0x3E, 0x82, 0xE3, 0x5B, 0x3D,
+ 0x99, 0xDD, 0x72, 0xBD, 0x7C, 0x63, 0x03, 0x3D, 0xE3, 0x5B, 0x7C, 0x3D,
+ 0xEF, 0x1D, 0x23, 0x3E, 0xBA, 0x2B, 0x5A, 0xBE, 0x9C, 0x7B, 0x65, 0xBE,
+ 0xCD, 0xAB, 0xF4, 0xBD, 0x84, 0x13, 0x05, 0x3C, 0x8F, 0x20, 0xC2, 0xBB,
+ 0xED, 0x85, 0x4A, 0xBE, 0x68, 0x5B, 0x3A, 0x3D, 0x1C, 0xAF, 0x70, 0xBD,
+ 0x2D, 0x1A, 0xF7, 0xBD, 0x1B, 0x32, 0x1E, 0x3E, 0xC8, 0x43, 0x6B, 0x3D,
+ 0x75, 0x64, 0x03, 0x3E, 0xE5, 0x74, 0xC7, 0xBD, 0x2A, 0xA9, 0xD7, 0xBE,
+ 0x94, 0xAE, 0xEC, 0xBC, 0x79, 0xCF, 0x36, 0xBF, 0xC1, 0x7F, 0x08, 0xBD,
+ 0xDD, 0xBD, 0xC5, 0x3C, 0x35, 0x03, 0x04, 0xBE, 0x3B, 0xE0, 0x0D, 0x3C,
+ 0x6B, 0xF0, 0x4B, 0xBE, 0x1C, 0x7A, 0xBF, 0xBD, 0xAA, 0x76, 0x9C, 0xBD,
+ 0x05, 0x3E, 0x5C, 0x3C, 0xB3, 0xBE, 0x76, 0xBC, 0x37, 0x9A, 0x2D, 0x3C,
+ 0xF6, 0x2D, 0x5B, 0x3C, 0xE6, 0x8B, 0xFC, 0x3D, 0x90, 0x0B, 0x6A, 0xBD,
+ 0x69, 0x13, 0x01, 0x3C, 0x7E, 0xF8, 0x12, 0x3E, 0x31, 0xF7, 0xCC, 0xBD,
+ 0xDD, 0xFE, 0x1D, 0xBD, 0x35, 0xEB, 0x3B, 0x3C, 0x73, 0x7A, 0xA8, 0xBC,
+ 0xAA, 0x9C, 0x82, 0x3C, 0xB2, 0xA3, 0xB1, 0xBC, 0x99, 0xC8, 0xC3, 0xBC,
+ 0x5F, 0x3A, 0xF4, 0x3C, 0x08, 0x00, 0xEB, 0xBC, 0xF2, 0x57, 0x80, 0x3D,
+ 0xFE, 0x09, 0x8C, 0x3D, 0xBF, 0xB1, 0x28, 0xBD, 0x48, 0xD2, 0x41, 0x3D,
+ 0xBC, 0xDD, 0x97, 0xBC, 0x44, 0x7C, 0x1A, 0x3B, 0x77, 0x12, 0x9F, 0xBD,
+ 0x8D, 0x6A, 0x80, 0xBE, 0x2F, 0xA2, 0x1A, 0x3D, 0x16, 0x1C, 0x82, 0xBD,
+ 0xDA, 0x3C, 0x33, 0x3E, 0x9C, 0x91, 0x9B, 0x3E, 0x80, 0x5F, 0x7C, 0xBF,
+ 0xDA, 0xFC, 0xA9, 0x3E, 0xC6, 0xD9, 0x47, 0x3E, 0xCE, 0x76, 0x0E, 0x3C,
+ 0xD5, 0x7E, 0x8A, 0xBE, 0xEC, 0x4B, 0xD5, 0xBE, 0x28, 0xFA, 0xB0, 0xBE,
+ 0x86, 0x7F, 0x5A, 0x3E, 0x1F, 0x02, 0xA9, 0x3C, 0xE3, 0x2A, 0x12, 0x3E,
+ 0x0A, 0x23, 0x2E, 0xBE, 0x66, 0xFB, 0xF5, 0xBD, 0x79, 0x1B, 0x84, 0xBE,
+ 0x5E, 0xEA, 0xA0, 0xBE, 0x02, 0x46, 0x92, 0xBF, 0xF8, 0x98, 0x55, 0x3D,
+ 0x9A, 0x80, 0x1F, 0xBB, 0x6B, 0x9F, 0x64, 0xBF, 0x5D, 0xAE, 0x62, 0x3D,
+ 0x36, 0x8E, 0x91, 0x3E, 0x20, 0xEE, 0x58, 0xBF, 0x4B, 0x0D, 0x5C, 0x3E,
+ 0xC1, 0x60, 0x4B, 0x3E, 0x50, 0x90, 0xB6, 0xBD, 0x6A, 0xDF, 0x15, 0xBF,
+ 0x7C, 0x16, 0xA8, 0x3F, 0xC0, 0x9D, 0x29, 0x3F, 0x5E, 0x4A, 0x53, 0xBF,
+ 0xDC, 0xAB, 0x8A, 0x3F, 0x4E, 0xD1, 0xEE, 0x3E, 0x7E, 0x70, 0xA6, 0x3C,
+ 0xF0, 0x79, 0x04, 0xBD, 0x2A, 0x4B, 0xD7, 0x3D, 0x52, 0x83, 0x7D, 0xBB,
+ 0x0F, 0x37, 0xBC, 0x3B, 0xF7, 0xB4, 0x13, 0xBD, 0x19, 0x99, 0x30, 0x3C,
+ 0x3A, 0x61, 0x49, 0x3D, 0xE8, 0x02, 0x9C, 0xBD, 0xDF, 0xDE, 0xED, 0x3C,
+ 0x43, 0xB0, 0x5C, 0xBC, 0x9B, 0xBA, 0xC7, 0x3A, 0x91, 0x10, 0x43, 0xBD,
+ 0x93, 0xBC, 0xC7, 0x3C, 0xA2, 0xC0, 0xAD, 0xBB, 0x96, 0xEF, 0x1C, 0xBC,
+ 0xE8, 0xF9, 0xCA, 0xBC, 0x54, 0x85, 0x6A, 0x37, 0xD5, 0xA7, 0xBD, 0x3C,
+ 0x20, 0xF2, 0x3F, 0xBD, 0xA5, 0xEA, 0x87, 0x3B, 0xD2, 0x0F, 0x0C, 0x3D,
+ 0xED, 0xD4, 0x14, 0x3C, 0x27, 0xAE, 0x06, 0x3B, 0x7A, 0x6F, 0xDE, 0xBB,
+ 0xF3, 0x26, 0x15, 0x3C, 0x58, 0x71, 0x81, 0x3B, 0xEE, 0x23, 0x0B, 0xBE,
+ 0x88, 0x40, 0x13, 0xBD, 0x1D, 0x94, 0x77, 0xBD, 0x72, 0x06, 0xBA, 0x3C,
+ 0xF7, 0x61, 0xAA, 0x3D, 0xEC, 0x66, 0x8A, 0x3D, 0x1E, 0xF1, 0x37, 0x3C,
+ 0x8D, 0x0A, 0xD0, 0xBC, 0x18, 0x81, 0xE4, 0x3B, 0xC3, 0x0B, 0x11, 0xBC,
+ 0x58, 0x64, 0x07, 0xBC, 0xE8, 0x9C, 0x45, 0xBD, 0x91, 0x3C, 0x3D, 0x3C,
+ 0x1A, 0x38, 0x20, 0x3D, 0xA3, 0x89, 0xB8, 0x3C, 0x11, 0x51, 0x9D, 0xBC,
+ 0x53, 0x06, 0x35, 0x3B, 0xCD, 0x75, 0xA5, 0x3C, 0xB3, 0x61, 0xAF, 0x3C,
+ 0x24, 0x85, 0x6E, 0xBD, 0xED, 0x82, 0xB7, 0xBC, 0x70, 0xB3, 0x0B, 0xBD,
+ 0x27, 0x86, 0x99, 0x3C, 0x98, 0x78, 0xC3, 0x3C, 0x00, 0xE6, 0x74, 0xBD,
+ 0x33, 0x83, 0x89, 0x3C, 0xFC, 0x5A, 0xE8, 0x3C, 0xD0, 0x53, 0xDC, 0xBC,
+ 0x3D, 0x78, 0x07, 0x3D, 0xD0, 0x4D, 0x11, 0xBD, 0xCE, 0xC8, 0xC2, 0x3C,
+ 0x55, 0xE8, 0x79, 0xBA, 0x12, 0xF9, 0xC2, 0xBD, 0x8D, 0x96, 0x00, 0x39,
+ 0xD6, 0x96, 0x51, 0xBE, 0x82, 0x87, 0x8B, 0xBC, 0xE7, 0xFE, 0x4A, 0x3C,
+ 0x32, 0x95, 0x43, 0x3F, 0x0C, 0x9E, 0x60, 0xBD, 0x57, 0x1D, 0xB3, 0x3F,
+ 0xDD, 0xD6, 0xEE, 0xBE, 0xC0, 0x3E, 0xFA, 0x3C, 0x0E, 0xC3, 0x31, 0x3D,
+ 0x44, 0xCD, 0x3E, 0x3E, 0xBA, 0x9F, 0x65, 0x3E, 0x70, 0x89, 0xC3, 0x3D,
+ 0x0D, 0xF3, 0xBE, 0xBE, 0x4B, 0x5C, 0x25, 0xBE, 0xC7, 0x85, 0xF6, 0x3C,
+ 0xEF, 0x75, 0x23, 0x3E, 0xEE, 0x49, 0x11, 0xBF, 0x0C, 0x91, 0xAC, 0x3E,
+ 0x2B, 0x42, 0xBF, 0xBE, 0x28, 0x3C, 0x38, 0x3E, 0xAD, 0x73, 0x9C, 0x3B,
+ 0xB9, 0x34, 0x24, 0x3F, 0xEB, 0x8E, 0x1F, 0x3E, 0xFE, 0x10, 0x7B, 0x3C,
+ 0x80, 0xB2, 0x85, 0x3C, 0xC4, 0x37, 0x6A, 0x3E, 0xA1, 0x54, 0x40, 0xBB,
+ 0xE0, 0xE1, 0x98, 0x3E, 0xB0, 0xB7, 0x9F, 0x3C, 0xB6, 0xF5, 0x4B, 0x3D,
+ 0x7B, 0xF2, 0xEB, 0x3D, 0xE6, 0xA7, 0x5C, 0x3D, 0xF9, 0x68, 0x2F, 0xBD,
+ 0x76, 0x33, 0xE8, 0xBE, 0x22, 0x52, 0x84, 0xBC, 0x3F, 0xF3, 0x26, 0xBC,
+ 0x92, 0x7B, 0x8E, 0xBC, 0x1D, 0x3C, 0xEC, 0xBC, 0x48, 0x48, 0x77, 0x3D,
+ 0xE0, 0xED, 0x3E, 0xBB, 0x2F, 0x52, 0x84, 0xBC, 0x8C, 0x9E, 0x4A, 0xBC,
+ 0xC1, 0x68, 0x67, 0xBB, 0xC1, 0x93, 0x69, 0xBD, 0x84, 0x27, 0x0F, 0x3D,
+ 0xF3, 0xD7, 0xE0, 0xBC, 0x16, 0xC2, 0xCA, 0x3B, 0x6F, 0x53, 0x87, 0x3B,
+ 0xC9, 0x30, 0xA0, 0x3C, 0x2F, 0x62, 0x3D, 0x3C, 0xB6, 0xAC, 0x55, 0x3C,
+ 0x95, 0xF7, 0x98, 0xBC, 0x19, 0x57, 0x08, 0x3B, 0x26, 0x8C, 0x30, 0xBC,
+ 0x43, 0xF8, 0x50, 0xBD, 0x32, 0x2D, 0x68, 0x3B, 0xDF, 0xB8, 0x3B, 0x3C,
+ 0x58, 0x8A, 0x4A, 0x3D, 0xD7, 0x7B, 0x9F, 0xB6, 0xDF, 0x27, 0xFD, 0xBC,
+ 0xBB, 0xE8, 0xA8, 0x3B, 0xCF, 0xE0, 0x10, 0xBC, 0xAA, 0x35, 0x05, 0xBC,
+ 0x20, 0xBF, 0x0A, 0x3B, 0x31, 0x4D, 0x91, 0xBD, 0x93, 0x4C, 0x9F, 0x3B,
+ 0x10, 0x44, 0xDE, 0xBB, 0xA8, 0x1F, 0xF2, 0x3E, 0xD4, 0xE5, 0x89, 0x3C,
+ 0xAF, 0x66, 0xF1, 0x3F, 0x31, 0x14, 0xBF, 0xBE, 0x89, 0x5C, 0xB8, 0x3D,
+ 0x0D, 0xC4, 0x90, 0x3D, 0x1A, 0xD5, 0xB0, 0x3E, 0x7A, 0xAF, 0xE3, 0x3E,
+ 0xB2, 0x1B, 0x0E, 0xBF, 0xFC, 0x78, 0x58, 0x3E, 0xAD, 0x58, 0x8F, 0x3E,
+ 0xA6, 0x8D, 0x24, 0x3E, 0xD8, 0x52, 0xE3, 0x3D, 0x3D, 0x3C, 0x8B, 0xBF,
+ 0x3F, 0x23, 0x0E, 0xBF, 0x11, 0x5A, 0x1F, 0xBE, 0x87, 0x01, 0x8C, 0x3F,
+ 0x7E, 0xB0, 0x1B, 0x3D, 0x06, 0x2B, 0x7A, 0x3E, 0x4E, 0xEF, 0x85, 0xBF,
+ 0x9B, 0x1E, 0x55, 0x3E, 0x73, 0xD1, 0xA1, 0x3E, 0xD5, 0xCE, 0x08, 0x3F,
+ 0x2D, 0x2F, 0x64, 0x3C, 0xE5, 0xB4, 0x62, 0xBE, 0x26, 0x07, 0x90, 0x3D,
+ 0xDF, 0x7D, 0x8C, 0xBE, 0xF2, 0xC0, 0x96, 0x3E, 0x4A, 0x38, 0x24, 0x3F,
+ 0x1A, 0x94, 0xFC, 0xBE, 0x84, 0x04, 0x8F, 0x3C, 0x8C, 0x2A, 0xA5, 0x3E,
+ 0xCD, 0x82, 0x19, 0x3F, 0x11, 0xB3, 0xFE, 0x3E, 0x6A, 0x64, 0x93, 0xBE,
+ 0xA8, 0xFF, 0x20, 0x3E, 0x1A, 0x42, 0xA3, 0xBC, 0x8F, 0x03, 0x6C, 0x3E,
+ 0x41, 0x5B, 0xC9, 0xBD, 0xFA, 0x8C, 0x9D, 0xBD, 0x8C, 0x22, 0x5B, 0x3A,
+ 0x86, 0x60, 0x44, 0x3F, 0x99, 0xA4, 0xA2, 0x3E, 0x8A, 0x3B, 0xE4, 0xBC,
+ 0x59, 0x93, 0x01, 0xBF, 0xB2, 0xDA, 0xD1, 0xBF, 0xE9, 0x4A, 0x64, 0xBE,
+ 0xE9, 0x44, 0x71, 0x3F, 0xF2, 0xFE, 0x73, 0xBE, 0xB8, 0xC2, 0x40, 0x3C,
+ 0xD1, 0x79, 0x87, 0xBE, 0xF9, 0xB7, 0xC9, 0xBD, 0x03, 0xF6, 0xB2, 0x3E,
+ 0x70, 0x3D, 0xE7, 0xBB, 0xAC, 0xB6, 0x7E, 0xBF, 0xBF, 0xA1, 0x9E, 0x3E,
+ 0x60, 0xEF, 0xAA, 0x3E, 0x25, 0x6D, 0x40, 0x3E, 0x44, 0xB2, 0x6E, 0x3E,
+ 0x2E, 0x8D, 0x8C, 0x3F, 0x46, 0x17, 0x0F, 0x3C, 0x29, 0x7C, 0xF0, 0xBE,
+ 0x60, 0xC8, 0x3A, 0x3F, 0x17, 0x07, 0x23, 0x3E, 0xA4, 0xC3, 0x5D, 0xBE,
+ 0xA2, 0xB9, 0x7C, 0xBD, 0x2F, 0x8D, 0x0F, 0x3E, 0x3D, 0xB9, 0x7E, 0x3E,
+ 0x3A, 0x8C, 0x6B, 0xBC, 0x0E, 0xF1, 0x41, 0xBC, 0xF8, 0x63, 0x0A, 0x3C,
+ 0xDD, 0x9C, 0x41, 0xBE, 0x1A, 0xF5, 0x13, 0xBE, 0x43, 0xAC, 0x0E, 0x3C,
+ 0x8A, 0xCD, 0x0F, 0xBE, 0x8C, 0xAD, 0xA0, 0xBD, 0xB3, 0x2B, 0x64, 0x3D,
+ 0x4F, 0x28, 0x31, 0x3E, 0x86, 0x5E, 0x2B, 0xBE, 0xD1, 0xA7, 0x88, 0x3D,
+ 0x1C, 0xDD, 0xFE, 0x3D, 0x9A, 0x05, 0x43, 0xBA, 0x5F, 0xA6, 0x5B, 0xBE,
+ 0xBA, 0x4C, 0x21, 0xBC, 0xCD, 0x2F, 0x04, 0x3D, 0x64, 0xB5, 0xD6, 0xBD,
+ 0x80, 0x8E, 0xA7, 0x3E, 0x5D, 0xCF, 0x21, 0xBE, 0xC2, 0x88, 0xCA, 0x3D,
+ 0x71, 0x32, 0x76, 0x3D, 0x77, 0x79, 0x01, 0x3C, 0x85, 0x90, 0x99, 0x3E,
+ 0x9E, 0x64, 0x4C, 0xBD, 0x22, 0x1E, 0x48, 0xBE, 0x9C, 0x4C, 0xBC, 0x3C,
+ 0x62, 0x19, 0x47, 0xBE, 0xE2, 0x0B, 0x1A, 0x3D, 0x4B, 0xAD, 0x45, 0xBD,
+ 0xF8, 0xAA, 0xF8, 0x3C, 0xE6, 0x8A, 0x8B, 0x3B, 0x0D, 0x4A, 0x3F, 0x3C,
+ 0xDB, 0xF6, 0x65, 0x3B, 0xBF, 0xC1, 0x1A, 0x3C, 0xE2, 0xB5, 0x24, 0x3D,
+ 0xEE, 0x60, 0x41, 0xBC, 0x7D, 0xA3, 0x97, 0xBD, 0xFF, 0xF9, 0x27, 0x3D,
+ 0x7D, 0x4D, 0x2E, 0xBC, 0xAB, 0xF2, 0x47, 0xBD, 0x14, 0x2C, 0x92, 0xBD,
+ 0x61, 0x72, 0xA3, 0xBC, 0x8A, 0x90, 0xBA, 0xBC, 0x79, 0x8A, 0xE0, 0xBA,
+ 0xFF, 0x38, 0x92, 0xBB, 0x14, 0x6C, 0xFB, 0x3C, 0xD3, 0x3B, 0x96, 0xBC,
+ 0x5B, 0x43, 0x1B, 0xBC, 0x01, 0xB7, 0x9A, 0x3C, 0x85, 0x6A, 0x83, 0xBD,
+ 0x61, 0xEF, 0xB0, 0xBC, 0x43, 0x48, 0x81, 0x3D, 0xC8, 0x58, 0xAB, 0xBB,
+ 0x5F, 0x29, 0x7E, 0x3C, 0x0E, 0xE7, 0xB4, 0xBC, 0x1E, 0xF8, 0x18, 0x3D,
+ 0x42, 0x91, 0xB3, 0xBD, 0xA6, 0x87, 0xDC, 0xBC, 0x86, 0x56, 0x17, 0x3C,
+ 0xAE, 0xC5, 0x16, 0xBF, 0xBD, 0xA1, 0xA4, 0xBB, 0x63, 0x9B, 0x3A, 0xBC,
+ 0xA4, 0x97, 0xA1, 0x3E, 0x3A, 0x32, 0xD5, 0xBC, 0x17, 0xDA, 0xAD, 0x3D,
+ 0x88, 0x95, 0x1F, 0xBE, 0xAE, 0xD5, 0xFE, 0xBD, 0x06, 0x42, 0xE6, 0x3D,
+ 0x45, 0x91, 0x10, 0xBD, 0x51, 0xB6, 0x81, 0xBE, 0x20, 0x08, 0x8B, 0x3C,
+ 0xC0, 0xA7, 0xBE, 0xBD, 0xDE, 0x10, 0x37, 0xBE, 0xA7, 0x14, 0xE6, 0xBD,
+ 0xCC, 0x75, 0x4E, 0xBD, 0x44, 0xD1, 0x33, 0xBE, 0x66, 0x7E, 0x1F, 0x3C,
+ 0x36, 0x17, 0x6B, 0xBF, 0x87, 0x30, 0xBE, 0xBC, 0x60, 0xAB, 0xA2, 0xBC,
+ 0x50, 0x2A, 0x07, 0xBC, 0x1C, 0x4F, 0x8E, 0xBD, 0x7D, 0x0D, 0x0D, 0xBC,
+ 0x66, 0x67, 0x85, 0xBE, 0xCF, 0xCA, 0x38, 0xBE, 0x7D, 0x37, 0xB9, 0xBD,
+ 0x7D, 0x9F, 0xE3, 0x3C, 0x93, 0x4A, 0x9D, 0xBD, 0xE4, 0x97, 0xED, 0x3E,
+ 0x14, 0x5B, 0xD1, 0xBD, 0xDB, 0x0B, 0x28, 0xBD, 0xD2, 0x4A, 0x10, 0xBF,
+ 0xB2, 0xD9, 0x12, 0xBF, 0x4A, 0x25, 0xF9, 0x3E, 0x79, 0xE8, 0xEB, 0xBD,
+ 0xA7, 0xD2, 0x8E, 0xBE, 0x7D, 0xAB, 0xF8, 0xBD, 0x22, 0xA8, 0xD8, 0xBD,
+ 0x2F, 0x44, 0xA2, 0xBE, 0x0F, 0xE9, 0xDD, 0xBC, 0x9E, 0x96, 0x1B, 0xBE,
+ 0xEC, 0x28, 0x97, 0xBF, 0xE1, 0xD0, 0x06, 0xBE, 0xF6, 0xEA, 0xEF, 0xBE,
+ 0x79, 0x53, 0x38, 0x3F, 0x74, 0x81, 0xB7, 0xBE, 0x9C, 0x55, 0xF7, 0xBD,
+ 0xC3, 0x74, 0x80, 0xBE, 0xEC, 0x1B, 0x24, 0xBD, 0x16, 0x99, 0x5F, 0xBC,
+ 0x8C, 0xC6, 0x94, 0x3E, 0x62, 0x7E, 0x92, 0x3B, 0x82, 0x0B, 0x75, 0xBE,
+ 0x41, 0xB5, 0xBD, 0x3E, 0x55, 0x4A, 0x4B, 0xBF, 0xD9, 0x88, 0x5E, 0xBF,
+ 0x55, 0x62, 0x81, 0xBD, 0x98, 0x56, 0xBA, 0x3B, 0x92, 0xEA, 0xDE, 0x3E,
+ 0x87, 0x36, 0x29, 0x3E, 0xAD, 0xAD, 0x4D, 0xBE, 0xC1, 0xBD, 0x5D, 0x3F,
+ 0x86, 0x26, 0x65, 0xBE, 0x58, 0x9A, 0xC2, 0xBE, 0xC2, 0xBD, 0x3F, 0xBE,
+ 0xC0, 0x13, 0x32, 0xBF, 0x86, 0xE6, 0x0C, 0xBF, 0xB5, 0x28, 0x04, 0xBD,
+ 0xF8, 0x0A, 0xAE, 0x3D, 0x68, 0xC1, 0x96, 0x3E, 0x82, 0xD6, 0xAD, 0x3E,
+ 0x6B, 0x8B, 0xD8, 0x3C, 0xD7, 0xC3, 0x50, 0xBE, 0xF4, 0x6D, 0xE0, 0xBD,
+ 0x79, 0x12, 0xB2, 0x3D, 0x20, 0xBF, 0x4F, 0xBE, 0xA9, 0x6B, 0xE3, 0x3E,
+ 0xEE, 0x18, 0x12, 0x3F, 0xA7, 0x8E, 0x56, 0xBE, 0x81, 0x95, 0xC6, 0x3D,
+ 0x94, 0x4E, 0x0D, 0x3D, 0x75, 0xF2, 0x8E, 0xBD, 0x48, 0xFF, 0x0B, 0x3E,
+ 0x51, 0x31, 0x65, 0xBD, 0x1B, 0x42, 0xB1, 0x3D, 0xDC, 0xBA, 0xFD, 0x3E,
+ 0x60, 0x5F, 0x9B, 0x3E, 0x09, 0x93, 0x26, 0x3F, 0x2C, 0x53, 0x78, 0x3E,
+ 0xAC, 0xA2, 0xEC, 0x3D, 0x6F, 0xB1, 0x79, 0xBE, 0x4C, 0x23, 0x88, 0xBD,
+ 0xA6, 0x74, 0x16, 0x3F, 0xB9, 0x1B, 0x0A, 0xBE, 0x9E, 0x3C, 0xB8, 0x3C,
+ 0xC9, 0x40, 0xA4, 0xBE, 0xF5, 0x81, 0x2F, 0x3E, 0x0D, 0x78, 0xAC, 0x3F,
+ 0x24, 0x96, 0x20, 0x3F, 0xAE, 0xC4, 0xE7, 0x3D, 0x25, 0x22, 0x29, 0x3E,
+ 0x72, 0xBB, 0x96, 0x3E, 0x85, 0xEB, 0x11, 0xBF, 0x05, 0xF5, 0x8F, 0x3D,
+ 0xCF, 0x7B, 0x60, 0x3D, 0xBA, 0x47, 0xEE, 0x3D, 0x0A, 0x3A, 0x77, 0x3D,
+ 0x5D, 0x36, 0x80, 0x3E, 0x9B, 0x51, 0x1C, 0x3F, 0xE4, 0x62, 0x54, 0xBF,
+ 0x3F, 0x23, 0xF9, 0x3D, 0x75, 0x03, 0xA6, 0xBF, 0xE6, 0x65, 0xAE, 0x3D,
+ 0x61, 0xD4, 0xFC, 0xBE, 0x7D, 0x99, 0x1B, 0xBE, 0xA7, 0x82, 0x9C, 0x3B,
+ 0x0D, 0x1F, 0xBD, 0xBE, 0x94, 0x6E, 0xEC, 0x3E, 0x2E, 0x42, 0xC7, 0x3C,
+ 0xC1, 0xF0, 0x8B, 0x3E, 0x33, 0x6C, 0x8C, 0xBE, 0x8F, 0x14, 0x0F, 0xBC,
+ 0x42, 0x99, 0xA3, 0xBF, 0xAC, 0x9A, 0x1D, 0x3E, 0xE4, 0xF2, 0x53, 0x3F,
+ 0x8B, 0x78, 0x75, 0xBF, 0x4F, 0x06, 0xBB, 0xBE, 0xD4, 0xA8, 0x89, 0xBC,
+ 0xF7, 0x7B, 0x0C, 0x3D, 0x7C, 0x2E, 0x25, 0xBE, 0x1A, 0x57, 0xA2, 0xBC,
+ 0x7C, 0xBF, 0x5B, 0xBD, 0x2B, 0xB4, 0x41, 0x3D, 0x9F, 0x0D, 0x91, 0x3D,
+ 0x0A, 0x42, 0x8F, 0x3C, 0xF1, 0x0E, 0x21, 0xBD, 0x62, 0x00, 0xC3, 0x3C,
+ 0x1B, 0x49, 0x5E, 0x3C, 0xC3, 0x9B, 0x1E, 0xBD, 0xBB, 0x03, 0x82, 0xBD,
+ 0x28, 0x46, 0x50, 0x3E, 0x9B, 0xC6, 0x59, 0x3E, 0xF6, 0x40, 0xC9, 0x3C,
+ 0xF1, 0x7F, 0x9A, 0x3C, 0x37, 0x96, 0x9C, 0xBB, 0x5B, 0x88, 0x8D, 0xBC,
+ 0x62, 0x62, 0xFC, 0x3D, 0x30, 0xBB, 0x7A, 0xBC, 0x2C, 0x0B, 0x27, 0x3D,
+ 0x1E, 0x2F, 0xAA, 0x3D, 0x71, 0xC1, 0x32, 0xBC, 0x4A, 0x0C, 0x65, 0xBE,
+ 0xDF, 0x0D, 0xB4, 0xBD, 0x57, 0x7D, 0x5B, 0x3D, 0x74, 0x80, 0x21, 0x3E,
+ 0x82, 0x81, 0x09, 0xBE, 0xB7, 0xD1, 0xD0, 0x3D, 0x83, 0xBB, 0xFC, 0x3D,
+ 0x70, 0x91, 0xFA, 0x3B, 0x7F, 0xD2, 0x43, 0xBD, 0x3F, 0x7D, 0xC8, 0xBC,
+ 0x4A, 0xA9, 0x89, 0xBE, 0x33, 0xAE, 0x14, 0x3E, 0xAC, 0x3B, 0x21, 0xBE,
+ 0xF5, 0xD5, 0x07, 0x3E, 0x29, 0xAA, 0xD5, 0xBD, 0xD3, 0x63, 0x8D, 0x3D,
+ 0x36, 0x64, 0xEF, 0x3C, 0x17, 0x3A, 0xB9, 0x3D, 0x04, 0x8D, 0xE4, 0xBD,
+ 0xA9, 0xD3, 0x5E, 0x3D, 0x49, 0x70, 0xBC, 0x3D, 0x71, 0x2C, 0xB5, 0xBD,
+ 0xAE, 0xD5, 0x45, 0x3D, 0x55, 0x84, 0x96, 0x3D, 0x9A, 0xC0, 0x00, 0xBD,
+ 0xE8, 0xED, 0x17, 0x35, 0xA8, 0x56, 0x06, 0x3D, 0x2B, 0x78, 0xAA, 0x3D,
+ 0xC3, 0xF6, 0x50, 0xBC, 0xF7, 0x73, 0xD9, 0xBD, 0x9A, 0x54, 0xC1, 0x3D,
+ 0x72, 0xEE, 0x81, 0xBC, 0xA6, 0xFB, 0x21, 0xBE, 0x07, 0x3E, 0x28, 0x3E,
+ 0x77, 0x9B, 0x51, 0x3D, 0x5F, 0xBD, 0x96, 0x3E, 0x98, 0x95, 0x96, 0xBC,
+ 0x39, 0x0E, 0xD9, 0xBE, 0x58, 0xA8, 0x55, 0x3E, 0xC6, 0xF3, 0x85, 0xBE,
+ 0xB1, 0x9B, 0x7B, 0x3E, 0xBE, 0x49, 0xDD, 0xBD, 0x31, 0xA5, 0x91, 0xBE,
+ 0xEA, 0x92, 0x6B, 0xBE, 0xC9, 0x08, 0xC0, 0x3D, 0xA6, 0xA1, 0x37, 0x3A,
+ 0xAE, 0xE9, 0x25, 0x3C, 0xF2, 0xDA, 0x1D, 0xBD, 0x14, 0x52, 0x6D, 0xBC,
+ 0xA9, 0xCE, 0x20, 0xBC, 0xC6, 0x67, 0x45, 0x3D, 0x47, 0x0E, 0xA9, 0x3C,
+ 0x74, 0xB7, 0x30, 0xBD, 0x95, 0x3C, 0xD0, 0x3E, 0xC4, 0xD9, 0x9F, 0x3C,
+ 0xFD, 0xB1, 0x23, 0xBE, 0x83, 0x7E, 0xF2, 0xBD, 0xC8, 0x02, 0x15, 0xBC,
+ 0x3B, 0xBC, 0x03, 0x3E, 0xA7, 0x16, 0x35, 0xBD, 0xC0, 0x9D, 0x8E, 0xBC,
+ 0xE7, 0x2D, 0x9C, 0x3C, 0xE0, 0xAB, 0x17, 0xBE, 0x8D, 0x97, 0x8C, 0x3D,
+ 0x29, 0x44, 0xA4, 0xBD, 0x37, 0x87, 0xB2, 0x3B, 0x6D, 0x63, 0xB7, 0xBC,
+ 0x5D, 0x5C, 0x06, 0xBE, 0x9C, 0x94, 0xCF, 0xBC, 0xB6, 0x6E, 0xA5, 0xBE,
+ 0xD3, 0x28, 0xDA, 0xBD, 0x01, 0xBF, 0x11, 0xBB, 0x11, 0xAE, 0x46, 0x3D,
+ 0x27, 0xDE, 0xEA, 0x3C, 0x68, 0xD2, 0xC4, 0xBD, 0x50, 0xDA, 0xA2, 0x3B,
+ 0x2D, 0xA9, 0xA9, 0x3C, 0xFF, 0x6A, 0xD8, 0x3C, 0x4A, 0x6D, 0xE6, 0x3A,
+ 0x59, 0x57, 0x08, 0xBD, 0xEB, 0xFC, 0xC0, 0x3D, 0x4C, 0x6E, 0xBF, 0xBD,
+ 0x66, 0xB1, 0x71, 0x3D, 0x31, 0x45, 0xE7, 0x39, 0x9F, 0x12, 0xB8, 0x3A,
+ 0x45, 0xF4, 0xBA, 0xBD, 0xDB, 0x24, 0xE5, 0x3B, 0x45, 0xB2, 0x2B, 0xBD,
+ 0x6A, 0x75, 0x0C, 0x3D, 0x7C, 0x11, 0x25, 0x3B, 0x10, 0xFD, 0x1C, 0x3D,
+ 0x74, 0x4A, 0x7D, 0x3D, 0xB5, 0xDE, 0xF5, 0xBC, 0x58, 0xB3, 0xAD, 0xBC,
+ 0x61, 0xF2, 0xDF, 0xBD, 0x1C, 0x34, 0x57, 0xBD, 0x6A, 0xE8, 0xAC, 0x3D,
+ 0x26, 0xBF, 0xB9, 0xBC, 0x0F, 0x1B, 0x90, 0x3B, 0x5C, 0x99, 0x17, 0x3E,
+ 0x44, 0xE9, 0xC6, 0x3D, 0x9E, 0xE1, 0x7F, 0x3E, 0x07, 0x8A, 0xB9, 0xBC,
+ 0x26, 0x44, 0xC0, 0x3B, 0xE5, 0xC7, 0xD9, 0xBB, 0x75, 0xA0, 0x96, 0xBD,
+ 0xF0, 0x31, 0x30, 0x3E, 0x04, 0xC6, 0x08, 0x3E, 0xE5, 0xD5, 0x78, 0x3D,
+ 0x28, 0x0D, 0xC3, 0xBC, 0xF2, 0x76, 0x48, 0x3D, 0x21, 0xFD, 0x2F, 0xBD,
+ 0x67, 0x1C, 0x84, 0xBD, 0x78, 0x58, 0x49, 0xBD, 0xC3, 0xED, 0xF0, 0xBB,
+ 0x3F, 0x27, 0x95, 0xBD, 0x21, 0x52, 0x05, 0xBE, 0x3C, 0x85, 0xAC, 0x3E,
+ 0x42, 0x6A, 0x1D, 0xBE, 0x84, 0xE7, 0xDA, 0x3C, 0x43, 0xAE, 0x16, 0xBD,
+ 0x89, 0x90, 0x35, 0xBB, 0x0F, 0x69, 0x85, 0x3D, 0xC4, 0xCB, 0x47, 0xBD,
+ 0x4B, 0x0D, 0x62, 0x3C, 0xD6, 0x24, 0xC3, 0x3C, 0x93, 0x36, 0x7D, 0xBD,
+ 0x7C, 0x7D, 0x72, 0xBD, 0xDC, 0xD0, 0xAC, 0x3D, 0xFC, 0xB4, 0x74, 0x3D,
+ 0x90, 0xE4, 0x82, 0x3C, 0xEC, 0x56, 0x44, 0xBE, 0x3F, 0xB6, 0xDF, 0xBD,
+ 0xD4, 0xDC, 0xE8, 0xBE, 0x24, 0x3F, 0xE4, 0xBD, 0x32, 0x8F, 0xD6, 0x3D,
+ 0xFF, 0x99, 0x47, 0x3E, 0x8E, 0x72, 0x76, 0xBD, 0xA3, 0xA7, 0x8A, 0x3E,
+ 0x29, 0x4E, 0xA1, 0x3D, 0xEF, 0x80, 0x0D, 0x3C, 0xD5, 0xFA, 0x14, 0xBE,
+ 0x9B, 0x8B, 0x89, 0x3E, 0x2D, 0x28, 0xFA, 0xBD, 0x4C, 0x5E, 0x06, 0xBC,
+ 0x92, 0xA1, 0x65, 0x3D, 0xB5, 0x36, 0x70, 0xBC, 0x27, 0xE7, 0x09, 0x3B,
+ 0x1C, 0x30, 0x9A, 0x3E, 0x9D, 0xF7, 0x6C, 0xBE, 0xD5, 0x0B, 0x37, 0x3F,
+ 0x7E, 0x44, 0xEC, 0x3E, 0xA3, 0x78, 0x7A, 0x3E, 0x2C, 0x15, 0x36, 0x3C,
+ 0xAD, 0x1F, 0xAF, 0x3D, 0xC2, 0x37, 0x2A, 0x3D, 0x06, 0xAA, 0xDE, 0x3C,
+ 0xA4, 0x6D, 0xA8, 0xBC, 0x39, 0x0F, 0x1B, 0x3D, 0xCB, 0x59, 0x89, 0x3C,
+ 0x2B, 0xB8, 0x81, 0x3E, 0xA8, 0x17, 0x84, 0xBD, 0x86, 0x99, 0x74, 0x3B,
+ 0x31, 0x96, 0x51, 0x3D, 0x2A, 0x04, 0xA0, 0x3A, 0xEB, 0x8A, 0x74, 0xBE,
+ 0x2E, 0x30, 0x02, 0xBF, 0xC6, 0xF1, 0x39, 0xBC, 0xE9, 0x3A, 0x38, 0xBD,
+ 0x73, 0x06, 0xDB, 0xBB, 0xF3, 0x4F, 0x68, 0x3E, 0x7D, 0x4D, 0xE1, 0x3D,
+ 0xB1, 0x04, 0x95, 0x3D, 0xB1, 0x81, 0xCA, 0xBC, 0x42, 0x2D, 0xE3, 0x3C,
+ 0x36, 0x28, 0xA4, 0x3C, 0x41, 0x56, 0xDC, 0xBD, 0xDE, 0xC3, 0xCC, 0x3C,
+ 0x11, 0x8C, 0x7C, 0xBD, 0xEF, 0x67, 0xA2, 0xBB, 0x8F, 0x39, 0xBD, 0xBD,
+ 0x53, 0xF0, 0xAC, 0x3D, 0x4D, 0x4F, 0x6C, 0xBD, 0x92, 0xFB, 0xAA, 0x3C,
+ 0x45, 0x63, 0x00, 0xBE, 0x6F, 0x33, 0x93, 0x3C, 0xAB, 0x9A, 0x83, 0x3A,
+ 0x6A, 0xD1, 0xD9, 0xBD, 0xCE, 0xFE, 0x1E, 0x3D, 0x77, 0xBD, 0x43, 0x3D,
+ 0x36, 0x39, 0x29, 0xBD, 0x89, 0xC6, 0xB1, 0x3C, 0x00, 0x23, 0x59, 0xBC,
+ 0x79, 0x92, 0x77, 0xBB, 0xC8, 0x8C, 0xC6, 0xBB, 0x6E, 0x11, 0x56, 0xBE,
+ 0x20, 0x8A, 0xB6, 0xBD, 0xBB, 0x9C, 0x8D, 0xBE, 0xF3, 0x34, 0x37, 0xBE,
+ 0x2A, 0x97, 0x1B, 0x3D, 0x47, 0x5B, 0x13, 0x3D, 0x5E, 0xC6, 0x61, 0x3D,
+ 0xF2, 0x5C, 0x3A, 0xBE, 0x7F, 0xA3, 0xE5, 0xBC, 0x32, 0xA2, 0x3C, 0x39,
+ 0x49, 0x21, 0x91, 0x3A, 0x97, 0x93, 0xC4, 0x3B, 0x1B, 0xD8, 0xE6, 0xBC,
+ 0x25, 0x8E, 0x1F, 0xBD, 0xE1, 0xBF, 0x3A, 0x3D, 0x6C, 0x72, 0xF1, 0x3C,
+ 0xFD, 0x4C, 0xAF, 0x3C, 0x51, 0x21, 0x97, 0x3C, 0xBA, 0xF4, 0x32, 0x3D,
+ 0x06, 0xC7, 0x06, 0x3E, 0x00, 0xA6, 0xF4, 0x3C, 0xFC, 0xB3, 0x2F, 0xBD,
+ 0x16, 0xC0, 0xAB, 0x3B, 0x5B, 0xA0, 0xD6, 0x3B, 0x4C, 0x07, 0xCB, 0x3D,
+ 0x41, 0x15, 0xA4, 0xBC, 0x82, 0x7A, 0x5D, 0xBC, 0x2E, 0xF0, 0xB7, 0xBC,
+ 0xBF, 0xA3, 0x09, 0x3D, 0xE0, 0xD0, 0x90, 0xBD, 0x81, 0xAE, 0xED, 0xBC,
+ 0x04, 0x07, 0xC7, 0xBA, 0xB2, 0xBA, 0x2C, 0x3E, 0xE3, 0xD9, 0x14, 0x3D,
+ 0xF8, 0xB7, 0x97, 0x3D, 0x0D, 0x9D, 0xB6, 0x3C, 0x5B, 0x24, 0x5D, 0xBD,
+ 0x4E, 0x2B, 0x79, 0x3F, 0x19, 0x3B, 0x2F, 0xBF, 0xD8, 0x49, 0x29, 0x3F,
+ 0x6F, 0x54, 0xAA, 0xBF, 0xEA, 0xF9, 0xB0, 0x3E, 0xB0, 0x05, 0xB8, 0xBE,
+ 0x1B, 0x2B, 0x35, 0x3F, 0xBD, 0x3A, 0x0A, 0x3F, 0xB0, 0x94, 0x8A, 0xBE,
+ 0x74, 0x37, 0x24, 0xBF, 0xF1, 0xE0, 0x98, 0x3F, 0x34, 0x3F, 0x55, 0x3C,
+ 0x3D, 0x88, 0x11, 0x3F, 0x08, 0xE7, 0x4C, 0x3F, 0x9D, 0xF1, 0x1E, 0x3D,
+ 0x86, 0xF0, 0x63, 0x3E, 0x8B, 0x08, 0x3C, 0x3E, 0xB8, 0xF6, 0x0F, 0x3D,
+ 0xA4, 0x52, 0x39, 0x3F, 0xAF, 0xB8, 0x9E, 0x3F, 0x25, 0xC0, 0x16, 0xBE,
+ 0xEC, 0x47, 0xD0, 0x3D, 0x3F, 0x3F, 0xD6, 0x3C, 0xDA, 0xBB, 0xBA, 0xBC,
+ 0x7E, 0x9C, 0x1B, 0x3F, 0x21, 0xDE, 0x81, 0xBE, 0x39, 0xD7, 0xF5, 0x3E,
+ 0xFF, 0x5E, 0x37, 0xBD, 0x5A, 0x19, 0x3E, 0xBD, 0x1C, 0x1C, 0x95, 0xBF,
+ 0x33, 0x53, 0xC9, 0xBF, 0x5C, 0x2B, 0x20, 0x3D, 0x99, 0x08, 0x4D, 0x3F,
+ 0xD3, 0x1D, 0x5C, 0xBE, 0xFD, 0x18, 0x69, 0x3F, 0xEA, 0x23, 0x87, 0xBD,
+ 0x93, 0x5B, 0xD2, 0x3C, 0x33, 0x0F, 0xA4, 0x3D, 0x91, 0x07, 0x99, 0x3E,
+ 0xD7, 0x7D, 0x14, 0x3E, 0xEA, 0xF7, 0x22, 0xBD, 0xCB, 0x0C, 0xB2, 0xBD,
+ 0x61, 0x24, 0xEC, 0x3D, 0xCC, 0xE1, 0xDC, 0xBB, 0xC7, 0x7C, 0x96, 0xBC,
+ 0x7F, 0x7A, 0x06, 0x3E, 0xCB, 0x1B, 0x83, 0xBE, 0x9F, 0x23, 0x18, 0xBC,
+ 0x16, 0x3C, 0xFB, 0x3C, 0x44, 0xD1, 0x05, 0xBC, 0xDA, 0x96, 0x6B, 0x3F,
+ 0xB2, 0xEC, 0xD6, 0x3E, 0xAD, 0xCB, 0xE5, 0xBB, 0xAD, 0x8E, 0x26, 0x3D,
+ 0x7F, 0x34, 0x9B, 0xBE, 0xA2, 0xDF, 0xDA, 0xBD, 0x01, 0xEF, 0x74, 0x3D,
+ 0x3A, 0xF1, 0x7B, 0xBC, 0xEC, 0xF1, 0x2A, 0x3E, 0xAB, 0xD5, 0xA0, 0xBE,
+ 0x15, 0xE5, 0xAE, 0x3D, 0x28, 0x94, 0x32, 0x3F, 0xC6, 0xC3, 0x9E, 0xBD,
+ 0x6D, 0xF7, 0xCD, 0x3B, 0x48, 0xAE, 0x48, 0xBE, 0x16, 0x8F, 0xB6, 0xBE,
+ 0x3D, 0x61, 0x9A, 0x3E, 0xC2, 0x0A, 0x95, 0x3E, 0x4F, 0x58, 0x98, 0xBD,
+ 0x79, 0x31, 0xC5, 0xBB, 0x8A, 0x25, 0x9D, 0xBE, 0x45, 0x94, 0xC8, 0xBE,
+ 0x56, 0x63, 0x7C, 0xBC, 0x9B, 0x03, 0x28, 0xBE, 0x45, 0x68, 0x30, 0xBE,
+ 0x59, 0x2C, 0x18, 0xBD, 0x3A, 0xF4, 0x8A, 0x3D, 0x5D, 0xB6, 0x9B, 0x3D,
+ 0xE8, 0x10, 0x49, 0x3E, 0x7B, 0x4A, 0xA9, 0xBD, 0x79, 0x1F, 0x6F, 0x3E,
+ 0xC4, 0x80, 0x5A, 0xBB, 0x1B, 0xCD, 0x78, 0xBE, 0xF5, 0x2D, 0xAB, 0xBE,
+ 0x42, 0xAF, 0x8F, 0x3C, 0xA5, 0x70, 0xB3, 0xBD, 0xFB, 0xD0, 0x95, 0x3D,
+ 0xF7, 0xAA, 0x46, 0x3E, 0x80, 0x5B, 0xA9, 0x3C, 0x50, 0xAD, 0x3B, 0x3D,
+ 0xE3, 0x45, 0x96, 0xBC, 0x90, 0xA8, 0xB7, 0x3C, 0x5B, 0x0A, 0x3F, 0xBE,
+ 0xCF, 0xCC, 0x70, 0x3F, 0x29, 0x6E, 0x34, 0xBE, 0x6C, 0x40, 0x07, 0xBE,
+ 0x7E, 0xF1, 0x48, 0x3F, 0x95, 0xA8, 0x23, 0xBF, 0xEC, 0x03, 0xBE, 0x3C,
+ 0xDF, 0x2A, 0x07, 0xBC, 0x38, 0x7B, 0xDB, 0x3C, 0x4D, 0xE2, 0x64, 0xBE,
+ 0x33, 0xCF, 0x58, 0xBF, 0xB0, 0xE4, 0x85, 0x3C, 0x2F, 0x4F, 0xFC, 0xBD,
+ 0xE3, 0xC1, 0x8A, 0xBF, 0x49, 0x56, 0xCE, 0x3E, 0xB4, 0xD5, 0xC8, 0x3C,
+ 0x4E, 0xED, 0x25, 0x3B, 0x29, 0xF0, 0x70, 0xBD, 0x4C, 0x32, 0x3F, 0x3E,
+ 0x57, 0x8A, 0x0C, 0xBF, 0x10, 0xEC, 0x0B, 0xBF, 0x1D, 0x25, 0x56, 0x3C,
+ 0x8D, 0xF3, 0xC6, 0x3D, 0xF5, 0x0A, 0x67, 0x3F, 0x48, 0x8D, 0xFF, 0x3D,
+ 0x33, 0x46, 0xC7, 0x3D, 0x26, 0x5D, 0xED, 0x3E, 0xB2, 0xC8, 0x2E, 0xBF,
+ 0x71, 0x03, 0x31, 0x3F, 0x19, 0x7A, 0x85, 0x3E, 0x5C, 0x4E, 0xEF, 0x3E,
+ 0x97, 0x63, 0x66, 0xBF, 0x8F, 0xC4, 0x36, 0xBE, 0xA6, 0xDD, 0x95, 0x3F,
+ 0x62, 0x79, 0x2A, 0x3F, 0x40, 0xD8, 0x62, 0xBE, 0xA6, 0x9A, 0xDD, 0xBE,
+ 0xF2, 0xE4, 0x89, 0x3E, 0x17, 0x02, 0xDA, 0xBE, 0xCA, 0x9E, 0xBD, 0xBD,
+ 0x18, 0x19, 0x84, 0xBE, 0x70, 0xA8, 0x97, 0x3E, 0x5D, 0xD3, 0xD2, 0xBD,
+ 0x94, 0x54, 0x22, 0xBC, 0x69, 0x45, 0x15, 0x3E, 0xDA, 0xFF, 0x59, 0x3F,
+ 0x5E, 0xA0, 0x7C, 0xBF, 0xC2, 0xCA, 0xFB, 0x3D, 0x79, 0x2C, 0x00, 0xBF,
+ 0x10, 0x7C, 0x40, 0xBC, 0x3F, 0x32, 0x11, 0xBF, 0xAD, 0x9D, 0xF3, 0xBE,
+ 0x9E, 0x58, 0x6B, 0x3D, 0x8F, 0x7F, 0x1C, 0x3D, 0x8B, 0x82, 0x0A, 0xBF,
+ 0xBA, 0x31, 0x9A, 0xBC, 0xB5, 0xBB, 0x33, 0x3D, 0xAB, 0xFA, 0x04, 0xBC,
+ 0xFC, 0xD1, 0x48, 0xBE, 0xAC, 0x5B, 0xE1, 0x3D, 0x92, 0x9D, 0x9D, 0x3E,
+ 0x3E, 0xA2, 0x5E, 0xBE, 0x0D, 0x7A, 0xE9, 0xBE, 0x89, 0xB3, 0x76, 0xBE,
+ 0xDC, 0xB6, 0x9E, 0x3E, 0xB4, 0x43, 0xFC, 0x3D, 0x3E, 0x20, 0xDC, 0x3E,
+ 0x6C, 0x41, 0xCB, 0x3D, 0x12, 0x7A, 0x0A, 0x3F, 0xDB, 0x83, 0x44, 0x3E,
+ 0xE3, 0x9A, 0xBF, 0x3E, 0xF0, 0x00, 0x1D, 0xBF, 0x65, 0x6B, 0xA1, 0x3D,
+ 0x07, 0x7B, 0x93, 0x3D, 0x54, 0x11, 0x41, 0x3E, 0x26, 0xB7, 0x5C, 0x3E,
+ 0x7E, 0xC2, 0x6F, 0x3C, 0x41, 0xA9, 0xB3, 0xBE, 0x2C, 0x70, 0x40, 0x3E,
+ 0x0B, 0x27, 0x07, 0x3D, 0xCE, 0x80, 0x25, 0xBD, 0x34, 0x7D, 0x76, 0x3E,
+ 0xD2, 0x27, 0x24, 0x3E, 0xDB, 0xE0, 0xB8, 0xBE, 0x0A, 0x52, 0xE4, 0xBE,
+ 0x86, 0x13, 0xCF, 0x3C, 0x77, 0xA5, 0x32, 0x3F, 0xAD, 0x4D, 0x1F, 0x3F,
+ 0xFA, 0x2E, 0x17, 0xBB, 0xBC, 0x9D, 0xA6, 0xBB, 0xA6, 0xBB, 0x0D, 0x3F,
+ 0x97, 0x31, 0xF5, 0xBD, 0xFC, 0x82, 0xB1, 0x3D, 0xD6, 0xE5, 0xAF, 0x3B,
+ 0x96, 0xAA, 0xDC, 0x3C, 0x71, 0x29, 0x43, 0xBF, 0x1D, 0x28, 0xDB, 0x3D,
+ 0x89, 0x51, 0x6F, 0x3F, 0x5D, 0xB2, 0x9B, 0x3D, 0xAC, 0x9F, 0x8D, 0xBB,
+ 0xBF, 0xDA, 0xCC, 0xBD, 0xC0, 0x9C, 0xB6, 0x3C, 0xA9, 0x6B, 0x20, 0x3D,
+ 0xC4, 0xA6, 0x06, 0x3E, 0xA6, 0x31, 0x3E, 0x3D, 0xA9, 0xB0, 0x2F, 0xBC,
+ 0x9C, 0x8A, 0x49, 0x3C, 0x78, 0xB9, 0xD5, 0xBC, 0x8E, 0x90, 0x0A, 0xBD,
+ 0xBD, 0x20, 0xDE, 0x3D, 0xF6, 0x40, 0x19, 0xBD, 0x06, 0x03, 0x00, 0xBD,
+ 0xCB, 0xE0, 0xB6, 0x3C, 0x35, 0xA0, 0x2A, 0xBD, 0x13, 0x8A, 0x36, 0x3D,
+ 0xFA, 0xBB, 0x37, 0x3D, 0xA9, 0x9B, 0x7A, 0xBD, 0x37, 0x2D, 0x93, 0x3C,
+ 0x77, 0xD8, 0x9C, 0xBD, 0x18, 0xDB, 0x9C, 0x3D, 0xF4, 0x91, 0xC9, 0x3C,
+ 0xEC, 0xCD, 0x5E, 0xBB, 0x89, 0xF9, 0xB8, 0xBC, 0xC7, 0xA2, 0x96, 0x3A,
+ 0xCC, 0x5E, 0x01, 0xBE, 0x94, 0x0D, 0x1B, 0xBD, 0x8F, 0x38, 0x0C, 0xBD,
+ 0xE1, 0xB2, 0xCC, 0x3D, 0xC5, 0x6F, 0xED, 0x3C, 0x40, 0x49, 0xE2, 0xBE,
+ 0x69, 0x85, 0xB8, 0xBD, 0x51, 0x6D, 0xC7, 0xB8, 0x1F, 0x95, 0xBE, 0xBD,
+ 0x23, 0x09, 0x29, 0x3D, 0x00, 0x47, 0x40, 0x3D, 0x57, 0xB0, 0xB2, 0x3D,
+ 0xDB, 0xDC, 0x4E, 0x3C, 0x4F, 0x1F, 0x74, 0x3D, 0xA2, 0x82, 0x89, 0x3A,
+ 0xD3, 0x2C, 0x52, 0xBD, 0x24, 0x7E, 0x95, 0xBD, 0x01, 0x10, 0xA2, 0x3D,
+ 0x64, 0xB0, 0xD9, 0xBC, 0xDB, 0x9A, 0xBB, 0x3B, 0xA8, 0x0A, 0x87, 0x3C,
+ 0xA2, 0x7B, 0x91, 0xBD, 0x6E, 0xAE, 0x8E, 0x3D, 0xAA, 0xE4, 0x1F, 0x3D,
+ 0x73, 0x78, 0x0E, 0xBD, 0x42, 0x3C, 0xD0, 0x3B, 0x46, 0x2A, 0xE8, 0xBB,
+ 0x1C, 0xE9, 0x30, 0x3B, 0x2C, 0x90, 0xB2, 0x3C, 0xB5, 0xF1, 0x6C, 0xBB,
+ 0xBF, 0x3E, 0x58, 0x3C, 0xEB, 0x8D, 0xB5, 0x3C, 0xCB, 0x25, 0xEA, 0xBD,
+ 0x5A, 0xC9, 0x53, 0xBD, 0x9E, 0xF4, 0x15, 0xBC, 0x07, 0x64, 0xB0, 0x3C,
+ 0x10, 0xE2, 0x9D, 0xBD, 0xBD, 0x5B, 0x73, 0xBC, 0x89, 0x8C, 0xED, 0xBC,
+ 0x31, 0x6C, 0x2C, 0xBD, 0x00, 0x78, 0x8F, 0x3C, 0x5D, 0x68, 0xE9, 0xBA,
+ 0x28, 0x7B, 0x51, 0xBE, 0x46, 0x6E, 0x93, 0xBD, 0xB6, 0xB5, 0xE7, 0xBC,
+ 0xBB, 0x99, 0x57, 0x3D, 0x2F, 0x78, 0x08, 0xBD, 0x8A, 0x95, 0x96, 0xBD,
+ 0xF9, 0xC6, 0xBD, 0x3D, 0x5A, 0x57, 0x2D, 0xBD, 0xED, 0x8E, 0xCE, 0x3C,
+ 0x7D, 0x81, 0xA2, 0x3C, 0xEB, 0xCF, 0xB6, 0x3D, 0xD0, 0xB7, 0x4A, 0xBE,
+ 0x87, 0xFF, 0x08, 0x3D, 0xC2, 0xE3, 0xF3, 0xBC, 0x4B, 0x86, 0x63, 0x3D,
+ 0x30, 0xAA, 0x16, 0xBC, 0xC3, 0xC0, 0xC1, 0xBB, 0x89, 0x0F, 0x1C, 0x3D,
+ 0xE5, 0xBB, 0xE4, 0xBC, 0x5F, 0x66, 0x0D, 0xBD, 0x42, 0xBB, 0x49, 0x3D,
+ 0x08, 0x3D, 0x39, 0xBC, 0xFE, 0x27, 0x72, 0x3D, 0x76, 0x9A, 0xF0, 0x3C,
+ 0x03, 0xBD, 0x76, 0xBC, 0x8B, 0x6B, 0x00, 0x3E, 0xCF, 0x4A, 0xA3, 0x3C,
+ 0x40, 0xCE, 0x5E, 0x3E, 0x60, 0x91, 0xBC, 0x3C, 0x69, 0x02, 0x28, 0xBD,
+ 0x9E, 0xCE, 0x33, 0xBD, 0xBA, 0x21, 0x16, 0xBD, 0x4F, 0x71, 0x2F, 0xBE,
+ 0x48, 0xA8, 0xD3, 0xBB, 0xB3, 0x12, 0xCC, 0xBC, 0xA5, 0x13, 0x14, 0x3C,
+ 0xAC, 0x4D, 0xB2, 0xBD, 0x4A, 0x51, 0x33, 0xBD, 0x12, 0xA9, 0xA2, 0x3D,
+ 0xC2, 0x7F, 0xDA, 0x3D, 0xE7, 0x0C, 0x5C, 0xBD, 0x81, 0x43, 0xB2, 0x3C,
+ 0x03, 0x05, 0xE9, 0x3D, 0x26, 0x87, 0x15, 0xBC, 0x0E, 0x82, 0x1B, 0x3C,
+ 0xD8, 0xD0, 0xBD, 0xBC, 0xC9, 0x2D, 0x16, 0xBD, 0xEE, 0xE8, 0x56, 0x3C,
+ 0xDB, 0xD2, 0xC6, 0xBD, 0x17, 0xA7, 0x77, 0xBC, 0x06, 0xF8, 0x1F, 0xBC,
+ 0x01, 0x7D, 0x13, 0xBD, 0x81, 0xD8, 0xB3, 0x3D, 0x01, 0x82, 0x58, 0xBB,
+ 0x1F, 0x48, 0x77, 0xBD, 0x0A, 0x4D, 0x29, 0xBC, 0xBD, 0x5F, 0x0F, 0xBD,
+ 0x3E, 0x73, 0x55, 0x3D, 0x4B, 0x2F, 0xD6, 0xBB, 0xCC, 0xAB, 0xA9, 0xBE,
+ 0x81, 0xCF, 0x87, 0x3D, 0x5D, 0xEA, 0x83, 0xBD, 0x8F, 0x98, 0x95, 0xBA,
+ 0x1F, 0x73, 0x6C, 0x3D, 0x54, 0x62, 0x45, 0x3D, 0x96, 0x38, 0x97, 0xBD,
+ 0xC7, 0x26, 0xC4, 0x3C, 0x10, 0xC9, 0x9C, 0xBC, 0xEF, 0x01, 0xB3, 0x3D,
+ 0xDA, 0xC6, 0x07, 0xBE, 0xB5, 0x63, 0x39, 0x3D, 0x66, 0xC6, 0xEA, 0x3D,
+ 0xAB, 0x22, 0x1F, 0x3D, 0x28, 0xDC, 0x1D, 0xBC, 0xA9, 0xDB, 0x1B, 0xBB,
+ 0x8D, 0x38, 0x55, 0xBC, 0x52, 0x64, 0xF0, 0xBD, 0x6E, 0xB0, 0xCC, 0x3C,
+ 0xE5, 0x1F, 0x12, 0xBE, 0xEC, 0xE0, 0x12, 0xBC, 0xEF, 0x56, 0x63, 0xBD,
+ 0x6D, 0x3B, 0x6D, 0x3D, 0x1C, 0x87, 0x04, 0x3B, 0xDD, 0xD1, 0x93, 0x3B,
+ 0x0E, 0x10, 0x9B, 0xBE, 0x4C, 0xAF, 0x94, 0x3D, 0x42, 0x6E, 0x3E, 0x3E,
+ 0xE4, 0x95, 0x0E, 0xBD, 0x70, 0xF1, 0x3D, 0x3B, 0x50, 0x2E, 0x29, 0xBF,
+ 0x03, 0xE2, 0x1F, 0xBD, 0xD5, 0x28, 0xCA, 0x3E, 0xF4, 0x87, 0x53, 0xBC,
+ 0x5C, 0x0E, 0xA6, 0xBA, 0x9B, 0x5B, 0x8C, 0x3E, 0xCA, 0x64, 0x34, 0x3E,
+ 0xE6, 0x03, 0xE0, 0x3E, 0xC0, 0x5E, 0x43, 0x3E, 0x89, 0x1A, 0x1F, 0x3C,
+ 0x86, 0x7F, 0x73, 0x3D, 0xF1, 0xB9, 0xC3, 0x3D, 0xD7, 0xD9, 0xD7, 0x3E,
+ 0x43, 0x5D, 0x38, 0xBD, 0xE4, 0x1D, 0xC7, 0xBB, 0x7A, 0x9E, 0xE5, 0xBB,
+ 0x7E, 0x8C, 0xDE, 0x3B, 0x47, 0xF4, 0xB3, 0x3D, 0x53, 0xD9, 0x10, 0xBE,
+ 0xC3, 0xEF, 0x36, 0xBF, 0x6B, 0x3A, 0x00, 0xBC, 0x89, 0xF8, 0x5A, 0xBF,
+ 0x35, 0xE5, 0xA6, 0xBB, 0xDA, 0x0F, 0xE5, 0x3E, 0xD0, 0x56, 0x42, 0xBE,
+ 0xC2, 0xC0, 0xE1, 0x3C, 0xAD, 0xEA, 0x28, 0xBD, 0xDC, 0x4D, 0xBD, 0x3E,
+ 0xF9, 0xC0, 0x4D, 0xBD, 0xFC, 0xDE, 0xC0, 0x3E, 0x15, 0xFB, 0x74, 0x3D,
+ 0x1B, 0xAC, 0xFA, 0xBC, 0x93, 0x19, 0xAB, 0x3E, 0xAC, 0xED, 0xA3, 0x3D,
+ 0x33, 0x1B, 0x99, 0x3F, 0xC3, 0x9A, 0xCD, 0xBB, 0x10, 0x57, 0xBB, 0x3C,
+ 0xA7, 0xC9, 0x75, 0xBE, 0x09, 0x13, 0x3A, 0xBF, 0x0B, 0x7A, 0x83, 0xBF,
+ 0x01, 0xC3, 0x88, 0xBF, 0x6B, 0x14, 0x29, 0x3E, 0x30, 0x34, 0xA6, 0xBF,
+ 0x1D, 0xD2, 0x25, 0xBE, 0x47, 0xA7, 0x2C, 0xBF, 0x39, 0x18, 0x39, 0xBF,
+ 0x26, 0x08, 0xA1, 0x3D, 0x87, 0xD9, 0xE5, 0x3D, 0x9A, 0x7E, 0xF4, 0x3E,
+ 0x67, 0x8F, 0x0C, 0x3F, 0x03, 0x40, 0x5E, 0x40, 0xA0, 0x39, 0x09, 0xBF,
+ 0xA6, 0xBE, 0x0C, 0xBE, 0x77, 0x81, 0x2C, 0xBD, 0x73, 0x27, 0x0E, 0x3F,
+ 0xFA, 0x9D, 0x96, 0xBE, 0xEC, 0x51, 0x13, 0xBF, 0x30, 0x58, 0xD7, 0x3C,
+ 0x11, 0xA1, 0x8B, 0x3E, 0x25, 0xDA, 0x97, 0x3E, 0x16, 0x61, 0x84, 0x3E,
+ 0x1B, 0xD0, 0x6D, 0xBB, 0x67, 0x97, 0x17, 0xBF, 0x87, 0xA2, 0xC9, 0xBA,
+ 0x79, 0x0A, 0x09, 0x3F, 0xC3, 0x20, 0x87, 0x3F, 0x2A, 0x86, 0xF2, 0xBD,
+ 0x36, 0xA4, 0x0E, 0xBF, 0xBE, 0xFC, 0x6B, 0x3F, 0x7E, 0x32, 0xD2, 0x3D,
+ 0x45, 0xF3, 0x48, 0xBB, 0xA8, 0x25, 0xB1, 0xBD, 0x1A, 0x7B, 0xC2, 0xBD,
+ 0xC2, 0xF9, 0xFF, 0xBC, 0xCB, 0xA3, 0xBD, 0xBC, 0xAF, 0x29, 0xAB, 0x3B,
+ 0xEC, 0x57, 0xA7, 0xBC, 0xDD, 0x18, 0x3E, 0x3D, 0x41, 0xE4, 0x33, 0xBD,
+ 0xD2, 0x61, 0x06, 0x3D, 0xAC, 0x93, 0x99, 0x3C, 0xC8, 0x02, 0xC3, 0x3C,
+ 0x8E, 0xFF, 0x10, 0xBE, 0x59, 0x82, 0xEA, 0x3C, 0x56, 0x83, 0xF6, 0xBC,
+ 0x76, 0x5B, 0x61, 0x3C, 0xFC, 0xC6, 0x91, 0xBB, 0x60, 0xB0, 0xD9, 0x3C,
+ 0x1E, 0x70, 0x69, 0x3D, 0xD6, 0x49, 0xBD, 0xBC, 0xDB, 0x7D, 0xE3, 0xBC,
+ 0x2F, 0xF0, 0x69, 0xBB, 0x0C, 0xCD, 0xB4, 0xBC, 0x62, 0x47, 0xA2, 0x3D,
+ 0x8E, 0x3F, 0x83, 0x3C, 0xA5, 0x2A, 0x61, 0x3C, 0x18, 0x4F, 0xB8, 0x3D,
+ 0xD0, 0x62, 0x75, 0x3C, 0x59, 0x9A, 0x9D, 0x3C, 0x11, 0xF6, 0x9A, 0x3D,
+ 0xC1, 0x25, 0x05, 0xBC, 0xE6, 0xA7, 0xA1, 0xBE, 0x84, 0xB3, 0x32, 0xBD,
+ 0x7B, 0x58, 0x24, 0xBC, 0xA4, 0x2C, 0xB3, 0xB9, 0xB9, 0x50, 0xF3, 0x3A,
+ 0x76, 0x38, 0x05, 0x3B, 0x60, 0xDF, 0x4B, 0xBE, 0x00, 0xE8, 0x0A, 0x3E,
+ 0x17, 0xD2, 0x11, 0x3D, 0xA2, 0x69, 0xEF, 0xBD, 0xFA, 0xB7, 0x13, 0xBE,
+ 0xBB, 0x75, 0x80, 0x3B, 0x28, 0xD8, 0x3C, 0x3D, 0xFC, 0x10, 0x0F, 0x3E,
+ 0x5B, 0xFB, 0x1A, 0xBE, 0xA6, 0xA2, 0x7A, 0xBE, 0xFD, 0xE8, 0x2B, 0x3E,
+ 0x0A, 0x40, 0x83, 0xBA, 0x5E, 0x1E, 0xFD, 0xBE, 0xE6, 0xB5, 0xAC, 0xBC,
+ 0xCD, 0x21, 0xC5, 0xBA, 0x4E, 0xCD, 0x3D, 0xBC, 0x60, 0x8C, 0x77, 0x3D,
+ 0xCD, 0xBB, 0xC8, 0xBC, 0xB4, 0x1D, 0x1D, 0xBE, 0x93, 0x83, 0xBA, 0xBC,
+ 0xFB, 0xBD, 0x8B, 0x3C, 0xC7, 0xBA, 0x8C, 0xBE, 0x03, 0x84, 0x29, 0x3D,
+ 0x71, 0x12, 0x3C, 0xBE, 0x41, 0x31, 0x70, 0x3B, 0x87, 0xC9, 0x6C, 0x3C,
+ 0xFD, 0x15, 0x3A, 0xBE, 0x1A, 0x13, 0x92, 0x3E, 0xB6, 0xFF, 0xC2, 0xBE,
+ 0x0A, 0x56, 0x68, 0x3F, 0xF0, 0xA5, 0x1D, 0x3E, 0xF2, 0x53, 0x9E, 0xBE,
+ 0x6D, 0xB5, 0x63, 0xBF, 0x30, 0xCB, 0xA9, 0x3E, 0xDF, 0x26, 0xBB, 0xBE,
+ 0x21, 0xB5, 0x43, 0x3D, 0x6A, 0xE7, 0x4B, 0xBE, 0xBB, 0xDC, 0x70, 0x3E,
+ 0x8C, 0xBC, 0x3D, 0x3F, 0xE6, 0x98, 0xE3, 0x3F, 0x93, 0x2B, 0xF6, 0x3E,
+ 0x62, 0xA3, 0x9F, 0xBE, 0x72, 0x14, 0x8B, 0x3F, 0x48, 0x38, 0x51, 0x3E,
+ 0xF9, 0xDD, 0x31, 0x3D, 0x0D, 0x9E, 0x86, 0xBB, 0x4B, 0x55, 0x54, 0xBD,
+ 0x72, 0xF1, 0xAF, 0xBE, 0xE2, 0x2B, 0x91, 0xBF, 0x5D, 0x83, 0x45, 0xBF,
+ 0xC3, 0x54, 0xB3, 0xBE, 0x92, 0xF1, 0xEE, 0x3D, 0xB0, 0xDA, 0xD0, 0xBD,
+ 0xF7, 0xF8, 0xEC, 0x3B, 0x4A, 0x64, 0xF7, 0x3E, 0x61, 0xA1, 0xF5, 0x3E,
+ 0xB9, 0xAF, 0xDD, 0xBE, 0x8B, 0x42, 0x15, 0xBF, 0xCD, 0x5D, 0x81, 0x3D,
+ 0xC5, 0xD1, 0x88, 0xBD, 0x60, 0x14, 0xFD, 0xBC, 0xFF, 0x48, 0x12, 0xBC,
+ 0xBA, 0x8B, 0xFA, 0xBB, 0xEB, 0x4F, 0x99, 0xBC, 0x28, 0x63, 0x07, 0x3D,
+ 0xBA, 0x6D, 0x9F, 0x3A, 0x59, 0x52, 0x27, 0x3C, 0xC6, 0x17, 0x0C, 0xBE,
+ 0xC0, 0x1B, 0xA0, 0x3D, 0xE3, 0x3A, 0x76, 0xBB, 0xF9, 0x43, 0xAF, 0xBC,
+ 0x03, 0xCA, 0x87, 0xBD, 0xCA, 0x39, 0x26, 0x3D, 0x0E, 0x61, 0x2D, 0xBD,
+ 0xAA, 0x8F, 0x3F, 0x3D, 0x8A, 0xF0, 0x43, 0xBC, 0x5F, 0xAC, 0xB8, 0x3D,
+ 0x37, 0xFA, 0xE2, 0x3D, 0x17, 0x11, 0xDD, 0xBC, 0xE5, 0x61, 0x9D, 0x3A,
+ 0x60, 0x93, 0x0B, 0xBA, 0x60, 0x1C, 0x8F, 0xBD, 0xCA, 0xD3, 0x7F, 0x3D,
+ 0x82, 0x3E, 0x6C, 0x3C, 0xBB, 0x53, 0x1E, 0x3D, 0x1F, 0xB2, 0xF2, 0x3D,
+ 0x4C, 0xCF, 0x15, 0x3D, 0xB1, 0x29, 0x53, 0x3D, 0xE8, 0x47, 0x96, 0x3D,
+ 0x77, 0x6D, 0x83, 0x3D, 0x8F, 0x20, 0x3A, 0xBD, 0xE7, 0x8F, 0xC9, 0x3D,
+ 0xCE, 0x86, 0x7E, 0x3B, 0x1D, 0xA2, 0xFD, 0x3D, 0x25, 0x07, 0xA7, 0xBC,
+ 0x65, 0x1C, 0x36, 0xBC, 0x79, 0xCA, 0x26, 0xBD, 0xAD, 0xF3, 0x2B, 0xBD,
+ 0xE5, 0x86, 0x99, 0xBC, 0xCE, 0xD4, 0xAC, 0x3D, 0x10, 0x40, 0xC8, 0xBD,
+ 0xB6, 0x3C, 0xC9, 0x3C, 0xA9, 0xB4, 0xA2, 0x3D, 0xE1, 0xDA, 0x53, 0xBD,
+ 0xB6, 0x1A, 0x6B, 0xBD, 0xDE, 0x1A, 0x6E, 0x3D, 0xD0, 0x47, 0x7B, 0xBC,
+ 0x79, 0x98, 0x22, 0x3B, 0x6C, 0xD8, 0x8F, 0xBC, 0xCD, 0x44, 0x14, 0xBD,
+ 0x8E, 0xF9, 0x0C, 0x3B, 0xD6, 0xF8, 0xC3, 0xBC, 0x7A, 0x58, 0x44, 0x3D,
+ 0x7E, 0x12, 0x64, 0x3D, 0x44, 0x0A, 0xF7, 0xBC, 0x40, 0xC5, 0xD9, 0x3C,
+ 0x02, 0xC7, 0xB3, 0xBC, 0xC6, 0x87, 0xBD, 0x3D, 0x84, 0xCA, 0xA2, 0x3B,
+ 0x5C, 0xE8, 0x27, 0x3D, 0xC4, 0x55, 0xF5, 0xBC, 0x96, 0x18, 0x5F, 0xB9,
+ 0xCB, 0xCB, 0x4C, 0xBE, 0xDD, 0xFE, 0x75, 0x3C, 0xEE, 0xB6, 0xA4, 0xBE,
+ 0xFE, 0x6D, 0x68, 0x3E, 0x18, 0x16, 0x49, 0x3D, 0xF1, 0x53, 0xF7, 0xBD,
+ 0xB8, 0xCD, 0x86, 0xBD, 0xF6, 0x34, 0xBA, 0x3E, 0xF6, 0x1E, 0xC1, 0xBD,
+ 0xD8, 0xE3, 0x02, 0x3F, 0xCC, 0x1B, 0x8F, 0xBE, 0x35, 0x40, 0xB8, 0x3D,
+ 0x9D, 0xEE, 0x03, 0xBD, 0x3A, 0xB3, 0x32, 0x3E, 0xC0, 0x6A, 0xFD, 0x3E,
+ 0xB2, 0xDD, 0x0B, 0x3E, 0x53, 0xDA, 0x15, 0xBE, 0x86, 0x58, 0x82, 0x3C,
+ 0xF0, 0x9F, 0x58, 0xBE, 0xE6, 0xD5, 0x96, 0x3E, 0x56, 0x43, 0x17, 0x3D,
+ 0x39, 0xCB, 0xB5, 0xBD, 0x50, 0xC9, 0x93, 0x3D, 0x18, 0xBD, 0x38, 0x3D,
+ 0x8E, 0xA5, 0xB6, 0xBE, 0xF7, 0x62, 0xDF, 0x3D, 0xBC, 0x64, 0x1E, 0x3C,
+ 0x87, 0x5D, 0x2D, 0xBE, 0xDD, 0xBE, 0xC1, 0xBD, 0x1E, 0x46, 0xC0, 0x3E,
+ 0x48, 0x3F, 0x0E, 0x3E, 0x17, 0x31, 0xA6, 0xBE, 0xEC, 0x21, 0x17, 0x3F,
+ 0xB0, 0x9C, 0x0C, 0xBE, 0x0F, 0x24, 0x52, 0x3E, 0x0C, 0x26, 0xF9, 0x3E,
+ 0x66, 0xA0, 0xD4, 0x3D, 0xED, 0x48, 0x84, 0x3E, 0x07, 0x6E, 0x16, 0xBF,
+ 0x52, 0x17, 0x39, 0xBF, 0x1E, 0xCC, 0x43, 0xBC, 0x3B, 0xFC, 0x2D, 0xBF,
+ 0x63, 0x4D, 0x57, 0x3F, 0x5E, 0x87, 0x17, 0xBE, 0x65, 0xBA, 0x21, 0xBE,
+ 0x59, 0x3C, 0xDB, 0xBF, 0x50, 0xAD, 0x88, 0x3F, 0xE4, 0x94, 0xB9, 0xBE,
+ 0x3A, 0xD4, 0x34, 0x3E, 0x8D, 0x5C, 0x4E, 0xBE, 0x6F, 0xBB, 0x26, 0x3E,
+ 0x9F, 0xB0, 0x7D, 0x3D, 0x05, 0xC2, 0xA1, 0xBE, 0x30, 0xA8, 0x6D, 0xBE,
+ 0x77, 0x11, 0x6F, 0xBE, 0x5B, 0x7A, 0x92, 0x3E, 0xC9, 0xDB, 0x94, 0x3E,
+ 0x1F, 0x5F, 0xC2, 0xBE, 0xD0, 0x52, 0x8A, 0x3E, 0x84, 0xFA, 0x83, 0xBD,
+ 0xD1, 0x8B, 0x52, 0xBE, 0xB1, 0xBE, 0x34, 0xBD, 0x67, 0x79, 0x99, 0x3D,
+ 0x55, 0xE4, 0xAA, 0xBE, 0xCE, 0xE2, 0x6D, 0xBF, 0xEC, 0x70, 0x15, 0x3E,
+ 0x4C, 0x0B, 0x28, 0xBF, 0xE4, 0x93, 0x2A, 0x3D, 0x8A, 0xCC, 0x10, 0xBD,
+ 0x96, 0x66, 0x04, 0xB9, 0x9F, 0xB1, 0x37, 0xBE, 0x0E, 0xDF, 0xFC, 0x3E,
+ 0x8C, 0xF7, 0x53, 0x3D, 0x42, 0x63, 0xA1, 0x3D, 0x91, 0xBF, 0x9C, 0xBE,
+ 0xCD, 0xD6, 0xA7, 0x3B, 0x7C, 0x4C, 0x46, 0xBC, 0x65, 0xAA, 0xB9, 0xBE,
+ 0x12, 0x20, 0x9A, 0x3E, 0x74, 0xC9, 0x48, 0xBE, 0x78, 0x04, 0xC3, 0x3D,
+ 0x24, 0x5D, 0x23, 0x3C, 0xD5, 0x40, 0x7A, 0xBF, 0xE5, 0x1B, 0x3D, 0xBF,
+ 0xA1, 0x9E, 0x01, 0x3D, 0x1C, 0x62, 0x92, 0xBD, 0x40, 0x59, 0x06, 0x3F,
+ 0x63, 0x76, 0xB2, 0x3D, 0x29, 0x8F, 0x3B, 0x3D, 0xF6, 0x72, 0x09, 0xBD,
+ 0x19, 0xEE, 0x00, 0xBE, 0x15, 0xA4, 0x5B, 0x3F, 0x66, 0xE0, 0x71, 0xBD,
+ 0x86, 0x4B, 0x37, 0xBF, 0x2F, 0x7B, 0x3D, 0x3E, 0x1A, 0xAC, 0x61, 0x3C,
+ 0x59, 0x69, 0x67, 0xBE, 0x8C, 0xB2, 0x25, 0xBE, 0x3D, 0x7C, 0xE9, 0xBE,
+ 0x03, 0x89, 0x23, 0xBE, 0x03, 0xB8, 0x1C, 0x3C, 0xFA, 0xA4, 0x1F, 0xBE,
+ 0xC7, 0xAB, 0x47, 0xBE, 0x4E, 0x6F, 0x96, 0xBE, 0x92, 0x26, 0xC3, 0x3E,
+ 0x81, 0x5E, 0x8C, 0xBD, 0xDE, 0xB8, 0xCA, 0xBB, 0x80, 0xE8, 0x4A, 0x3D,
+ 0x0F, 0xD9, 0x0F, 0x3E, 0x59, 0xBD, 0x5D, 0x3F, 0x82, 0x69, 0x87, 0x3F,
+ 0x80, 0x00, 0x5E, 0xBE, 0x9C, 0xF2, 0x91, 0xBD, 0xC2, 0x37, 0x37, 0xBD,
+ 0xFE, 0x9C, 0x53, 0xBF, 0x67, 0x3F, 0x90, 0xBE, 0x78, 0x12, 0xB7, 0x3D,
+ 0x6D, 0xE2, 0xB6, 0xBD, 0xCD, 0xF7, 0x15, 0x3E, 0x12, 0xA3, 0x24, 0xBE,
+ 0xDD, 0x52, 0x25, 0x3F, 0x53, 0x91, 0x92, 0xBA, 0x13, 0x5C, 0x0C, 0xBE,
+ 0x15, 0x7D, 0xC9, 0xBE, 0xA1, 0x51, 0xB3, 0xBC, 0xAA, 0x93, 0x05, 0xC0,
+ 0xAF, 0xDD, 0x5C, 0x3E, 0x45, 0x7E, 0xE0, 0x3D, 0x30, 0x12, 0xEC, 0xBD,
+ 0x5A, 0x47, 0x09, 0x3E, 0x55, 0xC0, 0x4E, 0xBE, 0x24, 0x1A, 0xB2, 0x3C,
+ 0x85, 0x81, 0x81, 0xBD, 0x38, 0x82, 0xCA, 0x3C, 0x6D, 0x54, 0x0D, 0x3D,
+ 0x17, 0x2D, 0xF9, 0xBB, 0xF4, 0xCC, 0xA6, 0xBD, 0x79, 0x94, 0x83, 0xBB,
+ 0x32, 0x73, 0xEA, 0xBB, 0xB4, 0xD6, 0x5B, 0xBD, 0xB6, 0x07, 0x4C, 0xBA,
+ 0x44, 0x88, 0x80, 0xBE, 0x5B, 0xAD, 0x6A, 0x3E, 0x9F, 0x60, 0x01, 0x3E,
+ 0x78, 0xA9, 0x0B, 0x3D, 0x42, 0xFC, 0xF1, 0xBB, 0x79, 0xF1, 0x3C, 0xBE,
+ 0xBC, 0x00, 0x66, 0x3D, 0x76, 0x56, 0x5C, 0x3B, 0xAE, 0x4D, 0x7E, 0xBC,
+ 0xA3, 0x72, 0x0B, 0x3E, 0xDC, 0xE0, 0xDB, 0x3B, 0xC2, 0xCD, 0x74, 0xBD,
+ 0xCD, 0x52, 0xB5, 0xBD, 0x1E, 0x0D, 0x5F, 0xBC, 0x4B, 0x21, 0x22, 0x3E,
+ 0x06, 0xCC, 0x9C, 0x3D, 0x4B, 0xE4, 0x71, 0x3E, 0x7A, 0xAA, 0xC9, 0x3C,
+ 0x53, 0x05, 0xEE, 0xBD, 0x0D, 0xD1, 0x1B, 0xBF, 0x6B, 0xDF, 0x1D, 0x3F,
+ 0x17, 0x20, 0xE9, 0xBE, 0x33, 0x7F, 0xFE, 0x3E, 0xB8, 0x93, 0x95, 0xBE,
+ 0x80, 0x1C, 0x6D, 0x3E, 0x07, 0x24, 0x9F, 0xBE, 0xF2, 0x5B, 0x0A, 0x3E,
+ 0x4C, 0x2F, 0x11, 0x3F, 0x40, 0x95, 0x2E, 0x3F, 0x25, 0x81, 0x96, 0xBF,
+ 0xEF, 0x33, 0x86, 0x3D, 0xDD, 0x2F, 0x10, 0x3E, 0xB2, 0xE4, 0xC3, 0x3E,
+ 0x4A, 0x48, 0x62, 0xBE, 0xE7, 0x4F, 0xEC, 0x3E, 0x67, 0xE0, 0x55, 0xBF,
+ 0x05, 0x78, 0x14, 0x3D, 0x82, 0xEE, 0x97, 0xBF, 0xDB, 0x3E, 0x2A, 0xBF,
+ 0x22, 0x52, 0x22, 0xBE, 0x80, 0x39, 0xFE, 0x3D, 0x9D, 0x76, 0x02, 0x40,
+ 0xFF, 0xDE, 0xCA, 0x3D, 0xDB, 0xDA, 0x22, 0x3E, 0x42, 0x4C, 0x03, 0x3D,
+ 0x39, 0xA0, 0xA3, 0xBD, 0xE4, 0x69, 0xED, 0xBE, 0x2C, 0xF9, 0x40, 0xBE,
+ 0x56, 0x5B, 0x25, 0x3F, 0x05, 0x54, 0xB8, 0x3E, 0x2A, 0x75, 0x37, 0xBE,
+ 0xAC, 0x2A, 0x7A, 0xBE, 0x32, 0x1E, 0xBE, 0x3D, 0xDF, 0x54, 0x84, 0x3F,
+ 0x7E, 0xDE, 0x75, 0xBE, 0x70, 0x17, 0x19, 0xBB, 0x5B, 0xF3, 0x85, 0x3D,
+ 0xC2, 0x0F, 0x57, 0x3E, 0xE2, 0x6C, 0xF4, 0x3E, 0xEA, 0x67, 0xE0, 0xBC,
+ 0x75, 0x62, 0x31, 0x3D, 0x2C, 0xEE, 0xBA, 0x3C, 0x1B, 0x04, 0xE1, 0x3B,
+ 0x1B, 0xCE, 0x28, 0x3D, 0xCE, 0x33, 0x12, 0x3D, 0xD6, 0x3B, 0x2B, 0xBF,
+ 0x3B, 0x17, 0x27, 0x3D, 0x61, 0xF2, 0x2C, 0x3D, 0x36, 0x1F, 0x01, 0xBC,
+ 0x29, 0xCE, 0x31, 0xBC, 0x13, 0xE3, 0xCB, 0xBE, 0x9F, 0xCC, 0x01, 0xBD,
+ 0xAE, 0x95, 0x8B, 0x3C, 0x1C, 0x90, 0xD7, 0xBD, 0xBB, 0xDC, 0x57, 0xBD,
+ 0xCD, 0x3C, 0x33, 0x3D, 0x1A, 0x0C, 0xBA, 0x3C, 0x59, 0x08, 0x1B, 0x3D,
+ 0x9C, 0x3E, 0x1F, 0xBF, 0x4D, 0xB1, 0xC9, 0x3D, 0x1D, 0xEB, 0x7E, 0xBD,
+ 0x86, 0xAE, 0xF0, 0xBD, 0x2A, 0x83, 0xCD, 0xBB, 0xC5, 0x02, 0x3B, 0x3E,
+ 0x12, 0x82, 0x99, 0xBD, 0x3A, 0xD3, 0x30, 0x3E, 0x57, 0x7F, 0x85, 0xBE,
+ 0x6A, 0x75, 0x36, 0xBE, 0xA5, 0x4C, 0x02, 0xBE, 0x97, 0xAE, 0x5C, 0x3F,
+ 0xBC, 0x38, 0xAA, 0x3E, 0xF8, 0x3B, 0x00, 0xBE, 0xD6, 0x2A, 0x0A, 0x3F,
+ 0xAE, 0xF1, 0x75, 0x3E, 0x96, 0x40, 0x09, 0x3E, 0xDD, 0x99, 0xA3, 0xBE,
+ 0x18, 0x57, 0x2F, 0x3F, 0xE8, 0xDB, 0x14, 0xBF, 0x54, 0xE8, 0x55, 0x3F,
+ 0x3F, 0xCA, 0x8E, 0xBE, 0xA0, 0xA5, 0x45, 0xBE, 0x7E, 0xC6, 0x48, 0x3F,
+ 0xB7, 0x77, 0x7D, 0xBF, 0xAB, 0xF2, 0x80, 0x3D, 0xE0, 0x75, 0x23, 0xBE,
+ 0xF8, 0x0C, 0x17, 0xBF, 0x07, 0xBD, 0x86, 0x3E, 0x2B, 0xC8, 0x97, 0xBE,
+ 0x5B, 0x9E, 0xFA, 0xBD, 0xB3, 0x0D, 0x7A, 0xBE, 0xDB, 0x41, 0x0A, 0xBF,
+ 0x74, 0x6A, 0xFD, 0x3D, 0x1F, 0x7F, 0x2F, 0x3C, 0x23, 0x75, 0x13, 0x3C,
+ 0x07, 0x2E, 0x11, 0x3E, 0x33, 0xC1, 0xB9, 0xBD, 0xA8, 0xD6, 0xC3, 0xBE,
+ 0xAE, 0x16, 0x97, 0xBC, 0x25, 0x4F, 0x88, 0x3F, 0x53, 0x22, 0x22, 0xBC,
+ 0xD6, 0x9C, 0x29, 0xBE, 0x07, 0x8B, 0xC6, 0x3D, 0xF5, 0x00, 0x3C, 0x3E,
+ 0x3A, 0xF8, 0xD1, 0xBD, 0x72, 0x01, 0x80, 0x3C, 0x33, 0xE3, 0x12, 0x3E,
+ 0x50, 0x6B, 0x10, 0x3B, 0x77, 0xE9, 0xD0, 0xBD, 0x4A, 0x2E, 0xE7, 0x3C,
+ 0x72, 0xD2, 0x92, 0x3E, 0x1E, 0xDC, 0xA1, 0xBE, 0xC0, 0xD4, 0x65, 0xBD,
+ 0x63, 0x2D, 0xC6, 0x3B, 0xDF, 0x6C, 0x34, 0xBB, 0xD6, 0xA9, 0x91, 0xBD,
+ 0x23, 0x0D, 0x06, 0xBC, 0x91, 0xE4, 0x15, 0xBD, 0x31, 0x7B, 0x9C, 0xBE,
+ 0x3E, 0x48, 0xE0, 0xBE, 0xEE, 0x40, 0xDD, 0xBE, 0x14, 0xE3, 0xEA, 0xBD,
+ 0x99, 0xCF, 0x3B, 0xBE, 0xC9, 0xA2, 0x5C, 0x3C, 0xDA, 0x26, 0xE1, 0xBA,
+ 0xA0, 0x88, 0x01, 0x3D, 0xE9, 0x35, 0x3B, 0x3F, 0xB6, 0x1E, 0xC6, 0xBC,
+ 0x6A, 0x35, 0x30, 0xBF, 0x8F, 0xAE, 0x00, 0x3C, 0x53, 0x08, 0xF2, 0x3E,
+ 0x17, 0x14, 0xF0, 0xBE, 0x39, 0xD3, 0x3C, 0xBD, 0x24, 0x1B, 0x4A, 0x3E,
+ 0xD3, 0xDC, 0x3F, 0xBE, 0x80, 0xFA, 0xA0, 0xBE, 0x03, 0xED, 0x51, 0x3D,
+ 0xEB, 0x80, 0x4C, 0xBF, 0x24, 0xEA, 0xAA, 0x3D, 0xFA, 0x2A, 0x0D, 0x3D,
+ 0x58, 0xA0, 0x9E, 0x3D, 0x0B, 0x03, 0xE8, 0xBD, 0x5F, 0xFC, 0x1B, 0x3F,
+ 0x13, 0x0C, 0xE3, 0xBD, 0x3F, 0x86, 0x38, 0x3F, 0x2F, 0xF1, 0xC6, 0x3C,
+ 0xD0, 0xA3, 0x03, 0xBF, 0xAE, 0x12, 0x92, 0x3E, 0x6B, 0x0C, 0xF3, 0xBD,
+ 0x66, 0x1F, 0x7D, 0xBE, 0x95, 0xBC, 0x37, 0x3F, 0xF6, 0xD3, 0xD4, 0x3E,
+ 0x6A, 0x3C, 0xCF, 0x3D, 0x4A, 0x33, 0x59, 0xBE, 0xE5, 0xEC, 0x45, 0xBE,
+ 0x4E, 0x97, 0xAA, 0x3E, 0x41, 0xBA, 0xCE, 0x3E, 0xDC, 0xDB, 0x1A, 0x3F,
+ 0xCD, 0x31, 0xAF, 0xBE, 0xF0, 0x11, 0x8B, 0xBC, 0x51, 0x8D, 0xC5, 0xBD,
+ 0x8C, 0xC9, 0x94, 0x3D, 0x53, 0xA2, 0x41, 0xBB, 0x97, 0xEB, 0x5C, 0x3D,
+ 0x36, 0x72, 0x20, 0x3B, 0x59, 0x5C, 0x2D, 0xBC, 0x3A, 0x30, 0xD2, 0xBC,
+ 0xAC, 0x08, 0x05, 0xBD, 0x86, 0x40, 0x0C, 0x3C, 0x28, 0xC0, 0xB2, 0x3D,
+ 0xFB, 0xDC, 0x08, 0xBD, 0x8F, 0x6F, 0x21, 0xBC, 0x3C, 0xE5, 0x7A, 0x3D,
+ 0x25, 0x02, 0xD5, 0xBD, 0xAF, 0x7C, 0x2F, 0x3C, 0xB7, 0xBA, 0x36, 0x3D,
+ 0xF4, 0x68, 0x2B, 0xBB, 0xE6, 0x47, 0x1B, 0x3C, 0xB2, 0xCB, 0x94, 0xBD,
+ 0xC7, 0x08, 0x9F, 0x3B, 0xB3, 0x63, 0x4B, 0x3C, 0xFA, 0xF1, 0x28, 0xBD,
+ 0x66, 0x09, 0x0F, 0x3D, 0x98, 0xC8, 0x13, 0x3D, 0x47, 0x46, 0x39, 0xBC,
+ 0x35, 0x6A, 0x05, 0xBD, 0x48, 0x62, 0xF6, 0xBC, 0x9C, 0x3A, 0x91, 0x3D,
+ 0xAC, 0x69, 0xC5, 0x3B, 0x27, 0x96, 0x09, 0x3E, 0x8A, 0x3F, 0x0C, 0xBD,
+ 0x7F, 0x5C, 0xEB, 0xBC, 0xCE, 0xE0, 0x24, 0x3F, 0x9B, 0xAF, 0xFC, 0xBE,
+ 0x94, 0xAA, 0x84, 0x3E, 0x33, 0xA0, 0x4A, 0xBF, 0x2F, 0xC7, 0x85, 0x3D,
+ 0x6A, 0xC9, 0x85, 0x3E, 0x7E, 0xC7, 0x31, 0x3F, 0xD8, 0xDB, 0xC9, 0x3E,
+ 0x22, 0x44, 0x02, 0x3E, 0xFF, 0xAE, 0x3E, 0xBF, 0xE5, 0x49, 0xFC, 0x3D,
+ 0x77, 0x38, 0x0D, 0xBD, 0xD1, 0x7D, 0x2E, 0x3E, 0x89, 0xBC, 0x45, 0xBE,
+ 0xD2, 0x8A, 0x0B, 0xBF, 0x0F, 0x66, 0xE0, 0xBE, 0xB8, 0x56, 0xBD, 0xBE,
+ 0xD1, 0x5C, 0x82, 0xBD, 0x0F, 0x56, 0x42, 0x3F, 0x0D, 0xA5, 0x24, 0x3F,
+ 0xFD, 0x51, 0xAF, 0x3C, 0xCC, 0xC6, 0x83, 0x3D, 0x02, 0x1D, 0xA4, 0x3E,
+ 0xFB, 0x13, 0x63, 0xBE, 0xC4, 0x60, 0xF6, 0xBD, 0x66, 0x68, 0xD1, 0x3E,
+ 0x7D, 0x68, 0x2D, 0x3D, 0xF4, 0x5F, 0x27, 0xBF, 0x2A, 0x9F, 0x61, 0x3D,
+ 0xC0, 0x20, 0x2B, 0xBE, 0x02, 0x88, 0x24, 0x3B, 0xFE, 0x06, 0xB7, 0x3D,
+ 0x56, 0x10, 0xE6, 0x3D, 0x8B, 0x91, 0x0C, 0xBD, 0x96, 0xAB, 0xE1, 0xBC,
+ 0x96, 0x8F, 0x62, 0xBD, 0x43, 0x79, 0x33, 0x3C, 0xD6, 0x66, 0xB6, 0x3C,
+ 0xBC, 0x22, 0x71, 0x3C, 0x5D, 0xF7, 0x01, 0xBC, 0x4C, 0x06, 0x76, 0xBC,
+ 0x3D, 0xB3, 0xDC, 0x3C, 0xC3, 0xCA, 0xDC, 0x3C, 0x02, 0xA3, 0xBB, 0x3C,
+ 0xD9, 0x89, 0x0F, 0xBD, 0xA4, 0xAB, 0xA8, 0x3E, 0x96, 0xAE, 0x5B, 0xBD,
+ 0x45, 0xA8, 0x34, 0xBD, 0xC8, 0xCC, 0xB9, 0xBC, 0x15, 0x15, 0x22, 0x3A,
+ 0x4C, 0xA5, 0xCE, 0x3C, 0x02, 0x1A, 0x86, 0x3C, 0xC8, 0x69, 0x99, 0xBC,
+ 0xDC, 0x96, 0x8F, 0x3D, 0xFE, 0x09, 0x01, 0xBE, 0x3D, 0x06, 0xD5, 0x3C,
+ 0x44, 0x87, 0x80, 0xBD, 0x70, 0x67, 0x44, 0xBD, 0x9B, 0x45, 0xA6, 0x3C,
+ 0xBC, 0x28, 0x0D, 0xBE, 0x57, 0x16, 0x21, 0xBB, 0xAF, 0xAE, 0x6D, 0xBE,
+ 0x95, 0x6E, 0xF0, 0xBC, 0x12, 0xE6, 0xD0, 0x3C, 0x6C, 0x5E, 0x85, 0x3D,
+ 0x15, 0x10, 0xFA, 0x3E, 0xF7, 0xC6, 0xB2, 0xBE, 0x25, 0x25, 0x35, 0xBE,
+ 0x8B, 0xA0, 0x91, 0xBD, 0x28, 0x18, 0x69, 0xBE, 0x3F, 0x00, 0xA2, 0xBE,
+ 0x2C, 0x16, 0xB6, 0xBD, 0x50, 0x7E, 0xA0, 0xBE, 0xB0, 0x68, 0x08, 0xBE,
+ 0x0D, 0xDC, 0xC6, 0xBC, 0x22, 0x9E, 0xCC, 0xBC, 0x9E, 0xA2, 0x2B, 0x3E,
+ 0x2F, 0x66, 0x01, 0x3F, 0x99, 0xE6, 0x05, 0xBE, 0xD5, 0x73, 0x0E, 0x3E,
+ 0x62, 0x16, 0x71, 0xBE, 0xB6, 0xEA, 0xDB, 0xBC, 0x58, 0x60, 0x26, 0xBF,
+ 0xA5, 0xDE, 0xBD, 0xBE, 0x3D, 0xC0, 0x2E, 0xBD, 0x92, 0x14, 0xA9, 0xBB,
+ 0x14, 0xA0, 0x93, 0x3F, 0xB3, 0x2B, 0xB6, 0xBE, 0x7A, 0xAE, 0xAD, 0x3D,
+ 0x66, 0x53, 0x0A, 0xBC, 0xB8, 0xC6, 0x60, 0xBE, 0x2F, 0x78, 0x9F, 0xBE,
+ 0x3C, 0x39, 0xD1, 0xBD, 0x13, 0xE1, 0x2E, 0xBE, 0x66, 0x45, 0x1F, 0xBF,
+ 0x24, 0xAD, 0xFE, 0xBD, 0xE1, 0x9C, 0x7D, 0x3F, 0xF2, 0x55, 0x17, 0xBF,
+ 0xF3, 0x84, 0x3B, 0x3F, 0xF6, 0x9D, 0x90, 0x3E, 0x00, 0x15, 0xB4, 0x3C,
+ 0x4A, 0x08, 0x7A, 0xBD, 0x7A, 0x4C, 0xB6, 0x3E, 0xB4, 0xD7, 0xDC, 0x3D,
+ 0x08, 0xBA, 0x6F, 0x3E, 0xB2, 0x6C, 0x37, 0xBE, 0x0B, 0x7E, 0x8E, 0x3F,
+ 0xB1, 0x96, 0x34, 0x3D, 0x2F, 0xF4, 0x38, 0xBF, 0x53, 0x0B, 0x42, 0xC0,
+ 0xD4, 0xEF, 0xDB, 0xBD, 0xB3, 0x6B, 0x75, 0xBF, 0xA3, 0x83, 0x1B, 0x3F,
+ 0xF4, 0x90, 0x87, 0x3C, 0xAA, 0xF2, 0x82, 0x3F, 0x75, 0x12, 0x16, 0xBF,
+ 0x59, 0x50, 0x4E, 0x3E, 0x8D, 0x3D, 0x63, 0xBD, 0xAC, 0xA8, 0xC6, 0xBE,
+ 0x11, 0xBF, 0x91, 0x3D, 0x3B, 0xEE, 0x4E, 0xBF, 0xDD, 0x90, 0x7E, 0x3E,
+ 0xBD, 0xF4, 0x10, 0xBF, 0x22, 0x4F, 0x96, 0x3E, 0x9B, 0x00, 0x83, 0x3E,
+ 0x5B, 0x0E, 0x82, 0x3E, 0x2C, 0x21, 0xF4, 0xBE, 0x6B, 0xAF, 0xC3, 0x3E,
+ 0xE1, 0x10, 0x8E, 0x3E, 0xC7, 0x1B, 0x8D, 0x3E, 0x5E, 0xB2, 0xB4, 0xBF,
+ 0x54, 0xC0, 0x5F, 0xBD, 0xAF, 0x82, 0xB5, 0xBD, 0x4E, 0xF1, 0xAE, 0x3E,
+ 0x60, 0xC2, 0xE3, 0x3E, 0xAC, 0x73, 0x53, 0x3E, 0x0F, 0x07, 0xB5, 0xBE,
+ 0xDE, 0x4B, 0x03, 0xBF, 0x5A, 0x87, 0xFB, 0x3D, 0xDD, 0x41, 0x21, 0xBE,
+ 0xC8, 0x4C, 0x22, 0xBF, 0xBB, 0xC2, 0x82, 0xBF, 0xFF, 0x76, 0xBF, 0xBF,
+ 0x92, 0xF7, 0xF5, 0xBD, 0xFC, 0xCE, 0xC9, 0x3D, 0xA7, 0x8F, 0xCF, 0xBD,
+ 0xE0, 0x2B, 0xAE, 0xBE, 0xA1, 0xAD, 0x1F, 0x3E, 0x73, 0xAE, 0xD2, 0xBD,
+ 0xA0, 0x42, 0x52, 0x3E, 0x44, 0xBC, 0x30, 0x3D, 0x25, 0xBC, 0x47, 0xBD,
+ 0x65, 0x57, 0xDC, 0x3E, 0xF6, 0x4E, 0x15, 0xBE, 0x91, 0x4D, 0xC2, 0x3E,
+ 0xD0, 0x50, 0xC5, 0x3D, 0xAA, 0xBE, 0xAA, 0xBE, 0xA8, 0x66, 0x1F, 0xBF,
+ 0xA3, 0x8F, 0xAF, 0x3D, 0xEF, 0x07, 0xC9, 0x3D, 0xA4, 0x6E, 0xBE, 0x3E,
+ 0x3D, 0x8E, 0x48, 0xBA, 0x45, 0x8A, 0x86, 0x3E, 0xAB, 0xAA, 0x7D, 0xBD,
+ 0x36, 0x38, 0xBB, 0xBD, 0x6C, 0x5E, 0x4F, 0x3D, 0xE3, 0x3E, 0x5A, 0x3D,
+ 0xA3, 0x85, 0x11, 0xBF, 0x2B, 0x22, 0x9C, 0xBD, 0xC0, 0xB6, 0xE0, 0xBE,
+ 0x31, 0x65, 0xF0, 0x3E, 0x88, 0x81, 0x35, 0xBD, 0xFE, 0xEC, 0x1C, 0x3E,
+ 0x97, 0xB6, 0xA1, 0xBE, 0x5B, 0xFA, 0x82, 0xBE, 0x7C, 0x02, 0x01, 0x3E,
+ 0x6F, 0x58, 0x04, 0x3F, 0x38, 0x4D, 0x45, 0xBD, 0xD6, 0xEA, 0xF4, 0x3E,
+ 0x48, 0x98, 0xCA, 0xBD, 0xDE, 0x61, 0x6E, 0xBB, 0xDB, 0x04, 0xCC, 0x3D,
+ 0x14, 0x73, 0xD7, 0x3E, 0xA3, 0xB6, 0x1A, 0xBF, 0x41, 0x27, 0x3A, 0xBE,
+ 0xC7, 0xE1, 0x2E, 0xBE, 0x0C, 0x61, 0x62, 0x3E, 0x8E, 0xA9, 0x38, 0x3F,
+ 0x50, 0xCB, 0x98, 0x3E, 0x28, 0xF4, 0x1B, 0x3E, 0x38, 0xFC, 0x7E, 0xBD,
+ 0xD6, 0xFB, 0x72, 0x3E, 0x3E, 0x34, 0x4C, 0x3D, 0xF7, 0x4F, 0x81, 0x3E,
+ 0xFC, 0x8C, 0x81, 0x3B, 0xCE, 0x25, 0x3C, 0xBB, 0x50, 0xCE, 0x9B, 0x3D,
+ 0x2E, 0xB4, 0xE6, 0x3E, 0x08, 0x33, 0xBD, 0x3D, 0x6C, 0x0E, 0x96, 0xBE,
+ 0x37, 0x46, 0x9A, 0x3D, 0x82, 0x7B, 0xE7, 0xBE, 0x25, 0x86, 0x3D, 0xBD,
+ 0x55, 0xCB, 0x3F, 0xBD, 0x44, 0x70, 0x6F, 0xBE, 0x88, 0x12, 0xD7, 0xBE,
+ 0xA6, 0x3E, 0x1E, 0x3F, 0x5A, 0xB5, 0x82, 0x3E, 0x0B, 0x1C, 0x53, 0xBE,
+ 0x0E, 0x4A, 0x80, 0x3C, 0x45, 0x7B, 0xC5, 0xBD, 0x4D, 0x63, 0xC4, 0x3E,
+ 0xDB, 0x1D, 0xD0, 0xBE, 0x45, 0x36, 0xB6, 0xBC, 0x43, 0x10, 0x30, 0xBE,
+ 0x54, 0x3D, 0x2E, 0xBE, 0xBA, 0x5B, 0xD0, 0x3E, 0x34, 0x15, 0x50, 0x3E,
+ 0x91, 0x1B, 0x84, 0xBE, 0xCD, 0x0D, 0x9D, 0xBF, 0xAE, 0xD0, 0x4A, 0x3E,
+ 0xCF, 0x25, 0xF1, 0x3E, 0x9B, 0x96, 0xB0, 0xBE, 0x2A, 0xF7, 0x4C, 0xBE,
+ 0xC9, 0x64, 0x71, 0xBE, 0xC3, 0x11, 0xBD, 0x3C, 0xD9, 0x3D, 0xB5, 0xBD,
+ 0xF8, 0x1F, 0x17, 0xBD, 0x39, 0x28, 0xDE, 0x3C, 0x6F, 0xAC, 0xCC, 0xBD,
+ 0x91, 0x88, 0x55, 0x3D, 0x2E, 0x34, 0xB0, 0xBD, 0xDB, 0x3E, 0x82, 0xBE,
+ 0xAB, 0xFE, 0x84, 0x3E, 0xF5, 0x5D, 0xE7, 0xBD, 0x03, 0xCC, 0x5A, 0x3D,
+ 0xBC, 0x2B, 0xE7, 0x3E, 0x14, 0x8B, 0x94, 0x3E, 0x91, 0x90, 0x03, 0xBD,
+ 0xBC, 0x0A, 0xE2, 0x3E, 0xB4, 0xE1, 0xB9, 0x3E, 0x0F, 0xDE, 0x02, 0x3D,
+ 0x80, 0x3C, 0x20, 0x3E, 0xD0, 0x41, 0x47, 0x3E, 0x3E, 0x9D, 0x47, 0xBE,
+ 0x07, 0xAA, 0x5D, 0xBD, 0x85, 0x9F, 0x67, 0x3E, 0xD1, 0x94, 0x3E, 0x3E,
+ 0x29, 0x41, 0x56, 0x3F, 0x46, 0x09, 0xDE, 0x3C, 0xEE, 0xC6, 0xFC, 0x3D,
+ 0x55, 0x47, 0x8C, 0xBC, 0x6F, 0x67, 0x86, 0x3B, 0xDA, 0xF2, 0xD0, 0xBD,
+ 0x66, 0x38, 0x09, 0xBF, 0x94, 0xD2, 0xC0, 0xBD, 0xC7, 0x9C, 0xD7, 0x3E,
+ 0xDC, 0xF2, 0x0D, 0xBE, 0xFA, 0x77, 0x14, 0x3F, 0x86, 0x58, 0x12, 0xBF,
+ 0xD8, 0x17, 0x1A, 0x3E, 0x9B, 0x43, 0x18, 0xBD, 0x49, 0x56, 0xE7, 0xBD,
+ 0x78, 0x99, 0x59, 0xBC, 0x3D, 0x5D, 0xB7, 0xBD, 0x94, 0x65, 0x36, 0x3F,
+ 0xCF, 0x04, 0x46, 0x3F, 0x0B, 0x4A, 0x0A, 0xBE, 0x14, 0xC8, 0x00, 0xBE,
+ 0x3C, 0xE9, 0xB5, 0x3D, 0xF2, 0x76, 0x0D, 0x3F, 0x4E, 0xA8, 0x81, 0x3E,
+ 0x56, 0x35, 0xE3, 0x3E, 0x20, 0x55, 0x70, 0xBD, 0x52, 0x2D, 0x18, 0x3E,
+ 0x96, 0x89, 0x20, 0xBF, 0xDB, 0x1A, 0xC0, 0x3E, 0xF4, 0xD4, 0x26, 0x3E,
+ 0xDD, 0x27, 0x4A, 0x3D, 0xA9, 0x09, 0x2F, 0x3E, 0x34, 0x62, 0x2E, 0xBF,
+ 0x42, 0x0D, 0x7B, 0xBD, 0xEA, 0x75, 0x21, 0xBF, 0x8F, 0x27, 0x0A, 0xBF,
+ 0xE3, 0x24, 0x3B, 0xBD, 0xB7, 0xFF, 0xA7, 0x3D, 0x49, 0x88, 0x63, 0xBE,
+ 0x54, 0x99, 0x0C, 0x3E, 0x72, 0xDD, 0xDC, 0x3E, 0x99, 0xB4, 0xA4, 0xBB,
+ 0x14, 0x8D, 0xB9, 0x3C, 0x58, 0xDD, 0xC4, 0x3E, 0x5B, 0xBE, 0xF3, 0xBD,
+ 0x3B, 0x00, 0x5D, 0x3E, 0xF9, 0x1C, 0xF1, 0xBD, 0x28, 0x56, 0x54, 0x3F,
+ 0x82, 0xE3, 0x90, 0x3E, 0x1B, 0x18, 0xC8, 0x3D, 0xCA, 0xD8, 0x77, 0xBE,
+ 0xC1, 0x8C, 0x8C, 0x3D, 0xD9, 0xC1, 0x4D, 0xBE, 0x3C, 0x81, 0x31, 0xBF,
+ 0xB7, 0x24, 0x80, 0x3E, 0x88, 0x73, 0x1A, 0x3D, 0xD1, 0xA4, 0x3A, 0xBE,
+ 0x08, 0xD0, 0x22, 0x3C, 0xEC, 0x0A, 0xCD, 0x3D, 0x3A, 0x9E, 0x62, 0x3D,
+ 0xE0, 0x70, 0xA5, 0x3D, 0x96, 0x9C, 0x39, 0xBE, 0x39, 0x1B, 0x47, 0xBF,
+ 0xA0, 0xA6, 0xE3, 0xBD, 0x31, 0x30, 0x48, 0xBD, 0xA9, 0x8A, 0xE6, 0xBC,
+ 0x47, 0x04, 0x79, 0x3D, 0xE0, 0xB6, 0xFB, 0xBE, 0x34, 0x92, 0x65, 0xBE,
+ 0xAB, 0xA0, 0xFB, 0x3F, 0x8F, 0x2A, 0x40, 0x3F, 0x13, 0xE9, 0x6C, 0xBE,
+ 0x09, 0xAF, 0x56, 0xBE, 0x92, 0xF6, 0x5C, 0xBE, 0x08, 0xE3, 0x7E, 0x3F,
+ 0x2F, 0x4F, 0xCC, 0xBD, 0x5B, 0xC5, 0xBE, 0xBE, 0x10, 0x58, 0x0E, 0xBE,
+ 0x06, 0xA1, 0x40, 0xBE, 0xE8, 0xCE, 0x3F, 0x3E, 0x2F, 0xA0, 0x2D, 0xBF,
+ 0x5A, 0xD9, 0x85, 0xBE, 0x5D, 0x34, 0x5A, 0xBE, 0x5A, 0x6C, 0x03, 0x3D,
+ 0x05, 0xEB, 0x8B, 0x3F, 0x2D, 0x38, 0x33, 0x3F, 0x86, 0xCB, 0x41, 0x3D,
+ 0x15, 0xAB, 0x67, 0xBE, 0x69, 0x0B, 0xF9, 0x3E, 0x5E, 0x85, 0x53, 0x3D,
+ 0xEC, 0xDE, 0x9E, 0x3E, 0x0B, 0xDC, 0x16, 0xBF, 0xE6, 0x60, 0x66, 0xBF,
+ 0xB0, 0x68, 0x25, 0xBF, 0x14, 0x95, 0x51, 0x3E, 0xE9, 0x28, 0xD9, 0x3C,
+ 0xA6, 0x03, 0xD4, 0xBE, 0x80, 0xB4, 0x37, 0xBE, 0x9A, 0xCF, 0x61, 0x3D,
+ 0x47, 0xA8, 0x64, 0x3F, 0xE3, 0x99, 0x74, 0x3E, 0xC4, 0x7D, 0x84, 0xBF,
+ 0xFD, 0xD4, 0x11, 0xBF, 0x1B, 0xD4, 0x31, 0x3E, 0x7F, 0xAD, 0x86, 0x3E,
+ 0xB7, 0x76, 0xC8, 0xBE, 0xAE, 0xEA, 0x52, 0x3E, 0xE9, 0x71, 0x8B, 0xBD,
+ 0xA2, 0x46, 0x46, 0x3E, 0x17, 0x9C, 0x11, 0xBF, 0xE9, 0x08, 0xA1, 0xBE,
+ 0x68, 0x8C, 0x82, 0x3E, 0x63, 0xC3, 0x48, 0xBE, 0xE9, 0xF9, 0x80, 0xBD,
+ 0x27, 0xA2, 0x0E, 0x3C, 0xC4, 0xE2, 0x95, 0x3E, 0xD8, 0x8B, 0x1E, 0x3F,
+ 0x21, 0xEC, 0x8F, 0x3F, 0xAF, 0x8D, 0x5B, 0x3F, 0xAD, 0x5D, 0x5A, 0x3E,
+ 0xF2, 0x89, 0x96, 0x3D, 0x4C, 0x9B, 0x4B, 0x3E, 0xCF, 0x36, 0x5A, 0x3F,
+ 0xED, 0xED, 0xD1, 0xBD, 0x8A, 0x18, 0x25, 0x3D, 0xAC, 0x3E, 0xBF, 0x3E,
+ 0xBB, 0x2B, 0x76, 0x3D, 0xA7, 0x42, 0x5A, 0x3D, 0x48, 0x42, 0x77, 0xBF,
+ 0x23, 0x68, 0x32, 0x3E, 0xCD, 0x2A, 0x37, 0x3C, 0x33, 0xCE, 0xB3, 0x3E,
+ 0x85, 0x7E, 0x1A, 0x3F, 0x64, 0xBE, 0xDA, 0xBE, 0x97, 0xEE, 0x18, 0xBE,
+ 0xC8, 0x45, 0x17, 0x3F, 0x3A, 0x3F, 0x81, 0x3E, 0x99, 0x43, 0x01, 0x3C,
+ 0xCE, 0xA3, 0xC7, 0x3C, 0xD0, 0x52, 0x53, 0x3E, 0xA1, 0x54, 0xFC, 0xBC,
+ 0xF8, 0xC6, 0xA4, 0x39, 0x2A, 0xBF, 0x87, 0x3D, 0x8F, 0xAC, 0x5A, 0x3C,
+ 0xEA, 0xE5, 0xD1, 0xB9, 0xEE, 0x8A, 0x51, 0x3E, 0x46, 0x2E, 0x26, 0x3E,
+ 0x9F, 0xF7, 0xB1, 0x3D, 0x28, 0x87, 0x8F, 0xBE, 0x0C, 0xC4, 0x7C, 0x3C,
+ 0x88, 0xBF, 0x86, 0xBE, 0xF0, 0x32, 0x91, 0xBD, 0x0B, 0x59, 0x5B, 0xBD,
+ 0x28, 0xBA, 0x90, 0x3D, 0x46, 0xF3, 0x3A, 0x3E, 0x3A, 0xA4, 0x6D, 0xBD,
+ 0x5A, 0xDA, 0xC2, 0xBD, 0xB4, 0x78, 0x69, 0x3C, 0x39, 0xC0, 0x12, 0xBE,
+ 0x4C, 0x4C, 0x1A, 0x3E, 0x8B, 0xAC, 0x28, 0xBE, 0x12, 0xDD, 0x9D, 0xBD,
+ 0x48, 0xA9, 0x08, 0x3E, 0x6F, 0xC1, 0x4D, 0xBE, 0x68, 0x76, 0x13, 0x3E,
+ 0xFD, 0x9E, 0x33, 0xBF, 0xA5, 0xAC, 0x44, 0x3E, 0x7F, 0x1D, 0x3C, 0xBD,
+ 0xDF, 0x65, 0xE2, 0x3C, 0xB3, 0x71, 0x4C, 0x3D, 0x48, 0x04, 0x87, 0xBD,
+ 0x69, 0x62, 0x65, 0x3C, 0xDE, 0x9E, 0x0B, 0xBE, 0xF9, 0x90, 0xCD, 0x3D,
+ 0x7B, 0x60, 0x7C, 0xBD, 0xE9, 0x73, 0xA9, 0x3C, 0x95, 0x54, 0x0A, 0x3D,
+ 0x29, 0x56, 0xB4, 0x3D, 0xEE, 0x6C, 0x27, 0xBD, 0x4C, 0xFA, 0x8B, 0x3C,
+ 0x2E, 0x89, 0xB2, 0x3C, 0xA5, 0x6A, 0x9E, 0x3D, 0x18, 0xEC, 0x72, 0xBC,
+ 0x36, 0x9D, 0x8C, 0x3D, 0x0D, 0x49, 0x7D, 0x3C, 0x59, 0xE5, 0x86, 0xBC,
+ 0x2F, 0x01, 0xD9, 0x3C, 0x02, 0xCD, 0x4C, 0xBD, 0x52, 0x47, 0xA8, 0x3C,
+ 0xD6, 0x00, 0x04, 0xBC, 0xB5, 0x1F, 0x7E, 0x3D, 0x67, 0xEA, 0x06, 0x3E,
+ 0xD3, 0xE0, 0x75, 0xBD, 0x4F, 0x44, 0x7B, 0xBD, 0xF7, 0xEA, 0x41, 0x3C,
+ 0x86, 0x73, 0x11, 0x3E, 0x9E, 0xDD, 0x0D, 0x3D, 0x0B, 0x4C, 0x3F, 0x3D,
+ 0xEC, 0x04, 0xF8, 0x3C, 0x45, 0xE9, 0x23, 0xBD, 0xAC, 0x7F, 0x19, 0x3E,
+ 0xD9, 0xF9, 0xFE, 0x3D, 0xC0, 0x71, 0x85, 0xBE, 0x9E, 0xA8, 0x57, 0xBE,
+ 0x09, 0xA8, 0xB6, 0xBE, 0xF5, 0x3D, 0x0C, 0xBF, 0xD1, 0x10, 0x90, 0xBE,
+ 0x76, 0x46, 0x1E, 0xBE, 0x56, 0x1B, 0xA6, 0xBE, 0xFD, 0x79, 0x12, 0xBF,
+ 0x4F, 0x07, 0x08, 0xBF, 0x56, 0xE7, 0x00, 0x3F, 0x90, 0x80, 0x06, 0xBF,
+ 0x36, 0x04, 0x94, 0x3F, 0xD1, 0x4B, 0x05, 0x3F, 0x40, 0xD4, 0x77, 0x3E,
+ 0x2E, 0x3D, 0x39, 0xBF, 0xDB, 0xA2, 0x03, 0x3F, 0x8A, 0x9D, 0x24, 0xBF,
+ 0x07, 0x69, 0x8A, 0x3F, 0x7E, 0xCB, 0x54, 0xBF, 0xE7, 0x70, 0x1B, 0xBD,
+ 0x96, 0xEE, 0x91, 0xBD, 0x78, 0xC5, 0xD6, 0x3C, 0x92, 0x99, 0xEF, 0x3E,
+ 0xBB, 0xE3, 0xF4, 0xBD, 0x19, 0xAD, 0x85, 0xBE, 0x9C, 0x12, 0x26, 0x3E,
+ 0x5A, 0xB5, 0x0E, 0x3F, 0x30, 0x4B, 0x4A, 0xBE, 0x61, 0xD4, 0x4F, 0x3E,
+ 0x47, 0x81, 0x22, 0xBF, 0x83, 0xBD, 0x27, 0x3D, 0x6D, 0x8B, 0xD3, 0x3C,
+ 0x47, 0x98, 0xA8, 0x3B, 0x33, 0xB8, 0xDC, 0xBC, 0x6B, 0x83, 0x70, 0x3C,
+ 0xD5, 0x87, 0x2E, 0x3A, 0x07, 0xBE, 0x12, 0xBD, 0xE9, 0xC3, 0x2C, 0x3C,
+ 0x6C, 0x77, 0x9D, 0x3D, 0xFE, 0xCA, 0x8D, 0x3C, 0x5D, 0x93, 0x63, 0x3D,
+ 0xF9, 0x43, 0x45, 0x3A, 0x70, 0xB3, 0xBD, 0xBB, 0x06, 0xDA, 0x52, 0x3D,
+ 0xC8, 0x1F, 0x2C, 0xBD, 0x7A, 0xFF, 0x62, 0xBC, 0x60, 0xDB, 0x6C, 0xBD,
+ 0x71, 0x0E, 0x7E, 0x3C, 0xAA, 0xDD, 0x9D, 0x3C, 0x84, 0x2B, 0x88, 0xBC,
+ 0xB9, 0x8D, 0xCC, 0xBC, 0x97, 0x57, 0x3A, 0xBD, 0xE2, 0x06, 0xD1, 0xBC,
+ 0x5F, 0x0F, 0xAC, 0xBC, 0x9E, 0x1C, 0xB5, 0xBD, 0x28, 0xDA, 0xCA, 0x3C,
+ 0x7F, 0xBA, 0x0E, 0x3D, 0xEB, 0x0E, 0x05, 0xBE, 0x09, 0x8A, 0x9C, 0xBD,
+ 0x84, 0xF0, 0x59, 0x3C, 0x73, 0x77, 0xBE, 0x3C, 0xBD, 0x49, 0x49, 0x3D,
+ 0x4A, 0x9B, 0xA2, 0x3D, 0x61, 0x4F, 0x5B, 0xBC, 0x0A, 0x7E, 0x26, 0xBD,
+ 0x44, 0xA6, 0x0E, 0xBC, 0xF7, 0x60, 0xF4, 0x3C, 0x77, 0x5D, 0xCE, 0xBB,
+ 0xC2, 0x52, 0xC3, 0x3B, 0x09, 0x3E, 0x17, 0xBD, 0xCA, 0xE1, 0x4D, 0xBB,
+ 0x2F, 0x98, 0x5B, 0x3B, 0x2D, 0xC3, 0x32, 0x3D, 0x08, 0x4A, 0x83, 0x3A,
+ 0xAB, 0x09, 0x8D, 0x3B, 0x4A, 0xCE, 0xC7, 0xBD, 0x13, 0x34, 0xB1, 0xBD,
+ 0xDE, 0xAB, 0xEA, 0xBC, 0x32, 0xE5, 0xC3, 0x3C, 0x4B, 0x30, 0x07, 0x3B,
+ 0x54, 0x4D, 0x64, 0x3D, 0x26, 0xFD, 0xC0, 0x3C, 0xFC, 0x18, 0x44, 0xBD,
+ 0x9A, 0x7F, 0x00, 0xBC, 0x19, 0xED, 0x63, 0x3D, 0xCD, 0x35, 0x39, 0xBD,
+ 0xD8, 0x19, 0xF2, 0x3A, 0x12, 0xCC, 0x40, 0xBC, 0xE1, 0x93, 0xA1, 0x3C,
+ 0xCD, 0x4B, 0xA2, 0xBD, 0x9A, 0x39, 0xDA, 0xBC, 0xF4, 0xCD, 0xAC, 0xBD,
+ 0x02, 0x02, 0x11, 0xBD, 0xC5, 0x7F, 0x4A, 0x3C, 0x92, 0x66, 0xB2, 0x3E,
+ 0x69, 0x82, 0x93, 0x3D, 0xED, 0x4C, 0x06, 0xBF, 0xF7, 0x79, 0x28, 0x3E,
+ 0x5A, 0xF4, 0x96, 0xBD, 0x58, 0x34, 0x63, 0xBD, 0x60, 0x54, 0xC3, 0x3D,
+ 0x60, 0xEB, 0xCD, 0xBD, 0xD3, 0xA7, 0xD6, 0xBC, 0x45, 0xDE, 0xAE, 0x3D,
+ 0xD4, 0x34, 0x1C, 0x3E, 0x17, 0x3E, 0x82, 0xBC, 0x01, 0x30, 0x9C, 0x3E,
+ 0x39, 0x16, 0x85, 0x3E, 0x0E, 0xE6, 0xFF, 0x3E, 0xDE, 0xB5, 0x87, 0xBD,
+ 0x65, 0x30, 0xC2, 0x3E, 0x44, 0xFF, 0xB5, 0xBB, 0xFE, 0x55, 0xDA, 0x3E,
+ 0x25, 0x0E, 0xA0, 0x3B, 0x5F, 0x52, 0x53, 0xBD, 0xBA, 0xE7, 0x2E, 0xBB,
+ 0x12, 0xF8, 0x2C, 0xBE, 0xDF, 0x03, 0xC1, 0x3C, 0x9D, 0x68, 0xDE, 0xBC,
+ 0xC6, 0x9C, 0x60, 0xBE, 0xF5, 0x60, 0xC6, 0xBD, 0x03, 0xF9, 0xB1, 0x3E,
+ 0x9E, 0x39, 0xB0, 0xBC, 0x18, 0x3E, 0x9B, 0xBE, 0x8C, 0xF7, 0x94, 0xBE,
+ 0x24, 0x03, 0x9F, 0xBD, 0xE7, 0x1C, 0xD1, 0x3C, 0xED, 0xDB, 0x93, 0x3C,
+ 0x48, 0xF6, 0x06, 0xBD, 0x67, 0x81, 0x03, 0x3C, 0x60, 0x60, 0x0B, 0xBB,
+ 0x7D, 0x32, 0xA9, 0xBA, 0x46, 0x63, 0x9D, 0xBC, 0x18, 0x77, 0x53, 0x3C,
+ 0x35, 0x6F, 0x7A, 0x3D, 0x72, 0x47, 0x6A, 0x3C, 0x19, 0xA7, 0xF9, 0x3B,
+ 0xDC, 0x69, 0xBE, 0xBB, 0x92, 0xDE, 0xB0, 0x3C, 0x6B, 0x7F, 0x95, 0xBC,
+ 0x4E, 0x03, 0x90, 0x3C, 0xEC, 0xBE, 0xD3, 0x3B, 0x62, 0x2C, 0x42, 0x3D,
+ 0xEC, 0x54, 0x1D, 0xBB, 0x92, 0x9C, 0x04, 0x3C, 0x37, 0x4B, 0xE2, 0x3B,
+ 0x5B, 0x47, 0x31, 0xBD, 0x70, 0x01, 0x86, 0xBB, 0x5B, 0xA9, 0xD8, 0x3B,
+ 0xCF, 0x06, 0x08, 0xBC, 0x09, 0x0D, 0x56, 0xBD, 0xAE, 0x42, 0x2F, 0x3B,
+ 0x86, 0x6B, 0xAB, 0x3C, 0x5C, 0x56, 0x14, 0xBD, 0x54, 0xD6, 0x49, 0xBD,
+ 0xA9, 0xFC, 0xB4, 0xBD, 0xE5, 0x64, 0xD5, 0xBC, 0xF8, 0x90, 0x60, 0x3C,
+ 0xFA, 0x19, 0x82, 0xBE, 0x58, 0xC0, 0x57, 0x3E, 0xEB, 0xB8, 0xC4, 0xBE,
+ 0x03, 0x1C, 0x95, 0xBE, 0x17, 0x60, 0xA3, 0x3E, 0xAE, 0xE5, 0x14, 0xBD,
+ 0x47, 0x25, 0xEA, 0x3D, 0xED, 0x2D, 0x07, 0xBF, 0x41, 0x73, 0x04, 0x3E,
+ 0x08, 0x7F, 0x74, 0x3E, 0xF7, 0x0A, 0x0D, 0x3F, 0x37, 0x02, 0x0A, 0xBE,
+ 0xF6, 0x2B, 0xB0, 0x3E, 0x06, 0x08, 0x1C, 0x3F, 0x0C, 0xCE, 0x75, 0xBE,
+ 0x1D, 0x2C, 0x55, 0xBE, 0x86, 0x50, 0x08, 0x3F, 0xD1, 0x84, 0x10, 0xBE,
+ 0xF0, 0xC4, 0xC1, 0x3E, 0xBD, 0x88, 0x5A, 0xBC, 0x81, 0x84, 0x70, 0x3E,
+ 0x98, 0xC0, 0x84, 0xBE, 0xCE, 0x39, 0x3A, 0x3E, 0xD2, 0xC8, 0x39, 0xBF,
+ 0x1F, 0xBF, 0xEE, 0x3D, 0x24, 0x91, 0xC1, 0xBE, 0x8F, 0xED, 0x35, 0xBE,
+ 0x07, 0x32, 0xCD, 0xBE, 0x9B, 0xA7, 0x66, 0x3E, 0x67, 0xC4, 0x00, 0x3F,
+ 0xC2, 0xED, 0x6A, 0xBF, 0x1D, 0x84, 0x9C, 0xBE, 0x3A, 0xA7, 0x14, 0xBE,
+ 0xAC, 0x5C, 0x2F, 0x3E, 0xE6, 0x10, 0x7F, 0x3E, 0x41, 0x91, 0x54, 0x3F,
+ 0xB7, 0x7C, 0x7E, 0x3E, 0x14, 0xDC, 0xF2, 0x3E, 0x09, 0x52, 0x11, 0xBF,
+ 0x44, 0x32, 0xD4, 0xBA, 0xDF, 0xB0, 0x38, 0xBE, 0x15, 0xF2, 0x35, 0x3E,
+ 0x43, 0x8D, 0x57, 0x3B, 0x20, 0x6F, 0x89, 0xBE, 0x19, 0x62, 0x20, 0xBF,
+ 0xB6, 0x72, 0x0E, 0xC0, 0x2C, 0x25, 0xAA, 0x3E, 0xB7, 0x01, 0x45, 0x3F,
+ 0x85, 0x65, 0x20, 0xBF, 0xE3, 0x5A, 0x25, 0xBE, 0x74, 0x9C, 0x26, 0xBE,
+ 0xE3, 0x85, 0x82, 0xBF, 0xBC, 0x9E, 0x28, 0xBE, 0x89, 0x44, 0xEE, 0xBE,
+ 0x27, 0x03, 0x94, 0xBE, 0xB9, 0xAC, 0x55, 0xBF, 0x11, 0x0B, 0x0B, 0x3E,
+ 0x90, 0x9E, 0xCA, 0x3E, 0xA8, 0x41, 0x96, 0x3E, 0xF6, 0x52, 0x05, 0xBF,
+ 0x7C, 0xB8, 0x37, 0xBF, 0xF1, 0x02, 0x10, 0x3E, 0x2F, 0x4C, 0xB3, 0x3E,
+ 0xFF, 0x79, 0xD6, 0xBE, 0x73, 0xB9, 0x78, 0xBD, 0x24, 0xC2, 0x57, 0xBC,
+ 0xD2, 0x26, 0xFA, 0xBD, 0x70, 0x98, 0xFC, 0xBD, 0xCC, 0xE8, 0xDF, 0xBD,
+ 0xBB, 0xCA, 0x07, 0xBD, 0x2A, 0xEA, 0x68, 0xBE, 0xDC, 0x9C, 0xBD, 0xBC,
+ 0x0D, 0x42, 0x4D, 0x3E, 0xD6, 0xA1, 0x52, 0xBC, 0xC4, 0x2B, 0x1B, 0xBB,
+ 0x95, 0xAF, 0x68, 0xBD, 0x85, 0xED, 0xED, 0x3D, 0xFC, 0xE6, 0xBB, 0x3E,
+ 0x8C, 0x0B, 0x14, 0x3F, 0x43, 0x13, 0x59, 0x3E, 0x40, 0x70, 0xE8, 0x3C,
+ 0x02, 0xBA, 0x03, 0x3D, 0xEC, 0xF9, 0xAC, 0xBE, 0x00, 0x67, 0x97, 0x3D,
+ 0x8E, 0xFF, 0xAC, 0x3C, 0xD1, 0x43, 0x35, 0x3D, 0x33, 0x8C, 0x98, 0xBD,
+ 0x98, 0xE2, 0xAA, 0x3B, 0x52, 0xB9, 0x93, 0xBB, 0x19, 0x83, 0xB5, 0x3E,
+ 0xCA, 0x66, 0x18, 0xBD, 0xE0, 0xF9, 0x23, 0x3E, 0xBD, 0x88, 0x6A, 0xBD,
+ 0x60, 0x91, 0x5E, 0xBE, 0x26, 0x89, 0x09, 0xBE, 0x1E, 0x78, 0x06, 0xBD,
+ 0x6C, 0x8A, 0xCF, 0x3C, 0xE6, 0x6A, 0x80, 0x3C, 0x0D, 0x35, 0x71, 0x3A,
+ 0x94, 0x48, 0x14, 0x3C, 0x89, 0x38, 0x3F, 0x3C, 0xF5, 0x0A, 0x71, 0x3C,
+ 0xF3, 0xC7, 0xEF, 0x3C, 0x20, 0xA5, 0x74, 0xBC, 0x7D, 0xBF, 0x9A, 0xBC,
+ 0x9D, 0xD5, 0x8D, 0x3C, 0x20, 0x9B, 0x16, 0x3D, 0x23, 0x81, 0x25, 0x3C,
+ 0xC4, 0x09, 0x58, 0xBC, 0xD9, 0xB8, 0x17, 0xBD, 0xC6, 0x60, 0x6D, 0x3D,
+ 0xB9, 0xEA, 0x23, 0xBD, 0xE0, 0x88, 0x1D, 0xBD, 0x32, 0x99, 0x45, 0x3B,
+ 0xDB, 0xE8, 0xF5, 0x3C, 0x47, 0x60, 0xFD, 0xBC, 0x46, 0x8D, 0x84, 0x3C,
+ 0x77, 0xAB, 0x47, 0xBD, 0xAA, 0xD5, 0x79, 0xBD, 0x19, 0x90, 0x43, 0xBC,
+ 0x51, 0x86, 0x95, 0xBC, 0x4B, 0x31, 0x23, 0x3D, 0x8E, 0x58, 0xB8, 0x3B,
+ 0xC2, 0x67, 0x30, 0xBD, 0x0C, 0x38, 0xC9, 0xBC, 0x0C, 0x37, 0x42, 0x3D,
+ 0x6F, 0x6B, 0xC5, 0x3C, 0x84, 0xBE, 0xE2, 0xBC, 0xA0, 0x53, 0x0E, 0xBE,
+ 0x59, 0xE9, 0xA8, 0xBE, 0x74, 0xE5, 0x5B, 0x3D, 0x81, 0x8B, 0x34, 0x3F,
+ 0xB2, 0xFA, 0x92, 0xBD, 0x93, 0x4A, 0x01, 0x3D, 0x17, 0x6C, 0x83, 0xBC,
+ 0xA6, 0xB9, 0x66, 0x3E, 0x96, 0x40, 0x9D, 0xBD, 0x41, 0x59, 0x1E, 0x3E,
+ 0xC8, 0x00, 0x6D, 0xBF, 0x4E, 0xEF, 0x33, 0x3D, 0x1E, 0x8F, 0xDD, 0xBC,
+ 0x81, 0xAF, 0x85, 0xBE, 0x0E, 0x5B, 0x48, 0x3D, 0xB0, 0x32, 0x69, 0xBD,
+ 0x48, 0xF8, 0x9A, 0xBE, 0x46, 0x44, 0xD4, 0x3C, 0x93, 0x0C, 0xA3, 0x3D,
+ 0x4A, 0x86, 0x07, 0x3F, 0x03, 0x8C, 0xB2, 0xBD, 0xA8, 0xCF, 0xF7, 0xBD,
+ 0xF1, 0x0F, 0x3D, 0xBE, 0x34, 0x89, 0xD7, 0xBD, 0x0F, 0xA6, 0xA7, 0xBE,
+ 0xA7, 0x18, 0x99, 0x3E, 0x79, 0x0A, 0x35, 0x3E, 0x21, 0x97, 0xD6, 0xBE,
+ 0x7B, 0x83, 0x51, 0xBC, 0xA1, 0x2B, 0x53, 0x3F, 0x3A, 0x8A, 0xED, 0xBD,
+ 0x5B, 0xB7, 0xC7, 0xBE, 0x7F, 0x6D, 0x45, 0xBF, 0x60, 0x40, 0x3D, 0x3E,
+ 0x02, 0x06, 0xFF, 0x3E, 0x91, 0xF7, 0x1E, 0x3F, 0xF0, 0x48, 0x8D, 0x3D,
+ 0xD8, 0x2A, 0xCD, 0x3D, 0xBF, 0xD0, 0x84, 0xBE, 0x19, 0xE0, 0xA2, 0x3D,
+ 0x3D, 0xC7, 0xB7, 0x3E, 0x57, 0x74, 0x27, 0xBE, 0x28, 0x47, 0x25, 0x3B,
+ 0x60, 0x01, 0x37, 0xBD, 0x27, 0x7F, 0xE8, 0xBB, 0x61, 0x24, 0xAD, 0xBE,
+ 0x28, 0x01, 0x2F, 0xBE, 0x93, 0xB3, 0x05, 0xBF, 0x03, 0x35, 0xCE, 0xBE,
+ 0x37, 0x2D, 0xEE, 0x3C, 0x0C, 0xEC, 0x78, 0xBF, 0xC8, 0xE2, 0x08, 0xBE,
+ 0xEF, 0x95, 0xD9, 0x3C, 0x44, 0x6C, 0x20, 0x3D, 0x08, 0xA8, 0x3D, 0x3F,
+ 0xA9, 0x04, 0x7F, 0x3E, 0x18, 0x0B, 0x49, 0x3E, 0x90, 0x24, 0x1C, 0x3E,
+ 0x4F, 0x84, 0xF4, 0xBE, 0x2B, 0xED, 0x62, 0xBD, 0x3B, 0x3E, 0x32, 0x3D,
+ 0x98, 0x2F, 0x19, 0xBF, 0xAA, 0xF1, 0xB7, 0xBE, 0xD4, 0xD8, 0x79, 0x3D,
+ 0xCB, 0x0D, 0x4C, 0x3E, 0x9E, 0xB8, 0xBA, 0x3D, 0x78, 0xAC, 0xC3, 0xBE,
+ 0xFC, 0xE5, 0xFA, 0x3E, 0x4E, 0x97, 0x81, 0x3D, 0x96, 0x30, 0x63, 0x3D,
+ 0x25, 0x99, 0x01, 0x3F, 0xA4, 0x8D, 0x82, 0x3D, 0xD3, 0x78, 0xAE, 0xBD,
+ 0x80, 0x99, 0x2A, 0x3F, 0x3C, 0x83, 0xC2, 0xBD, 0xE4, 0x33, 0xD7, 0x3A,
+ 0x4E, 0xD5, 0x17, 0xBE, 0xF5, 0x57, 0x12, 0xBF, 0xAF, 0x95, 0xFB, 0xBF,
+ 0x7B, 0x74, 0xA7, 0x3E, 0xC4, 0xAF, 0x6F, 0xBE, 0x18, 0x71, 0x87, 0xBC,
+ 0x0E, 0xAA, 0x09, 0x3F, 0x82, 0x0D, 0x4B, 0x3D, 0x93, 0x00, 0xCF, 0x3D,
+ 0x29, 0x27, 0x8A, 0x3D, 0x12, 0x0D, 0xD6, 0x3D, 0xC5, 0xA5, 0x52, 0xBF,
+ 0x8B, 0xE4, 0xE9, 0xBE, 0xC2, 0x53, 0x22, 0x3F, 0xE2, 0x4D, 0x69, 0x3E,
+ 0x4B, 0xE8, 0xB6, 0xBF, 0x0D, 0xB1, 0x9E, 0xBC, 0x4F, 0x47, 0xB6, 0xBE,
+ 0x9A, 0x73, 0x34, 0x3F, 0xF0, 0x86, 0xDA, 0x3E, 0xD9, 0xF4, 0x24, 0xBE,
+ 0x89, 0xD5, 0x08, 0x3E, 0xFF, 0x82, 0x79, 0xBF, 0xD5, 0xAE, 0x7B, 0x3F,
+ 0x4F, 0x15, 0x69, 0x3E, 0x99, 0xC1, 0xD5, 0xBE, 0x74, 0x8D, 0x15, 0xBF,
+ 0x8F, 0xCD, 0x04, 0x3E, 0xF6, 0xC9, 0x18, 0xBF, 0x9C, 0x4B, 0x78, 0x3D,
+ 0x31, 0x36, 0xEE, 0xBE, 0x1A, 0xCC, 0x58, 0x3E, 0xF4, 0x55, 0x31, 0x3C,
+ 0xEB, 0xD6, 0xE6, 0x3E, 0xD4, 0x31, 0xA3, 0x3E, 0x64, 0xD1, 0x1A, 0xBE,
+ 0x37, 0x8F, 0xAB, 0xBE, 0x16, 0xC4, 0x33, 0x3E, 0xE7, 0xB4, 0xDD, 0x3E,
+ 0x18, 0xEB, 0x50, 0x3E, 0xDB, 0x35, 0xAA, 0xBD, 0x9B, 0x9A, 0x16, 0x3E,
+ 0xA2, 0xDD, 0x18, 0x3F, 0x8B, 0xAF, 0x00, 0xBF, 0x93, 0xFC, 0x9B, 0x3E,
+ 0xB2, 0xD8, 0x4A, 0xBD, 0xD0, 0x20, 0x29, 0x3E, 0x7E, 0x0C, 0xA7, 0xBF,
+ 0x95, 0x86, 0x94, 0x3E, 0x74, 0xFF, 0xCD, 0x3E, 0x7E, 0x12, 0xAD, 0x3E,
+ 0x23, 0xEC, 0xDD, 0x3C, 0x56, 0x2D, 0xB4, 0xBD, 0xBF, 0x92, 0x12, 0xBD,
+ 0x74, 0x19, 0xBC, 0xBD, 0x22, 0x5A, 0x64, 0xBD, 0x0A, 0xE4, 0x9D, 0xBD,
+ 0xF4, 0x11, 0x24, 0xBA, 0x4C, 0x26, 0xDA, 0xBD, 0x49, 0xC9, 0x3F, 0xBA,
+ 0xCA, 0xEB, 0x51, 0xBD, 0x1B, 0x3A, 0x98, 0x3B, 0xC5, 0x47, 0x3F, 0x3D,
+ 0xD9, 0xE1, 0x9D, 0xBD, 0x4F, 0x48, 0xC9, 0x3C, 0xA0, 0x2A, 0x11, 0x3E,
+ 0x10, 0x35, 0x29, 0xBE, 0xB7, 0xD9, 0x2C, 0x3D, 0x02, 0x94, 0x56, 0xBE,
+ 0xDA, 0xEB, 0x14, 0xBD, 0xE0, 0xC7, 0x71, 0xBB, 0x52, 0x1B, 0x24, 0xBD,
+ 0xE1, 0xAF, 0xC0, 0x3D, 0x35, 0xBF, 0xF1, 0xBD, 0xFD, 0x76, 0x41, 0x3C,
+ 0x97, 0x56, 0x32, 0xBD, 0xAD, 0x7C, 0x84, 0xBE, 0xF2, 0x2A, 0x04, 0x3E,
+ 0xA3, 0xE5, 0x7C, 0x3C, 0x55, 0x8F, 0x42, 0x3E, 0xF9, 0x00, 0x2D, 0xBD,
+ 0x64, 0x1E, 0x80, 0x3E, 0x29, 0xF4, 0x2C, 0x3E, 0xFE, 0xB7, 0x34, 0x3D,
+ 0xAE, 0x90, 0xF7, 0xBC, 0x29, 0x4D, 0xE7, 0xBD, 0xEA, 0xD1, 0xB1, 0xBC,
+ 0x98, 0xCF, 0x8D, 0xBD, 0xE1, 0x10, 0xA6, 0xBD, 0x86, 0x6B, 0x52, 0x3D,
+ 0xD6, 0xAF, 0x27, 0xBE, 0xB0, 0xDE, 0xCF, 0xBD, 0x29, 0xA1, 0x08, 0xBD,
+ 0x51, 0x95, 0x3A, 0xBE, 0x2E, 0x20, 0x04, 0xBE, 0x26, 0xD4, 0x14, 0x3D,
+ 0x77, 0x3E, 0x68, 0x3D, 0xE9, 0x11, 0x81, 0xBD, 0xCF, 0x6C, 0x60, 0x3E,
+ 0x37, 0x60, 0x9E, 0x3D, 0xDA, 0x46, 0x20, 0x3E, 0x13, 0xEB, 0x65, 0xBC,
+ 0xCE, 0x7A, 0x8E, 0xBE, 0x4A, 0x61, 0x7F, 0xBD, 0xC5, 0xA2, 0xFA, 0xBA,
+ 0x68, 0x31, 0x01, 0xBE, 0x65, 0x45, 0x4C, 0x3E, 0x1F, 0x43, 0x83, 0xBD,
+ 0x0C, 0xBB, 0xAC, 0x3E, 0x3D, 0xCB, 0xB4, 0x3E, 0x7D, 0x50, 0xC2, 0xBC,
+ 0x4A, 0xE2, 0xE2, 0xBD, 0x29, 0x5B, 0xA1, 0x3E, 0xFF, 0x4C, 0x0F, 0x3F,
+ 0x99, 0x11, 0x98, 0xBD, 0x62, 0xC5, 0xAE, 0xBD, 0xAE, 0x5E, 0x33, 0x3E,
+ 0x46, 0xF3, 0x89, 0x3D, 0x44, 0xD6, 0x84, 0xBE, 0x30, 0x46, 0xC4, 0x3D,
+ 0xC4, 0x56, 0x05, 0x3D, 0x66, 0x75, 0x32, 0xBD, 0x2E, 0xEF, 0x7A, 0xBC,
+ 0xB1, 0x52, 0x6D, 0x3C, 0xF2, 0x8D, 0x68, 0x3D, 0xC3, 0xE2, 0x65, 0x3D,
+ 0x50, 0x4B, 0x77, 0x3E, 0x8D, 0x24, 0x8F, 0x3D, 0xF7, 0x20, 0x9C, 0xBD,
+ 0xCF, 0x7D, 0x96, 0x3E, 0x37, 0x03, 0x60, 0xBE, 0xBF, 0xE5, 0xBA, 0xBD,
+ 0xA4, 0x83, 0x2F, 0xBC, 0x49, 0x6B, 0x12, 0x3D, 0xD2, 0xF8, 0x0E, 0x3E,
+ 0x83, 0x0D, 0x72, 0xBD, 0x1E, 0xDE, 0x9D, 0xBC, 0xAB, 0xE3, 0xA5, 0xBC,
+ 0x05, 0xEB, 0x46, 0xBE, 0xDC, 0x89, 0x21, 0x3E, 0x92, 0xEB, 0xB2, 0xBE,
+ 0xDA, 0x57, 0xC5, 0x3D, 0xFB, 0x8D, 0x5B, 0x3D, 0x7C, 0x20, 0x47, 0xBD,
+ 0x3B, 0x98, 0xA7, 0x3D, 0xE5, 0x71, 0x47, 0x3D, 0xD1, 0xE7, 0x66, 0x3C,
+ 0x0E, 0xDF, 0x0D, 0x3C, 0xD0, 0x01, 0x85, 0xBD, 0x78, 0x96, 0x41, 0xBD,
+ 0xA1, 0xB1, 0x9F, 0xBD, 0x23, 0xB0, 0x8D, 0x3D, 0xB0, 0x28, 0x64, 0x3D,
+ 0x56, 0xC5, 0x0D, 0xBD, 0x8C, 0xEF, 0x70, 0x3D, 0x6A, 0x2D, 0x93, 0xBD,
+ 0x01, 0xBB, 0x57, 0xBD, 0x53, 0x54, 0x35, 0xBD, 0x7C, 0xDA, 0x38, 0xBD,
+ 0x0A, 0x41, 0x2A, 0xBD, 0x06, 0x51, 0x38, 0x3C, 0x90, 0x4F, 0x43, 0xBC,
+ 0x15, 0x13, 0x85, 0xBD, 0xA0, 0x47, 0x62, 0xBD, 0xB7, 0x2E, 0x8C, 0x3C,
+ 0x21, 0xDD, 0x42, 0x3B, 0xD8, 0x6B, 0x58, 0x3C, 0x45, 0xA4, 0xA3, 0x3D,
+ 0xE8, 0xF7, 0xBD, 0x3B, 0xC9, 0x23, 0xC0, 0x3C, 0x5F, 0xA6, 0xC6, 0x3C,
+ 0xB9, 0xEF, 0xD2, 0xBC, 0x4C, 0xAC, 0x06, 0x3E, 0x09, 0x80, 0x68, 0xBD,
+ 0x67, 0x46, 0x58, 0xBD, 0x8C, 0xA2, 0x32, 0x3E, 0xD8, 0xE1, 0xA6, 0x3D,
+ 0xC2, 0x85, 0xEE, 0x3C, 0xED, 0x48, 0x0D, 0xBD, 0x7F, 0x97, 0xD9, 0xBC,
+ 0x6A, 0x8A, 0xAE, 0x3D, 0x18, 0xEB, 0x38, 0x3E, 0xC1, 0x56, 0x31, 0xBE,
+ 0x1B, 0x42, 0x04, 0xBC, 0x0C, 0x23, 0xDD, 0x3D, 0x4E, 0x09, 0x56, 0x3D,
+ 0x14, 0x30, 0x2C, 0xBD, 0x03, 0xED, 0xBB, 0x3D, 0xF8, 0x0D, 0xE5, 0x3C,
+ 0x1D, 0x66, 0x92, 0xBB, 0x87, 0x8C, 0x8B, 0x3D, 0x95, 0x80, 0x86, 0x3D,
+ 0x52, 0x8A, 0x31, 0xBB, 0x8B, 0x26, 0x7D, 0xBC, 0x45, 0xC9, 0xB0, 0x3E,
+ 0x19, 0xE3, 0xA2, 0xBD, 0xC6, 0xBD, 0x62, 0xBB, 0x41, 0xAB, 0x85, 0xBC,
+ 0x89, 0xE2, 0x2A, 0xBE, 0x4A, 0x61, 0xE0, 0xBD, 0xA5, 0x3E, 0x32, 0xBD,
+ 0xF9, 0x76, 0xC3, 0xBD, 0xCC, 0x8F, 0x63, 0xBE, 0xC9, 0xA0, 0xCE, 0x3D,
+ 0xD9, 0xFF, 0x16, 0x3E, 0x7A, 0x37, 0x55, 0x3E, 0x7E, 0x76, 0x62, 0xBC,
+ 0x3B, 0x3C, 0x0A, 0xBE, 0xFF, 0x52, 0xBE, 0x3D, 0xB6, 0x17, 0x2B, 0x3F,
+ 0xF7, 0xB3, 0x8D, 0xBD, 0xBF, 0x89, 0x59, 0xBE, 0xE0, 0x36, 0xA5, 0x3E,
+ 0xA1, 0x9E, 0x59, 0x3C, 0x16, 0x05, 0x92, 0xBF, 0x8F, 0x86, 0xDA, 0xBD,
+ 0x3C, 0xA2, 0x64, 0xBB, 0xF5, 0x34, 0x2E, 0xBE, 0xD3, 0xF1, 0x27, 0xBD,
+ 0x1F, 0xE3, 0xDF, 0xBD, 0x9A, 0x24, 0x24, 0xBE, 0xF5, 0xEF, 0xFC, 0xBE,
+ 0xD0, 0x41, 0xE4, 0x3C, 0x35, 0x55, 0x30, 0x3C, 0xD7, 0x7A, 0x4D, 0x3E,
+ 0xF0, 0x67, 0xCF, 0x3B, 0xA2, 0x3F, 0x98, 0x3F, 0xBE, 0x68, 0x4F, 0xBC,
+ 0x35, 0xCD, 0xD1, 0x3E, 0xC0, 0x57, 0x36, 0x3C, 0x39, 0x06, 0x24, 0x3E,
+ 0xB4, 0x3D, 0xC2, 0x3E, 0x03, 0x63, 0xB7, 0xBE, 0x55, 0x8D, 0x56, 0xBD,
+ 0xBA, 0x0B, 0x8E, 0xBE, 0x7E, 0xCE, 0xA3, 0x3E, 0x8F, 0x3E, 0x3D, 0x3F,
+ 0x1C, 0xFA, 0x89, 0xBE, 0xB3, 0xD6, 0xED, 0xBD, 0xCA, 0x17, 0x9E, 0x3E,
+ 0xD3, 0x42, 0x3E, 0xBC, 0x39, 0x8B, 0xEF, 0x3E, 0x4F, 0x76, 0xFD, 0xBE,
+ 0xEF, 0x1C, 0x70, 0xBE, 0x3E, 0x07, 0x37, 0x3E, 0x3A, 0x37, 0xD4, 0x3D,
+ 0x8C, 0xC1, 0x86, 0xBD, 0xE6, 0x32, 0x9F, 0xBC, 0xB0, 0x1E, 0x1A, 0x3D,
+ 0xBB, 0xA5, 0xBB, 0xBD, 0xD5, 0x26, 0x9A, 0x3C, 0x73, 0x16, 0x21, 0x3D,
+ 0x68, 0xFB, 0x15, 0x3E, 0xE4, 0x76, 0xD5, 0x3A, 0xF7, 0x88, 0xE3, 0x3D,
+ 0x4F, 0x22, 0x14, 0x3C, 0x1D, 0x38, 0xED, 0x3C, 0x6B, 0xBC, 0x30, 0xBE,
+ 0x6E, 0x61, 0x52, 0x3D, 0xD6, 0xB6, 0x8F, 0xBD, 0xE2, 0x7C, 0xEE, 0x3B,
+ 0xD2, 0x67, 0x4C, 0x3B, 0x86, 0x5B, 0xCB, 0x3D, 0x82, 0x05, 0x04, 0xBE,
+ 0xD7, 0xFE, 0xE6, 0xBD, 0x69, 0xE9, 0x95, 0xBD, 0xCC, 0x7B, 0xCE, 0xBD,
+ 0xA4, 0x7F, 0x89, 0x3D, 0x47, 0x75, 0xEB, 0x3C, 0x26, 0x23, 0x9E, 0x3C,
+ 0xBA, 0xA5, 0xC8, 0x3A, 0x0D, 0x4D, 0x6E, 0xBE, 0x3D, 0x8E, 0x29, 0xBE,
+ 0x3E, 0x0B, 0xC1, 0x3E, 0x66, 0x1A, 0xCA, 0xBD, 0xED, 0x23, 0xB3, 0x3D,
+ 0x8F, 0x2B, 0x79, 0x3C, 0xDC, 0xA8, 0x0F, 0xBC, 0x65, 0x38, 0x47, 0x3D,
+ 0xF5, 0x7F, 0xED, 0xBB, 0xE4, 0xFE, 0x47, 0xBB, 0xDA, 0x2D, 0x96, 0xBC,
+ 0x01, 0xC8, 0x45, 0x3D, 0x64, 0x37, 0xC8, 0xBD, 0x12, 0x95, 0xAD, 0x3C,
+ 0xA9, 0xD3, 0x37, 0xBD, 0x21, 0x17, 0xFD, 0xBC, 0x21, 0x5F, 0x5C, 0xBC,
+ 0x5D, 0x5D, 0x53, 0x3D, 0x18, 0x84, 0x81, 0x3E, 0xF3, 0x9B, 0x1F, 0xBE,
+ 0x6F, 0x9E, 0x85, 0xBC, 0x31, 0x0C, 0x39, 0x3D, 0xBB, 0xA8, 0xB0, 0xBC,
+ 0xD8, 0x43, 0xC3, 0x3D, 0xB4, 0x00, 0x71, 0x3D, 0xD5, 0x0E, 0x85, 0xBC,
+ 0xD5, 0x3F, 0xB6, 0x3C, 0xDF, 0x42, 0xE8, 0x3D, 0xA4, 0x35, 0xC1, 0xBC,
+ 0xD6, 0x2C, 0x99, 0xBD, 0x26, 0x4A, 0x83, 0xBD, 0x12, 0xD8, 0x00, 0xBD,
+ 0x50, 0x15, 0xAB, 0x3D, 0xB2, 0xB6, 0x1D, 0xBC, 0xD0, 0x0D, 0x1F, 0xBE,
+ 0x7D, 0xD4, 0xD7, 0xBD, 0xA5, 0x1C, 0x88, 0x3D, 0x39, 0x33, 0x45, 0xBF,
+ 0xD4, 0x27, 0x9C, 0x3C, 0xAC, 0x68, 0xD2, 0xBD, 0x62, 0x61, 0x97, 0xBE,
+ 0xF8, 0x90, 0x5A, 0xBE, 0x29, 0xF9, 0x9C, 0x3D, 0x7F, 0xEE, 0x9D, 0x3D,
+ 0x2F, 0x15, 0x1A, 0xBE, 0xA7, 0xAE, 0x9C, 0x3E, 0x80, 0x36, 0xAF, 0xBE,
+ 0x34, 0xCA, 0x72, 0xBC, 0x9B, 0xC8, 0x84, 0xBD, 0x38, 0x4B, 0xCA, 0xBE,
+ 0xD3, 0xD0, 0x61, 0xBE, 0x42, 0x21, 0x5C, 0xBE, 0xFF, 0x94, 0xEE, 0xBE,
+ 0x55, 0x71, 0x12, 0x3E, 0x91, 0x45, 0x36, 0xBD, 0x8C, 0xAE, 0x0F, 0xBE,
+ 0xD9, 0x1D, 0x9B, 0xBE, 0x3B, 0xAB, 0xAB, 0x3D, 0x82, 0x58, 0xBF, 0x3B,
+ 0xA6, 0x50, 0xD7, 0x3D, 0x09, 0xD2, 0x42, 0xBE, 0x0E, 0x59, 0xA5, 0xBE,
+ 0xF3, 0x5F, 0x2C, 0x3D, 0x38, 0x19, 0xC6, 0x3B, 0x67, 0x62, 0x09, 0x3F,
+ 0xF8, 0x12, 0xB1, 0x3C, 0x89, 0x32, 0x45, 0xBF, 0x60, 0x24, 0x33, 0x3F,
+ 0x84, 0xBD, 0xC0, 0x3D, 0x2F, 0x0C, 0xDD, 0x3E, 0x83, 0x1A, 0xBD, 0xBD,
+ 0xC8, 0x01, 0x39, 0x3F, 0xF3, 0xCF, 0x00, 0x3E, 0xC8, 0xC7, 0x72, 0xBC,
+ 0x21, 0xBB, 0xB0, 0x3C, 0xFD, 0xB0, 0x4F, 0x3E, 0x4D, 0x57, 0x38, 0xBD,
+ 0xF5, 0x8D, 0xC6, 0xBC, 0x1C, 0x08, 0xB9, 0xBC, 0xD4, 0xBB, 0xCB, 0xBD,
+ 0xAB, 0x38, 0x20, 0x3A, 0x60, 0x3E, 0x36, 0x3E, 0x76, 0x58, 0x39, 0xBE,
+ 0xC5, 0x1A, 0x7E, 0xBE, 0x15, 0x4E, 0xA3, 0x3B, 0x2E, 0x5B, 0x24, 0xBD,
+ 0x9A, 0x07, 0xA4, 0x3B, 0xF8, 0x57, 0xE3, 0x3E, 0x17, 0x05, 0x74, 0x3D,
+ 0x4E, 0xEE, 0x09, 0x3D, 0x9C, 0x3C, 0x87, 0xBC, 0xA6, 0x11, 0x10, 0xBC,
+ 0x5C, 0xA9, 0x7E, 0x3D, 0x45, 0x96, 0x7A, 0x3D, 0xDD, 0x80, 0x7F, 0x3E,
+ 0x73, 0x21, 0x1C, 0x3C, 0xAB, 0x97, 0xC4, 0xBE, 0x29, 0x2A, 0x38, 0xBC,
+ 0x8A, 0x8B, 0x8A, 0xBF, 0x3C, 0x4F, 0xF1, 0xBE, 0x0B, 0xB3, 0x8D, 0xBD,
+ 0x1F, 0xC7, 0xA9, 0x3D, 0x05, 0x05, 0x33, 0x3B, 0xB0, 0x62, 0xD7, 0x3D,
+ 0xD2, 0x40, 0x11, 0xBE, 0xD8, 0xE2, 0x56, 0x3D, 0xD7, 0xBC, 0x25, 0xBE,
+ 0x96, 0xFB, 0xDE, 0xBC, 0xBD, 0x7B, 0x2D, 0xBE, 0xDA, 0x86, 0x30, 0x3E,
+ 0x4A, 0xBB, 0xFD, 0xBC, 0x22, 0xFB, 0xDB, 0x3D, 0xA0, 0xD8, 0x9B, 0x3C,
+ 0xC3, 0xDD, 0xD8, 0xBE, 0xDD, 0x3E, 0x52, 0xBE, 0x7E, 0xA7, 0xBA, 0x3E,
+ 0x8C, 0x4E, 0x0A, 0xBC, 0x31, 0x53, 0x56, 0xBD, 0xB8, 0x33, 0xE4, 0x3D,
+ 0xF6, 0x6A, 0xE3, 0xBE, 0x63, 0x63, 0xE4, 0x3D, 0x40, 0xCE, 0x28, 0xBE,
+ 0x2C, 0xDB, 0x9B, 0x3C, 0xAE, 0x21, 0x40, 0xBE, 0x12, 0xF9, 0x26, 0x3E,
+ 0xE5, 0x5B, 0x3D, 0x3E, 0x32, 0x85, 0x43, 0x3E, 0xF8, 0xCB, 0x0F, 0xBE,
+ 0x36, 0x43, 0x26, 0xBE, 0x6A, 0x89, 0x8B, 0x3E, 0xFE, 0x89, 0xD4, 0xBD,
+ 0x25, 0x59, 0x2A, 0x3E, 0x94, 0x42, 0xC1, 0x3D, 0x96, 0x10, 0x6D, 0xBE,
+ 0x76, 0xFB, 0xA5, 0xBE, 0x36, 0x06, 0x2D, 0xBF, 0xA1, 0xB5, 0x83, 0xBF,
+ 0xF0, 0xF5, 0x12, 0xBD, 0x92, 0x91, 0xF5, 0x3D, 0x35, 0xF4, 0xD9, 0x3B,
+ 0x4B, 0x88, 0x3E, 0x3E, 0xEE, 0xAD, 0xCF, 0xBC, 0x1B, 0x6A, 0x69, 0x3F,
+ 0xCF, 0x00, 0x0A, 0x3E, 0x7A, 0x52, 0x54, 0x3D, 0x69, 0x52, 0xB5, 0x3E,
+ 0x49, 0xA9, 0xEE, 0xBE, 0x37, 0xF8, 0xE5, 0x3E, 0x8E, 0x70, 0x51, 0x3E,
+ 0x68, 0x71, 0x4D, 0xBF, 0x75, 0x72, 0x30, 0x3D, 0xB7, 0x39, 0xE4, 0x3E,
+ 0xA4, 0x7B, 0x4B, 0x3F, 0x15, 0x12, 0x2B, 0x3C, 0x5D, 0x3B, 0x17, 0xBE,
+ 0x00, 0xEA, 0x91, 0x3F, 0xE2, 0x16, 0xB4, 0xBF, 0xAB, 0xF6, 0xA0, 0x3F,
+ 0x02, 0xFB, 0xB6, 0x3E, 0x10, 0x6E, 0x08, 0xBE, 0xF0, 0xC6, 0x75, 0x3F,
+ 0x67, 0x05, 0xA2, 0x3E, 0x32, 0x72, 0x5C, 0x3E, 0xCB, 0x40, 0x9B, 0xBE,
+ 0x14, 0xEC, 0x91, 0xBE, 0x71, 0x99, 0xB5, 0xBE, 0x01, 0x81, 0x30, 0xBF,
+ 0x6B, 0x2A, 0x6D, 0xBE, 0xA2, 0xBF, 0x35, 0xBF, 0x77, 0xF8, 0x68, 0x3E,
+ 0xF5, 0x3B, 0x38, 0xBE, 0x8D, 0xDC, 0x91, 0xBD, 0x89, 0x99, 0xF3, 0xBD,
+ 0x59, 0xB8, 0xCF, 0x3E, 0x51, 0xEB, 0xC9, 0xBE, 0x33, 0x8B, 0xB5, 0x3E,
+ 0x47, 0x20, 0x1F, 0xBE, 0x1A, 0xAF, 0x21, 0x3F, 0x21, 0xA8, 0xC2, 0xBF,
+ 0x0C, 0x8A, 0xAD, 0x3E, 0x16, 0xF8, 0x99, 0x3E, 0x4E, 0xB7, 0xAE, 0x3C,
+ 0x32, 0xBD, 0x38, 0xBE, 0x1E, 0x35, 0xBF, 0xBD, 0x9E, 0x3C, 0x24, 0xBF,
+ 0x1C, 0x2A, 0x0D, 0xBE, 0xDC, 0x9A, 0x73, 0xBE, 0x91, 0xE4, 0xE1, 0xBD,
+ 0x3D, 0x41, 0xA0, 0xBF, 0x87, 0x9E, 0x06, 0x3F, 0x58, 0x5F, 0x18, 0xBF,
+ 0x6C, 0xD8, 0x8B, 0x3E, 0x58, 0x87, 0xE8, 0x3E, 0x31, 0x8C, 0x97, 0xBE,
+ 0x4B, 0x1D, 0x62, 0xBE, 0x44, 0x2D, 0x85, 0xBE, 0x48, 0x70, 0xA5, 0xBE,
+ 0x6C, 0xB6, 0xFC, 0x3D, 0x90, 0x0B, 0x08, 0x3E, 0xDC, 0xAA, 0x0E, 0x3E,
+ 0xE2, 0x97, 0x23, 0xBE, 0x42, 0x14, 0x24, 0x3D, 0x4A, 0xAC, 0xBE, 0xBB,
+ 0xB6, 0xDF, 0xDF, 0x3D, 0x4D, 0xAE, 0x31, 0xBD, 0x71, 0xC6, 0x2C, 0xBE,
+ 0x11, 0xA5, 0xA2, 0x3D, 0x3B, 0xCE, 0x2F, 0x3F, 0xF9, 0xC5, 0x4C, 0x3D,
+ 0xF8, 0xAC, 0x14, 0xBE, 0xFC, 0x58, 0x0B, 0xBE, 0x5E, 0x1E, 0x60, 0x3E,
+ 0x9A, 0xE4, 0xDF, 0x3D, 0x21, 0x20, 0xB7, 0x3D, 0xB6, 0xC0, 0x92, 0x3D,
+ 0x3E, 0xCD, 0xC2, 0xBD, 0x95, 0x03, 0x99, 0x3E, 0xD6, 0x9B, 0x27, 0xBD,
+ 0x9E, 0xA9, 0x26, 0x3E, 0x35, 0x7E, 0x11, 0xBF, 0x03, 0x4D, 0x1A, 0x3E,
+ 0xA4, 0xA5, 0xEA, 0xBE, 0x38, 0x0D, 0x09, 0xBE, 0xE4, 0xBC, 0x27, 0x3E,
+ 0x1F, 0x94, 0x99, 0xBE, 0xDB, 0x17, 0xA8, 0x3D, 0x2D, 0x09, 0xCD, 0x3E,
+ 0x3C, 0x32, 0xD7, 0x3E, 0x56, 0xCE, 0xD1, 0x3C, 0xB2, 0x36, 0x25, 0x3D,
+ 0x1B, 0xB1, 0xAA, 0x3D, 0x93, 0x35, 0x9F, 0xBE, 0x90, 0x61, 0xEE, 0xBC,
+ 0xEF, 0xA2, 0xF1, 0x3B, 0xDD, 0x3C, 0xE7, 0x3C, 0x66, 0x39, 0x42, 0xBD,
+ 0xA2, 0xD1, 0xB9, 0xBC, 0x4A, 0xE1, 0x05, 0xBD, 0x64, 0x4C, 0x82, 0xBD,
+ 0xCF, 0xA4, 0xCA, 0xBB, 0x7E, 0xFD, 0x4B, 0xBD, 0xCB, 0x76, 0x00, 0x3E,
+ 0xFE, 0xAA, 0x9B, 0x3D, 0x0B, 0xEB, 0x4F, 0xBE, 0x25, 0x79, 0xA8, 0xBC,
+ 0x45, 0x40, 0x5B, 0x3D, 0xE5, 0x6D, 0xBF, 0xBC, 0x49, 0x15, 0xF2, 0x3D,
+ 0xA2, 0x7E, 0xA8, 0xBC, 0x8F, 0x95, 0x33, 0x3D, 0x0B, 0x9C, 0x0E, 0xBD,
+ 0xBC, 0x1D, 0x9F, 0x3D, 0x6A, 0xAA, 0xE7, 0x3C, 0x68, 0x64, 0xAD, 0x3D,
+ 0x5F, 0x03, 0xB5, 0x3D, 0xBE, 0x10, 0xCF, 0xBC, 0xC0, 0xCF, 0x34, 0x3E,
+ 0xE6, 0x65, 0x4E, 0x3D, 0x58, 0x6D, 0x27, 0xBE, 0x65, 0xB0, 0x95, 0xBD,
+ 0x23, 0x1B, 0x60, 0xBD, 0x58, 0xBD, 0xA5, 0x3D, 0xAC, 0xC3, 0x93, 0x3D,
+ 0xAD, 0x71, 0x26, 0xBE, 0x5B, 0x40, 0x0A, 0xBD, 0xD2, 0x99, 0x16, 0xBC,
+ 0xF3, 0xB6, 0xAC, 0xBC, 0x07, 0x05, 0x39, 0xBD, 0x85, 0xF1, 0xB7, 0x3C,
+ 0xE7, 0x98, 0xD8, 0x3D, 0xA5, 0xC0, 0x1C, 0x3C, 0x07, 0x73, 0x44, 0xBC,
+ 0x5B, 0x2D, 0xC3, 0x3B, 0x6A, 0xE8, 0x7A, 0x3D, 0xE8, 0x7F, 0xDC, 0x3D,
+ 0xD9, 0xD7, 0x82, 0xBD, 0xB7, 0x7A, 0x8D, 0xBC, 0x61, 0x2C, 0x90, 0xBC,
+ 0x5A, 0x1D, 0xE5, 0xBC, 0x32, 0x5B, 0x97, 0x3D, 0x2D, 0x9F, 0x81, 0x3C,
+ 0xDC, 0xDD, 0xD3, 0xBC, 0x23, 0xA2, 0x36, 0xBB, 0x94, 0x46, 0x9D, 0x3D,
+ 0x16, 0x25, 0xA4, 0xBC, 0xD5, 0x76, 0xB1, 0x3B, 0x05, 0x98, 0x1D, 0xBC,
+ 0x18, 0x1A, 0x78, 0x3C, 0xC3, 0x4F, 0x33, 0x3D, 0xCA, 0x83, 0x65, 0xBD,
+ 0x76, 0x86, 0x38, 0x3E, 0xAC, 0xCB, 0x8F, 0x3C, 0xAB, 0xD2, 0xED, 0x3B,
+ 0x48, 0xD2, 0x18, 0xBD, 0xA4, 0x23, 0x67, 0xBD, 0x78, 0xDA, 0x84, 0x3B,
+ 0x34, 0x1D, 0x7A, 0x3D, 0xEB, 0x1B, 0xEF, 0xBC, 0x8E, 0xD8, 0xCD, 0xBC,
+ 0xC8, 0x91, 0x41, 0x3C, 0x3A, 0x7D, 0x2C, 0xBC, 0xF0, 0x2C, 0x00, 0xBD,
+ 0x66, 0x7E, 0x59, 0x3D, 0xBC, 0x40, 0x8C, 0xBC, 0xEB, 0x5C, 0x0D, 0xBC,
+ 0xA3, 0x4B, 0xFF, 0xBC, 0x5C, 0x53, 0x4B, 0xBE, 0xCC, 0x49, 0xBC, 0x3C,
+ 0x56, 0xD3, 0x4B, 0x3D, 0x87, 0xCC, 0x9E, 0x3B, 0xD7, 0x09, 0x0D, 0x3C,
+ 0x50, 0x90, 0x52, 0xBD, 0x52, 0x87, 0x0E, 0x3D, 0xF3, 0xBC, 0x04, 0x3D,
+ 0xD1, 0x57, 0x60, 0x3D, 0x0F, 0xCF, 0xB4, 0xBC, 0x56, 0xAC, 0x4D, 0x3D,
+ 0x08, 0x5E, 0x88, 0xBD, 0xB7, 0x37, 0xD6, 0xBD, 0x22, 0x12, 0xAE, 0xBC,
+ 0x07, 0x15, 0x39, 0x3E, 0x3B, 0x49, 0x82, 0x3D, 0xAF, 0xD7, 0x65, 0xBE,
+ 0x5B, 0x64, 0xCD, 0x3C, 0x68, 0x10, 0x15, 0x3C, 0x79, 0x2B, 0x72, 0x3D,
+ 0x68, 0x37, 0xF7, 0xBC, 0xB6, 0x04, 0xD0, 0xBD, 0x1E, 0xCD, 0xA5, 0x3C,
+ 0xBA, 0x05, 0x6E, 0xBD, 0x4A, 0x01, 0xAB, 0x3A, 0x30, 0xDF, 0x6F, 0xBD,
+ 0x28, 0x88, 0x7F, 0xBD, 0xF6, 0x8C, 0x03, 0xBD, 0xFF, 0xAD, 0xE4, 0x3C,
+ 0xB5, 0x73, 0xF2, 0x3A, 0xF4, 0xD8, 0xCD, 0x3B, 0x6F, 0x40, 0xFE, 0xBC,
+ 0xE4, 0xF7, 0xBE, 0xBC, 0x38, 0xC2, 0x21, 0xBE, 0xB7, 0xF1, 0x90, 0x3D,
+ 0x75, 0xC5, 0x01, 0x3D, 0x0B, 0x1C, 0xE9, 0xBB, 0xE1, 0xBC, 0xF6, 0x3C,
+ 0x54, 0x02, 0x0B, 0x3C, 0x91, 0xBB, 0x1B, 0x3D, 0xC1, 0x60, 0xA3, 0xBA,
+ 0xAD, 0xB4, 0x75, 0x3D, 0x12, 0xE4, 0x00, 0x3D, 0x4A, 0x83, 0x4F, 0xBD,
+ 0x88, 0xE3, 0x0B, 0xBC, 0xB3, 0xB1, 0xBF, 0x3C, 0xF4, 0x0D, 0x61, 0x3E,
+ 0x6D, 0xD1, 0x0D, 0x3E, 0x63, 0x7E, 0x99, 0x3D, 0x37, 0xA6, 0x86, 0x3D,
+ 0x11, 0xC9, 0x75, 0xBD, 0x41, 0xFB, 0x89, 0x3E, 0x2A, 0xE0, 0xD0, 0x3C,
+ 0x87, 0xCE, 0xAE, 0x3E, 0x41, 0xBC, 0x52, 0xBF, 0x11, 0xC9, 0x26, 0x3D,
+ 0x06, 0x89, 0xAD, 0x3D, 0x10, 0xD2, 0x99, 0x3E, 0x61, 0x84, 0x9C, 0xBC,
+ 0x42, 0x8E, 0x02, 0xBE, 0xB1, 0xC6, 0x59, 0xBE, 0x58, 0xED, 0xC7, 0x3D,
+ 0xDF, 0x88, 0xD8, 0x3C, 0x3B, 0x6B, 0xAA, 0xBE, 0x59, 0x85, 0x52, 0x3E,
+ 0x20, 0x41, 0x77, 0x3E, 0x59, 0xCB, 0x62, 0xBC, 0x8E, 0xF1, 0xA1, 0x3C,
+ 0xD3, 0x4E, 0x90, 0x3C, 0x6D, 0x49, 0xDD, 0x3E, 0x7C, 0x34, 0x6F, 0x3E,
+ 0x34, 0x33, 0x9E, 0xBD, 0x4D, 0xC2, 0xBC, 0xBC, 0x50, 0xA5, 0x57, 0xBD,
+ 0xF5, 0x6C, 0x0A, 0x3E, 0xEC, 0x7C, 0x6A, 0x3D, 0x54, 0x7F, 0x31, 0x3D,
+ 0xD8, 0xF2, 0x00, 0x3E, 0xBA, 0xF2, 0x0C, 0x3F, 0xE5, 0x6C, 0x15, 0x3E,
+ 0xF9, 0x04, 0x96, 0x3E, 0x00, 0xBA, 0x04, 0x3F, 0xAA, 0x91, 0xBA, 0xBD,
+ 0x91, 0xAA, 0x15, 0x3F, 0xF4, 0x22, 0x9D, 0xBE, 0xB7, 0x0F, 0x04, 0x3F,
+ 0xBB, 0xF1, 0xF9, 0xBE, 0x30, 0x04, 0x45, 0x3D, 0x92, 0xD4, 0x29, 0xBD,
+ 0x1F, 0x66, 0x96, 0x3B, 0x23, 0xBB, 0x93, 0xBD, 0x8F, 0x74, 0x4A, 0xBD,
+ 0xB6, 0xE6, 0x03, 0xBE, 0x64, 0xFC, 0x51, 0xBF, 0xE6, 0x33, 0x98, 0x3B,
+ 0x5A, 0x9A, 0x73, 0xBE, 0x1E, 0xEE, 0xD1, 0x3E, 0xDE, 0xAD, 0x75, 0xBE,
+ 0x2B, 0x3A, 0x78, 0xBE, 0xF0, 0xD3, 0x7C, 0xBE, 0xBF, 0xD9, 0x30, 0x3B,
+ 0x0E, 0x72, 0x60, 0x3F, 0x2C, 0x31, 0xDE, 0x3E, 0x3F, 0xEB, 0xC2, 0xBC,
+ 0xB1, 0xD3, 0x8A, 0xBE, 0xF0, 0x28, 0x1E, 0x3F, 0xAA, 0x82, 0x4B, 0xBF,
+ 0xBF, 0x46, 0xC6, 0xBD, 0x61, 0x4D, 0x49, 0x3E, 0xB6, 0x79, 0xF7, 0x3D,
+ 0xEB, 0xC0, 0xD3, 0xBD, 0xAE, 0xB8, 0x23, 0x3E, 0x4D, 0xDD, 0x5F, 0x3F,
+ 0x34, 0x4C, 0x5F, 0x3E, 0xF7, 0xA0, 0xEF, 0xBE, 0x5D, 0xD2, 0xF6, 0xBF,
+ 0x41, 0x71, 0xCC, 0xBE, 0x1E, 0xE4, 0x3E, 0xBE, 0x13, 0x0F, 0x75, 0x3F,
+ 0xC8, 0x67, 0xC5, 0x3E, 0xFA, 0xC2, 0x30, 0xBE, 0x8F, 0xAB, 0x9F, 0xBF,
+ 0x54, 0x4F, 0xDE, 0x3E, 0x8A, 0xE6, 0x87, 0xBC, 0x52, 0xAD, 0x88, 0xBC,
+ 0x09, 0x5A, 0x92, 0xBF, 0xF4, 0x3D, 0xC2, 0x3D, 0x7C, 0x1A, 0xA2, 0x3E,
+ 0xCE, 0x40, 0xF5, 0x3F, 0x73, 0x29, 0x6D, 0x3F, 0x8F, 0xCD, 0x5D, 0xBE,
+ 0x7E, 0xB3, 0x7D, 0xBF, 0xF7, 0x47, 0x6D, 0x3D, 0xE5, 0x42, 0xDB, 0xBF,
+ 0x7A, 0x7F, 0x4A, 0x3F, 0x4D, 0x4B, 0x34, 0xBF, 0xC9, 0x86, 0xB9, 0x3D,
+ 0x99, 0xC0, 0x31, 0xBF, 0xF5, 0x11, 0x14, 0xBF, 0x9F, 0xE2, 0x85, 0x3F,
+ 0x8B, 0xA9, 0x3E, 0x3F, 0xDE, 0x12, 0x20, 0x3E, 0x45, 0x84, 0x36, 0x3F,
+ 0x85, 0x43, 0xD0, 0x3E, 0xFD, 0xAB, 0xAF, 0xBE, 0xDC, 0x74, 0xED, 0xBE,
+ 0xCC, 0x5A, 0x9D, 0xBF, 0x5D, 0xBD, 0xAB, 0xBD, 0x46, 0x40, 0x2F, 0xBD,
+ 0xA5, 0x1F, 0x1B, 0x3E, 0x3D, 0x50, 0x51, 0x3D, 0x3F, 0x6D, 0xC6, 0xBB,
+ 0x27, 0xCA, 0x2F, 0x3B, 0x28, 0x47, 0xA3, 0x3C, 0x7D, 0xF5, 0x2B, 0xBD,
+ 0x6C, 0x76, 0x0D, 0xBC, 0x19, 0x3A, 0x3E, 0x3D, 0x09, 0xDB, 0xBB, 0xBB,
+ 0xC8, 0xDA, 0xC5, 0xBC, 0x63, 0x4A, 0xFC, 0xBC, 0x6E, 0x8F, 0x21, 0x3E,
+ 0xF6, 0x3F, 0x6B, 0xBD, 0x92, 0x6F, 0x92, 0x3C, 0x92, 0x88, 0xA6, 0xBD,
+ 0x32, 0x41, 0x38, 0x3C, 0xC9, 0x93, 0x20, 0xBC, 0x68, 0x33, 0xA8, 0x3D,
+ 0xB5, 0xF6, 0x12, 0x3D, 0xA5, 0xC6, 0x2A, 0xBC, 0xC8, 0x18, 0xC0, 0x3C,
+ 0x7A, 0x39, 0xF4, 0xBC, 0x1E, 0xBE, 0x39, 0xBD, 0xE3, 0x91, 0x30, 0xBD,
+ 0x4D, 0x1C, 0xE4, 0xBC, 0x6C, 0x29, 0xF8, 0x3D, 0xCC, 0xFD, 0x80, 0x3D,
+ 0xBC, 0x68, 0x9D, 0xBE, 0x0E, 0x20, 0x4D, 0x3D, 0x63, 0x25, 0xA2, 0x3D,
+ 0x3E, 0x1E, 0x2B, 0x3D, 0xB6, 0xDA, 0xD1, 0x3C, 0xA6, 0xE6, 0x0B, 0xBF,
+ 0xBC, 0xC6, 0x73, 0x3F, 0x0E, 0x42, 0x2F, 0x3D, 0xB3, 0xAB, 0x08, 0x3B,
+ 0x44, 0xAE, 0x49, 0x3D, 0x10, 0xC5, 0x23, 0x3F, 0x98, 0xD0, 0xF3, 0x3D,
+ 0xDB, 0xB0, 0x19, 0x3F, 0x69, 0xB2, 0x89, 0xBD, 0xA9, 0x88, 0x41, 0x3B,
+ 0xD8, 0x32, 0x1D, 0x3F, 0xF1, 0xA7, 0x8A, 0xBE, 0x2B, 0x2F, 0xDC, 0xBE,
+ 0x0E, 0x3D, 0x48, 0x3E, 0x37, 0x84, 0xDC, 0x3E, 0x39, 0x54, 0x0D, 0xBB,
+ 0xCC, 0x91, 0x85, 0xB9, 0xAD, 0xEA, 0xEE, 0x3E, 0x2B, 0xE6, 0x77, 0x3D,
+ 0xBF, 0x08, 0xCF, 0xBB, 0x3A, 0xD7, 0x83, 0xBF, 0x5A, 0xA4, 0xA9, 0x3C,
+ 0x2E, 0x9E, 0x01, 0xBF, 0xD9, 0x56, 0x78, 0x3E, 0xAE, 0x7E, 0xAD, 0x3D,
+ 0x62, 0xB6, 0x0A, 0x3E, 0x3E, 0x3D, 0xB3, 0x3D, 0x97, 0x50, 0xDB, 0xBD,
+ 0xBC, 0xB1, 0x4C, 0xBF, 0x32, 0xF4, 0x87, 0xBC, 0xE4, 0xAF, 0x0D, 0x3F,
+ 0xF6, 0xFA, 0x98, 0x3E, 0xC6, 0x8A, 0xEF, 0xBE, 0x6B, 0xB8, 0xC9, 0xBE,
+ 0x7C, 0xD9, 0x0E, 0xBF, 0xEF, 0x2A, 0xFE, 0x3E, 0x7A, 0xF2, 0xBC, 0x3D,
+ 0xFA, 0xF8, 0xF1, 0xBD, 0x17, 0x59, 0xE8, 0x3E, 0xDC, 0x1C, 0x19, 0x3D,
+ 0x7A, 0xCE, 0x32, 0x3E, 0x25, 0xF2, 0x9C, 0xBE, 0xBD, 0xE1, 0xEF, 0x3E,
+ 0xD4, 0x71, 0xA6, 0xBF, 0x59, 0xA5, 0xC5, 0x3E, 0xE2, 0xEA, 0x17, 0xBE,
+ 0x94, 0x34, 0x06, 0x3E, 0x65, 0xF7, 0x80, 0xBE, 0xE5, 0x26, 0xC8, 0xBE,
+ 0x5E, 0x71, 0xA9, 0x3D, 0xF2, 0x02, 0x09, 0xBF, 0xF8, 0x67, 0x5A, 0xBF,
+ 0xF5, 0xB4, 0x49, 0xBE, 0xA4, 0xD3, 0x7F, 0x3E, 0xA3, 0x7B, 0x1A, 0x3F,
+ 0xF1, 0x8B, 0xEA, 0xBE, 0xC6, 0x99, 0x38, 0x3E, 0x88, 0x34, 0xF2, 0xBE,
+ 0xC8, 0x86, 0x0B, 0xBF, 0x9A, 0x96, 0x09, 0x3F, 0x57, 0xC0, 0x3D, 0xBF,
+ 0x08, 0x20, 0x95, 0xBF, 0x4F, 0x5D, 0x26, 0xBE, 0x35, 0xAB, 0x0A, 0x3D,
+ 0x82, 0x40, 0x48, 0xBD, 0xEC, 0xE3, 0x99, 0x3D, 0xE8, 0x2A, 0x22, 0x3C,
+ 0x01, 0x9E, 0x13, 0x3C, 0xEB, 0xD1, 0xFB, 0xBB, 0xED, 0x6F, 0x43, 0x3C,
+ 0x65, 0xB2, 0xDA, 0xBD, 0x55, 0xCA, 0x36, 0xBD, 0x15, 0x55, 0xA5, 0xBD,
+ 0x68, 0x35, 0x3C, 0x3C, 0x51, 0x3F, 0x33, 0xBB, 0xF1, 0x7D, 0x25, 0x3C,
+ 0x61, 0x58, 0xA3, 0x3D, 0x2D, 0x37, 0xA0, 0x3C, 0x05, 0xFD, 0xE4, 0x3C,
+ 0x87, 0x71, 0x76, 0xBC, 0x71, 0x4E, 0x07, 0xBE, 0x06, 0x0E, 0xFE, 0x3C,
+ 0x03, 0x5B, 0x4C, 0x3D, 0xA5, 0x85, 0x94, 0x3C, 0x0C, 0xC4, 0x09, 0xBD,
+ 0x3D, 0xF2, 0xBD, 0xBC, 0x2E, 0x10, 0x30, 0xBC, 0x1C, 0xA2, 0xC3, 0x3D,
+ 0x5F, 0x9F, 0x67, 0xBC, 0x71, 0x7B, 0x2B, 0x3E, 0x58, 0x5C, 0xEE, 0x3D,
+ 0x20, 0xB4, 0x72, 0xBE, 0xFD, 0xB5, 0x78, 0x3D, 0xD8, 0x60, 0x5C, 0x3D,
+ 0x6C, 0xC5, 0x08, 0x3D, 0xF4, 0x92, 0x63, 0xBC, 0x50, 0xF4, 0x0B, 0x3D,
+ 0x17, 0xBC, 0xC8, 0xBC, 0x46, 0x50, 0xA0, 0x3C, 0x3D, 0xD5, 0x49, 0xBD,
+ 0x3D, 0xED, 0x07, 0x3D, 0xD6, 0x04, 0xD6, 0xBB, 0x1B, 0xFC, 0x0E, 0x3D,
+ 0xB3, 0x12, 0xC2, 0xBC, 0x35, 0x50, 0xAA, 0xBD, 0x26, 0x85, 0xE0, 0xBC,
+ 0x48, 0xFE, 0x39, 0x3D, 0xF9, 0x6E, 0x50, 0x3D, 0xCC, 0x09, 0xC0, 0x3D,
+ 0xED, 0x59, 0xB1, 0x3C, 0xE6, 0xED, 0xEC, 0x3D, 0x72, 0x31, 0x95, 0x3B,
+ 0x23, 0x58, 0xEB, 0xB9, 0xFC, 0x61, 0xCE, 0x3C, 0x74, 0xEA, 0x15, 0xBD,
+ 0x48, 0x39, 0x92, 0x3D, 0x62, 0x82, 0x26, 0x3E, 0xBC, 0x32, 0x96, 0xBD,
+ 0x13, 0xEA, 0x84, 0x3E, 0x54, 0x72, 0x00, 0xBE, 0x66, 0x08, 0xCF, 0x3B,
+ 0xCD, 0x07, 0x15, 0xBE, 0xFC, 0xDF, 0x19, 0x3D, 0x76, 0xB4, 0xB2, 0xBD,
+ 0x3B, 0x87, 0xDD, 0xBD, 0x08, 0x65, 0x36, 0x3B, 0x95, 0xEC, 0xDA, 0x3D,
+ 0x7A, 0xB1, 0x08, 0x3A, 0x2B, 0x58, 0xF2, 0x3D, 0xA1, 0x16, 0x28, 0x3E,
+ 0x19, 0x4C, 0x95, 0xBE, 0xC5, 0x84, 0xF1, 0x3D, 0x71, 0x5C, 0x6A, 0x3C,
+ 0x8F, 0x92, 0x8B, 0xBE, 0xDE, 0x67, 0x47, 0xBD, 0x1E, 0x00, 0x25, 0xBE,
+ 0xDF, 0x29, 0x35, 0xBE, 0x54, 0xC3, 0x8A, 0x3C, 0x77, 0xC7, 0x64, 0x3E,
+ 0xED, 0xEF, 0x19, 0x3F, 0xA5, 0x49, 0x56, 0xBF, 0xDC, 0x2E, 0xED, 0x3D,
+ 0x33, 0x3C, 0x6F, 0xBD, 0x15, 0x17, 0xBA, 0xBC, 0x8F, 0x86, 0x4F, 0x3E,
+ 0x0C, 0xF4, 0x33, 0xBE, 0xEE, 0xD9, 0x0A, 0x3E, 0x44, 0x37, 0xCA, 0xBD,
+ 0x8C, 0xC0, 0x74, 0x3D, 0x2E, 0x72, 0xFA, 0x3D, 0xF7, 0xE9, 0x16, 0x3D,
+ 0xA7, 0x74, 0xE2, 0xBD, 0x04, 0xAF, 0x3C, 0x3E, 0xFB, 0xD9, 0x3A, 0xBD,
+ 0xDB, 0x5D, 0x2E, 0x3C, 0x3F, 0xE2, 0x00, 0x3E, 0x45, 0x05, 0x9A, 0x3D,
+ 0xFB, 0x83, 0x12, 0x3C, 0xA8, 0x14, 0xAA, 0xBE, 0xA7, 0x90, 0xB8, 0x3E,
+ 0x4B, 0x26, 0xFE, 0x3E, 0x23, 0x71, 0xC1, 0xBE, 0xD1, 0xFF, 0x89, 0xBF,
+ 0x49, 0x27, 0x41, 0x3F, 0xAA, 0xE5, 0xA6, 0xBE, 0x9A, 0x30, 0x76, 0xBE,
+ 0xC4, 0xB7, 0x21, 0x3F, 0xB6, 0xC8, 0xCD, 0x3E, 0xCD, 0x36, 0x5D, 0xBE,
+ 0x9D, 0x2C, 0xC6, 0xBE, 0xDE, 0xD7, 0x33, 0xBF, 0xF3, 0xA3, 0x21, 0xC0,
+ 0x1C, 0x81, 0x4F, 0x3F, 0xE9, 0x6C, 0xB3, 0x3E, 0xB0, 0xA9, 0x83, 0xBF,
+ 0xA6, 0x7E, 0x52, 0xBE, 0xC8, 0x6F, 0x7B, 0xBE, 0xD8, 0x3C, 0x95, 0x3E,
+ 0xC8, 0x5C, 0x7E, 0xBE, 0xF8, 0x70, 0x0A, 0xBF, 0x3C, 0xFC, 0xEA, 0x3E,
+ 0x71, 0x14, 0x86, 0x3F, 0xFD, 0x49, 0xC0, 0x3E, 0x73, 0xB0, 0x0C, 0x3F,
+ 0xE9, 0x1B, 0xDF, 0xBE, 0xB3, 0x36, 0xF8, 0x3E, 0xB4, 0x9D, 0x85, 0xBF,
+ 0x63, 0x1B, 0x35, 0x3E, 0x57, 0x83, 0x75, 0x3D, 0x50, 0x2B, 0xCA, 0xBE,
+ 0x75, 0xE5, 0x43, 0xBE, 0xFF, 0x1E, 0x06, 0xBE, 0xF1, 0x50, 0x08, 0xBD,
+ 0x65, 0xBA, 0x12, 0xBE, 0xC6, 0xD9, 0x06, 0x3D, 0x7C, 0x3B, 0xB9, 0xBA,
+ 0x2B, 0x56, 0x76, 0xBE, 0xAD, 0x97, 0x57, 0x3D, 0x2A, 0x39, 0x18, 0x3E,
+ 0x52, 0x4D, 0x85, 0xBC, 0x2C, 0x27, 0x51, 0x3D, 0x23, 0x6D, 0xC2, 0xBC,
+ 0x92, 0x2D, 0x6B, 0xBC, 0x3B, 0x12, 0xE5, 0xBC, 0x7B, 0xDD, 0x95, 0x3D,
+ 0x2F, 0xB2, 0x8F, 0x3D, 0x33, 0x23, 0xFB, 0x3D, 0xF2, 0x6C, 0xD0, 0xBC,
+ 0xD6, 0xDB, 0x88, 0xBE, 0xB6, 0x2D, 0x7B, 0xBE, 0xC4, 0x75, 0x83, 0x3D,
+ 0x44, 0x63, 0xD1, 0xBC, 0x31, 0xDF, 0x92, 0x3E, 0x27, 0xB5, 0xDA, 0x3C,
+ 0x45, 0xBE, 0x15, 0xBF, 0x24, 0x85, 0x30, 0xBE, 0x3A, 0x3A, 0x0E, 0xBD,
+ 0xE4, 0x6F, 0xAA, 0xBE, 0xB5, 0x68, 0x5D, 0xBD, 0x12, 0xFE, 0x4F, 0x3F,
+ 0xFF, 0x43, 0x03, 0xBC, 0x65, 0x40, 0x32, 0x3D, 0x6C, 0xC9, 0xE2, 0xBD,
+ 0x8D, 0xC1, 0x4B, 0x3D, 0x97, 0x88, 0x02, 0xBF, 0x0B, 0xBF, 0x71, 0xBE,
+ 0x11, 0xD2, 0x96, 0xBC, 0xF7, 0x58, 0xDF, 0x3A, 0xF9, 0x47, 0xDC, 0xBE,
+ 0x49, 0x91, 0xBA, 0xBE, 0x5B, 0x6E, 0x1C, 0x3E, 0x29, 0xFB, 0x31, 0x3E,
+ 0x20, 0x36, 0xD3, 0xBD, 0x4C, 0xDD, 0xAF, 0x3D, 0x7F, 0x2F, 0x9C, 0xBD,
+ 0xA0, 0x6D, 0xDB, 0x3D, 0x46, 0xAE, 0xA6, 0xBD, 0x84, 0x03, 0xF2, 0xBD,
+ 0xF6, 0xA3, 0x4B, 0xBF, 0x91, 0x80, 0x99, 0x3C, 0xA9, 0x0D, 0xAC, 0xBE,
+ 0x6D, 0x38, 0x0F, 0x3F, 0xCC, 0x10, 0x1F, 0x3C, 0x6D, 0xAD, 0x35, 0xBD,
+ 0x5C, 0x12, 0x44, 0x3F, 0xA4, 0x00, 0x26, 0xBE, 0x53, 0x60, 0x0E, 0x3F,
+ 0x87, 0xC3, 0xC6, 0xBC, 0x5E, 0x03, 0xE7, 0xBD, 0xBF, 0xE5, 0x85, 0xBE,
+ 0x37, 0x84, 0x95, 0x3D, 0xAA, 0xFC, 0x34, 0x3F, 0x86, 0x7F, 0x0F, 0x3E,
+ 0xB0, 0xEA, 0x9B, 0x3D, 0x88, 0x30, 0x76, 0xBD, 0x1F, 0x75, 0x1A, 0xBE,
+ 0xEA, 0x43, 0xA6, 0x3E, 0x6B, 0x54, 0xC9, 0xBD, 0x58, 0x35, 0x93, 0xBD,
+ 0xB0, 0xCF, 0x0D, 0xBD, 0x97, 0x12, 0xE1, 0x3C, 0xEC, 0xDE, 0x9A, 0xBB,
+ 0x50, 0x39, 0x10, 0x3E, 0xD6, 0xA4, 0x8B, 0x3C, 0xD9, 0x44, 0xB8, 0xBC,
+ 0x82, 0x88, 0x90, 0xBD, 0xFF, 0x2A, 0x25, 0x3D, 0x4C, 0x2A, 0xCE, 0xBE,
+ 0xA9, 0xD7, 0x1D, 0x3E, 0x29, 0x7E, 0x4E, 0x3D, 0x9F, 0xE9, 0x85, 0xBD,
+ 0x84, 0x73, 0x8A, 0xBC, 0x46, 0x54, 0x58, 0x3D, 0x11, 0x5B, 0xBF, 0x3C,
+ 0x34, 0xCD, 0xEB, 0x3B, 0xFD, 0xFA, 0x3C, 0x3D, 0xF6, 0x34, 0xB6, 0xBC,
+ 0x88, 0x53, 0xBB, 0xBC, 0xBB, 0x2A, 0x0F, 0xBE, 0xD5, 0x48, 0x0A, 0xBE,
+ 0x55, 0x80, 0x22, 0xBD, 0x8C, 0x6D, 0x55, 0xBE, 0x7E, 0xB0, 0x91, 0xBE,
+ 0x24, 0xB5, 0xA0, 0xBC, 0x50, 0xA3, 0xB4, 0xBD, 0x6A, 0xD3, 0xFD, 0x3A,
+ 0xD0, 0x4C, 0xD7, 0x3E, 0x00, 0x96, 0x2E, 0xBF, 0xEF, 0xAC, 0x74, 0xBD,
+ 0x3C, 0x93, 0x9B, 0xBF, 0x0D, 0x03, 0x4B, 0xBE, 0xC2, 0x97, 0x08, 0x3E,
+ 0x96, 0xFA, 0xAC, 0x3E, 0x21, 0xDD, 0x74, 0x3C, 0xA0, 0x12, 0x98, 0xBD,
+ 0x99, 0xD9, 0x3E, 0xBF, 0x4F, 0x44, 0x8D, 0x3F, 0x62, 0x89, 0xCC, 0xBD,
+ 0xB6, 0x8C, 0x7A, 0xBF, 0xF0, 0x27, 0x0A, 0xBF, 0xEA, 0x62, 0x96, 0xBE,
+ 0x75, 0x22, 0x2E, 0x3D, 0x48, 0x53, 0x7B, 0x3E, 0xF0, 0xD6, 0xC6, 0xBB,
+ 0xE7, 0xA8, 0x45, 0x3F, 0xF9, 0xB8, 0x8B, 0xBE, 0xC1, 0x46, 0xD2, 0x3D,
+ 0x90, 0x52, 0x9B, 0x3A, 0x79, 0xD1, 0x2B, 0x3F, 0x95, 0xBB, 0x07, 0xBF,
+ 0x97, 0xE9, 0x62, 0xBE, 0xCD, 0x0A, 0xA3, 0x3E, 0x80, 0x82, 0x9C, 0x3F,
+ 0xFF, 0xB2, 0x92, 0x3F, 0xFD, 0xBD, 0x3B, 0xBE, 0x94, 0x06, 0x9B, 0xBE,
+ 0xF9, 0x7A, 0x9A, 0x3F, 0xA9, 0x58, 0x1B, 0x3D, 0x72, 0x14, 0x03, 0xBF,
+ 0x00, 0xD2, 0xB5, 0xBE, 0x6F, 0x65, 0x74, 0x3F, 0x76, 0x23, 0x10, 0x3D,
+ 0x7B, 0x28, 0x8B, 0xBD, 0x63, 0xCF, 0xA5, 0x3D, 0x9E, 0x9B, 0x82, 0xBE,
+ 0x62, 0xD1, 0x14, 0x3F, 0xB3, 0x16, 0x97, 0xBE, 0xA4, 0x05, 0x47, 0x3E,
+ 0x2D, 0xB7, 0x90, 0x3F, 0xE6, 0x8C, 0x2A, 0xBD, 0xCF, 0x02, 0x25, 0x3F,
+ 0x5A, 0x43, 0x36, 0xBF, 0x16, 0xEC, 0xB6, 0xBE, 0x09, 0x60, 0x10, 0x3E,
+ 0x96, 0x0E, 0xF1, 0x3E, 0x05, 0x29, 0x8D, 0x3E, 0xCD, 0xBF, 0x13, 0x3F,
+ 0x2E, 0xC9, 0x8A, 0xBD, 0x3F, 0xA4, 0xC4, 0x3E, 0x2D, 0x98, 0x31, 0x3E,
+ 0xDB, 0xB9, 0xB2, 0xBF, 0x9C, 0x9C, 0x1A, 0xBE, 0x97, 0xE0, 0x28, 0x3E,
+ 0xEF, 0xC8, 0x01, 0x3E, 0xD7, 0x6D, 0x19, 0x3D, 0x1D, 0x5D, 0x72, 0xBE,
+ 0x5F, 0x44, 0x14, 0xBE, 0x9A, 0x79, 0xE8, 0xBD, 0xD6, 0x0B, 0x73, 0xBE,
+ 0x3B, 0x40, 0xF7, 0xBD, 0x24, 0x43, 0x9A, 0x3E, 0xD2, 0x1C, 0x2A, 0xBE,
+ 0x18, 0x08, 0x97, 0x3F, 0xC9, 0x99, 0x86, 0xBD, 0x43, 0xDB, 0x61, 0x3E,
+ 0x3E, 0x64, 0x04, 0x3E, 0x17, 0x49, 0x97, 0xBD, 0x1E, 0xAC, 0x30, 0xBE,
+ 0x96, 0xBF, 0x32, 0x3E, 0xBB, 0x20, 0xBE, 0xBE, 0x26, 0x16, 0xD6, 0xBC,
+ 0xC9, 0x02, 0x81, 0xBC, 0xA8, 0x5C, 0xBA, 0x39, 0x81, 0xE0, 0xD7, 0x3C,
+ 0x46, 0xBC, 0x7D, 0x3E, 0x30, 0x53, 0x4A, 0x3D, 0x72, 0xFF, 0x28, 0x3E,
+ 0xAC, 0x69, 0x2C, 0xBD, 0x11, 0x63, 0x57, 0x3D, 0x82, 0xE9, 0xBB, 0xBE,
+ 0x4A, 0xD2, 0xC1, 0x3D, 0xCF, 0x49, 0x06, 0x3E, 0x83, 0x27, 0x24, 0xBD,
+ 0x17, 0x98, 0xDE, 0x3E, 0xF4, 0x24, 0x13, 0x3E, 0x97, 0xFC, 0x9B, 0x3D,
+ 0xCE, 0x1D, 0xFB, 0xBE, 0xE2, 0x1F, 0x83, 0xBE, 0xE1, 0xFE, 0x2D, 0x3D,
+ 0xB0, 0x6A, 0x88, 0xBC, 0xF9, 0x97, 0x84, 0x3D, 0x8F, 0x0A, 0x27, 0x3E,
+ 0x8B, 0x46, 0xC4, 0x3B, 0x22, 0x7F, 0xCF, 0x3D, 0xFF, 0xBC, 0xA8, 0x3D,
+ 0xDB, 0x53, 0x4E, 0x3B, 0x65, 0xA3, 0x4A, 0x3D, 0x44, 0xC1, 0xB8, 0x3C,
+ 0xA6, 0x53, 0x70, 0x3A, 0x28, 0x7D, 0x02, 0x3E, 0xA0, 0x3F, 0x3F, 0x3D,
+ 0x00, 0xB1, 0x25, 0x3E, 0x6A, 0xF5, 0x2A, 0xBC, 0x09, 0xDA, 0x43, 0xBC,
+ 0x41, 0x1E, 0x28, 0x3D, 0xE3, 0xA4, 0xDE, 0x3C, 0x0F, 0x5D, 0x31, 0xBE,
+ 0x7F, 0x6C, 0x3B, 0xBC, 0xAA, 0xF4, 0x64, 0xBB, 0xD3, 0x1C, 0xD3, 0xBC,
+ 0x14, 0xC2, 0x04, 0x3E, 0x3D, 0x00, 0x07, 0x3D, 0x06, 0x76, 0x62, 0x3C,
+ 0x85, 0x69, 0x87, 0xBD, 0xEB, 0xE3, 0xC5, 0xBD, 0xB3, 0xBC, 0x02, 0x3E,
+ 0x04, 0x8C, 0x05, 0xBF, 0x1A, 0x21, 0x04, 0x3E, 0x17, 0xD6, 0x0D, 0x3D,
+ 0x45, 0x92, 0xB6, 0xBD, 0x75, 0xEA, 0x05, 0x3D, 0xAF, 0xC7, 0x2D, 0xBF,
+ 0xF2, 0x3A, 0xF3, 0x3D, 0x71, 0x24, 0xA9, 0xBB, 0xD5, 0x28, 0x05, 0xBF,
+ 0xA7, 0xB6, 0x20, 0xBF, 0xB5, 0x40, 0xC0, 0x3E, 0xDE, 0xDA, 0xA8, 0xBE,
+ 0xF6, 0x65, 0xD7, 0xBD, 0xB7, 0xFA, 0x78, 0xBE, 0xD6, 0x62, 0xD0, 0xBC,
+ 0x39, 0x45, 0x7A, 0xBD, 0x3F, 0x01, 0x87, 0x3E, 0x01, 0x0A, 0xD3, 0xBE,
+ 0x7F, 0x9C, 0x57, 0xBE, 0xDD, 0x61, 0xC3, 0xBC, 0x00, 0x6D, 0x4A, 0xBD,
+ 0x0D, 0x11, 0x7F, 0xBF, 0x24, 0x8E, 0x8A, 0x3D, 0xE4, 0x71, 0x47, 0x3E,
+ 0xB9, 0x6E, 0x3D, 0x3D, 0xA2, 0x8E, 0x48, 0x3B, 0x3D, 0x32, 0xA6, 0xBE,
+ 0x54, 0x23, 0xE6, 0x3E, 0x1F, 0x8D, 0x59, 0xBE, 0x7A, 0xF7, 0xCD, 0xBC,
+ 0x28, 0xE5, 0x87, 0x3D, 0x98, 0x75, 0xEC, 0xBD, 0xA4, 0xFD, 0x87, 0x3E,
+ 0x5C, 0xC8, 0x5B, 0xBD, 0x53, 0xCE, 0x68, 0xBF, 0x55, 0xC7, 0x46, 0xBF,
+ 0xEA, 0x54, 0x17, 0xBF, 0xF6, 0x52, 0x1A, 0xBD, 0x88, 0x37, 0x63, 0xBE,
+ 0xCC, 0x3A, 0x5F, 0x3E, 0xBA, 0xD1, 0x97, 0x3D, 0x23, 0x80, 0xB7, 0xBC,
+ 0xF9, 0xAE, 0xD4, 0xBD, 0xF5, 0x54, 0xC3, 0xBC, 0x81, 0x8C, 0x22, 0x3B,
+ 0x4D, 0xE7, 0x37, 0x3C, 0xE8, 0xE7, 0x3F, 0xBC, 0xCD, 0x9B, 0xF5, 0x3B,
+ 0x45, 0xCF, 0x46, 0x3C, 0x1D, 0x3D, 0x7B, 0x3A, 0xE9, 0x99, 0x1B, 0xBD,
+ 0x0E, 0x4E, 0x2E, 0xBC, 0x15, 0x40, 0x36, 0x3D, 0xEE, 0x20, 0xC3, 0xBD,
+ 0x96, 0xA6, 0x5E, 0xBD, 0x41, 0xA7, 0xD5, 0x3A, 0x6C, 0x5E, 0x09, 0x3D,
+ 0x76, 0x8D, 0x5A, 0xBC, 0x2A, 0x32, 0x70, 0x3D, 0xEA, 0x96, 0x89, 0x3C,
+ 0xAE, 0xE2, 0x0B, 0x3D, 0x28, 0xF7, 0x7D, 0x3D, 0xD1, 0x12, 0xB9, 0x3D,
+ 0xF1, 0x8B, 0x52, 0x3C, 0xA6, 0x91, 0xF7, 0x3D, 0x10, 0x9A, 0x94, 0xBD,
+ 0xE0, 0x8C, 0x84, 0xBC, 0xB4, 0x3E, 0x76, 0xBB, 0x5B, 0xE2, 0xCB, 0x3C,
+ 0x6E, 0x50, 0x32, 0xBE, 0xF0, 0xF7, 0x6D, 0xBD, 0xB5, 0x2B, 0xB4, 0xBD,
+ 0xAB, 0x76, 0x04, 0xBE, 0xE9, 0x28, 0xDE, 0xBE, 0xE1, 0xE8, 0x43, 0xBE,
+ 0x54, 0xC8, 0x80, 0xBE, 0xC7, 0x49, 0xB3, 0xBD, 0x65, 0x01, 0x5D, 0xBE,
+ 0xF5, 0x82, 0xE8, 0xBE, 0x27, 0x27, 0xAF, 0xBE, 0x0F, 0x23, 0x11, 0x3E,
+ 0x0C, 0x7B, 0x3C, 0x3D, 0x92, 0x76, 0xFD, 0x3D, 0x1D, 0xB4, 0xA3, 0x3C,
+ 0x9F, 0x5C, 0x3F, 0x3F, 0xC7, 0x3D, 0x8E, 0xBE, 0x9B, 0x8A, 0x05, 0x3F,
+ 0xFA, 0x0F, 0x30, 0x3D, 0x9D, 0x9E, 0x0E, 0xBE, 0x88, 0x3D, 0xB1, 0x3A,
+ 0x0E, 0x53, 0x95, 0x3E, 0x2D, 0xBD, 0x00, 0x3F, 0xA2, 0x3D, 0xD7, 0xBD,
+ 0x0E, 0xB0, 0xC2, 0xBD, 0xB1, 0x24, 0xE9, 0xBE, 0x26, 0x3C, 0xB1, 0xBE,
+ 0xD1, 0xD1, 0x93, 0x3F, 0xF3, 0x16, 0xE4, 0xBE, 0x29, 0x96, 0x76, 0x3E,
+ 0xFE, 0x95, 0x2C, 0x3F, 0x11, 0x8F, 0x81, 0xBE, 0xA6, 0x3D, 0x47, 0x3E,
+ 0x82, 0x47, 0x3B, 0xBF, 0x8A, 0x65, 0xB8, 0xBE, 0x82, 0xAB, 0x8D, 0x3D,
+ 0x2A, 0x20, 0x6A, 0xBC, 0xA6, 0x1B, 0x56, 0xBD, 0xEB, 0x9F, 0x80, 0x3D,
+ 0xB3, 0xD7, 0x94, 0x3B, 0x62, 0x1F, 0x6B, 0xBC, 0xB5, 0x1C, 0x2F, 0xBC,
+ 0x79, 0x0E, 0xB9, 0x3C, 0x34, 0x0D, 0x45, 0x3D, 0xA3, 0xEE, 0x41, 0x3D,
+ 0xED, 0xAB, 0x12, 0x3E, 0x5D, 0x73, 0x0B, 0x3D, 0xA0, 0xAD, 0x0B, 0xBD,
+ 0x95, 0x4A, 0x05, 0x3C, 0xF8, 0xFF, 0x2D, 0xBE, 0x9A, 0x29, 0xFB, 0xBC,
+ 0xCF, 0xA5, 0x2F, 0xBC, 0x37, 0x6F, 0xB0, 0x3C, 0x48, 0x41, 0x0B, 0x3E,
+ 0x6C, 0xC3, 0x2C, 0xBD, 0x52, 0x11, 0x09, 0xBA, 0xD5, 0x3A, 0x9F, 0xBA,
+ 0xEF, 0x9F, 0xA4, 0xBD, 0x19, 0x25, 0x59, 0x3D, 0x58, 0xB5, 0x26, 0xBE,
+ 0x68, 0x15, 0x37, 0x3C, 0x7B, 0x01, 0xD3, 0x3C, 0x04, 0xDC, 0x0F, 0xBE,
+ 0xE6, 0x25, 0x82, 0xBC, 0xFE, 0x60, 0x57, 0x3E, 0xA1, 0xF6, 0x66, 0xBC,
+ 0x63, 0x84, 0x29, 0xBD, 0x0E, 0x87, 0x8E, 0x3F, 0xE8, 0x05, 0xD8, 0x3E,
+ 0xE3, 0x68, 0x6E, 0x3F, 0x03, 0x73, 0x0F, 0xBF, 0x5B, 0x2E, 0xC6, 0x3E,
+ 0x33, 0xF7, 0xCF, 0xBD, 0x26, 0xDA, 0xED, 0xBD, 0x69, 0x3A, 0xE6, 0x3E,
+ 0xA9, 0xD8, 0x86, 0x3E, 0x20, 0x13, 0x33, 0x3F, 0x10, 0xD4, 0x31, 0xBE,
+ 0x68, 0x70, 0x0C, 0xBD, 0x4E, 0x6A, 0x2F, 0xBF, 0x47, 0x6D, 0xC9, 0x3D,
+ 0xAF, 0x85, 0x1D, 0xBF, 0x19, 0x73, 0x13, 0x3F, 0x35, 0x96, 0x66, 0xBD,
+ 0xC0, 0x68, 0x0B, 0xBD, 0xDB, 0x9C, 0x4F, 0x3F, 0xDE, 0xD5, 0xCD, 0xBE,
+ 0x13, 0x81, 0x7D, 0x3E, 0x4D, 0x4F, 0x2E, 0x3E, 0xE3, 0x5E, 0xCE, 0x3F,
+ 0xB6, 0x92, 0x2B, 0xBF, 0x1C, 0x4B, 0x7F, 0xBF, 0x6B, 0x08, 0x62, 0x3E,
+ 0x14, 0xBB, 0x5E, 0xBE, 0x55, 0x45, 0x1F, 0xBF, 0xC5, 0x71, 0xD3, 0xBD,
+ 0x8C, 0x0E, 0x2D, 0xBF, 0x75, 0x1F, 0x5E, 0x3F, 0x85, 0xBD, 0xAF, 0x3E,
+ 0x07, 0x92, 0x21, 0xBF, 0x2C, 0xD8, 0xB4, 0x3E, 0xF3, 0x34, 0x35, 0x3E,
+ 0xF1, 0xD9, 0x64, 0x3E, 0x89, 0xAE, 0x95, 0x3E, 0x11, 0xD5, 0xC1, 0x3D,
+ 0x4C, 0xCB, 0xE5, 0xBE, 0xCC, 0x6E, 0xCE, 0x3D, 0x59, 0x34, 0xDD, 0xBD,
+ 0x0E, 0xD6, 0x79, 0x3E, 0x41, 0x6D, 0x4D, 0xBE, 0xC6, 0x0A, 0x99, 0xBC,
+ 0xB3, 0x62, 0xA5, 0xBF, 0xA9, 0x3F, 0x24, 0x3F, 0x7C, 0x3F, 0x14, 0xBF,
+ 0xAC, 0x77, 0x9F, 0xBE, 0xDE, 0x73, 0xBB, 0xBD, 0xD9, 0x48, 0x51, 0xBB,
+ 0xFF, 0xE7, 0xAB, 0xBE, 0x5B, 0x29, 0x08, 0x3F, 0x4D, 0xE0, 0x11, 0x3E,
+ 0x5F, 0x87, 0x42, 0x3D, 0xBD, 0xB5, 0x71, 0xBF, 0x3D, 0xFF, 0x01, 0xBF,
+ 0x87, 0xF6, 0xFE, 0xBD, 0xCD, 0xB9, 0x50, 0x3E, 0xDC, 0x0F, 0xDE, 0xBD,
+ 0x3B, 0x20, 0x86, 0xBE, 0xFB, 0x35, 0x25, 0x3E, 0x6C, 0x79, 0x5D, 0x3C,
+ 0x4C, 0xE6, 0x55, 0x3F, 0x30, 0x60, 0x3B, 0x3E, 0x86, 0x56, 0x97, 0x3E,
+ 0xA6, 0x85, 0x86, 0xBE, 0xDB, 0x85, 0x89, 0x3E, 0xEB, 0xC9, 0x61, 0xBE,
+ 0x69, 0xEC, 0x9C, 0xBB, 0x03, 0xC0, 0xD7, 0x3E, 0x05, 0x6C, 0xB8, 0x3E,
+ 0xBB, 0x56, 0xB4, 0xBC, 0x40, 0xE3, 0xBE, 0x3E, 0xCA, 0xE2, 0xAD, 0x3E,
+ 0xC0, 0x1A, 0xA9, 0xBE, 0x97, 0xE5, 0xF1, 0xBD, 0x9C, 0xF2, 0xAD, 0x3E,
+ 0x0B, 0xA1, 0x10, 0xC0, 0x6C, 0x3C, 0xAF, 0xBE, 0x8B, 0x24, 0xDB, 0xBE,
+ 0xAF, 0x7F, 0x0E, 0x3F, 0xEF, 0x34, 0xEB, 0xBD, 0x36, 0x15, 0xB9, 0xBD,
+ 0x82, 0x09, 0xA0, 0xBE, 0xEB, 0xEE, 0x2A, 0x3D, 0x99, 0xE3, 0x3B, 0xBE,
+ 0xD7, 0xC0, 0x3F, 0x3F, 0x7F, 0x19, 0xC3, 0x3E, 0x72, 0xCE, 0x7C, 0xBE,
+ 0x78, 0x3B, 0xA4, 0x3E, 0x29, 0x7E, 0x0E, 0xBB, 0x3D, 0xAE, 0x20, 0xBC,
+ 0xDD, 0xFA, 0x15, 0xBF, 0x3B, 0x06, 0x86, 0x3F, 0xE9, 0x80, 0x47, 0xBF,
+ 0xEA, 0x2F, 0xFC, 0xBE, 0xE6, 0x03, 0xA6, 0xBD, 0xB8, 0x85, 0x06, 0xBE,
+ 0xF6, 0x20, 0x4C, 0x3D, 0x89, 0x85, 0x0C, 0xBF, 0x78, 0x3C, 0x9D, 0x3E,
+ 0xDC, 0xBB, 0x88, 0xBE, 0x0E, 0x52, 0x08, 0xBF, 0x43, 0xA2, 0x84, 0x3E,
+ 0xC1, 0x89, 0x7E, 0x3D, 0x5A, 0xA9, 0xB3, 0xBD, 0xDF, 0x16, 0xA6, 0x3E,
+ 0x1C, 0xD1, 0xBE, 0x3C, 0x4A, 0x6C, 0xFD, 0x3E, 0x53, 0xEA, 0x4F, 0xBF,
+ 0x6F, 0xED, 0xAB, 0x3F, 0xC1, 0xC1, 0xF1, 0xBC, 0xA5, 0x0D, 0xC3, 0x3E,
+ 0x61, 0x36, 0x17, 0xBD, 0x95, 0x41, 0xCF, 0xBC, 0x6B, 0x5D, 0x5B, 0x3E,
+ 0x25, 0xF0, 0xD3, 0xBD, 0xF6, 0x5A, 0x0A, 0x3B, 0xF1, 0xE6, 0xE1, 0x3D,
+ 0xA2, 0x75, 0x36, 0xBF, 0x09, 0xD3, 0x03, 0xBE, 0x37, 0xBC, 0x05, 0x3F,
+ 0x94, 0x1E, 0xEF, 0xBE, 0xE7, 0x55, 0xC3, 0xBE, 0x68, 0x6B, 0x10, 0x3E,
+ 0xE6, 0xDF, 0x1A, 0x3F, 0x4D, 0xA0, 0x95, 0xBF, 0x40, 0x4A, 0x14, 0xBE,
+ 0xC7, 0x1A, 0x43, 0xBF, 0xE0, 0x60, 0x24, 0xBE, 0xD5, 0x23, 0x4A, 0x3E,
+ 0xE2, 0xD8, 0x4E, 0x3D, 0x84, 0xDD, 0x08, 0x3F, 0x55, 0xE6, 0xA0, 0x3E,
+ 0x66, 0x83, 0xAD, 0xBE, 0x94, 0x5E, 0x8D, 0x3D, 0x0B, 0x0B, 0x80, 0x3E,
+ 0x68, 0x42, 0x3D, 0x3D, 0xE1, 0x70, 0x4D, 0x3B, 0x1A, 0x82, 0x19, 0xBE,
+ 0x36, 0xC2, 0x8E, 0xBE, 0xF3, 0xF4, 0x88, 0x3F, 0x9B, 0x13, 0x4D, 0xBF,
+ 0x79, 0x9C, 0xBF, 0x3E, 0x75, 0xE3, 0xAB, 0xBE, 0xED, 0x81, 0xA9, 0xBD,
+ 0x80, 0x41, 0x52, 0xBF, 0x22, 0x80, 0xC9, 0x3E, 0x09, 0x44, 0xCD, 0x3E,
+ 0x3A, 0x5C, 0x8B, 0x3E, 0x8D, 0x82, 0xF7, 0xBE, 0x6D, 0xFA, 0x0A, 0x3D,
+ 0xC2, 0x86, 0x08, 0xBD, 0x30, 0x1E, 0x23, 0xBE, 0x03, 0x52, 0x14, 0x3E,
+ 0x3A, 0xFC, 0x65, 0x3E, 0xC9, 0x9B, 0x04, 0x3E, 0x74, 0xFF, 0x20, 0x3F,
+ 0xC4, 0x09, 0x9A, 0xBE, 0x17, 0xE9, 0x12, 0xBD, 0x84, 0x46, 0x5E, 0xBB,
+ 0xF1, 0x02, 0xBF, 0x3B, 0x6B, 0x78, 0x95, 0x3E, 0x24, 0xD7, 0x6A, 0xBE,
+ 0x6D, 0xE1, 0xE6, 0xBD, 0x69, 0xC0, 0x27, 0x3E, 0x88, 0xFA, 0xAF, 0xBD,
+ 0x8B, 0xA8, 0xB0, 0x3C, 0x84, 0x3B, 0x94, 0x3D, 0xC6, 0xD0, 0x3B, 0xBE,
+ 0x59, 0xF7, 0x48, 0x3F, 0x7F, 0x4D, 0xEE, 0xBD, 0x4D, 0x15, 0x00, 0xBF,
+ 0x2D, 0x6E, 0xA1, 0xBD, 0xD4, 0xEF, 0x36, 0x3F, 0x87, 0x9D, 0x1C, 0xBF,
+ 0xDD, 0x49, 0x0D, 0x3F, 0x14, 0x7C, 0x89, 0xBD, 0xCD, 0xD1, 0xD9, 0x3D,
+ 0x18, 0x16, 0xAE, 0x3E, 0xA9, 0x61, 0x4C, 0x3E, 0x9D, 0x76, 0x7A, 0x3E,
+ 0x1B, 0x6D, 0x09, 0xBF, 0x0A, 0x56, 0xF2, 0x3C, 0x09, 0x44, 0x89, 0xBF,
+ 0x0B, 0x4A, 0xAD, 0xBE, 0xB1, 0x31, 0x86, 0xBD, 0x60, 0x30, 0x91, 0xBD,
+ 0x20, 0x66, 0x99, 0xBC, 0x02, 0x16, 0x9F, 0xBE, 0x6D, 0x4C, 0x49, 0x3F,
+ 0x80, 0xA1, 0xAD, 0x3E, 0xF9, 0x91, 0x06, 0xBC, 0xAC, 0xDC, 0xA8, 0xBE,
+ 0x1F, 0xF2, 0xA1, 0x3E, 0x0C, 0x39, 0x9A, 0x3F, 0xD6, 0x22, 0xFF, 0xBD,
+ 0x3C, 0x1E, 0x05, 0xBF, 0xD5, 0x7D, 0x56, 0x3E, 0x71, 0x1E, 0x3F, 0xBE,
+ 0x0C, 0x4F, 0x0B, 0x3F, 0xE1, 0x08, 0xAE, 0xBD, 0x99, 0xF0, 0xAA, 0xBF,
+ 0xBE, 0x8F, 0x00, 0x3E, 0x5C, 0x69, 0x45, 0xBF, 0x7A, 0xC9, 0x40, 0x3E,
+ 0xCB, 0x19, 0x0C, 0xC0, 0xFD, 0x4B, 0x40, 0xBF, 0x7B, 0x53, 0x9F, 0xBE,
+ 0x07, 0x6E, 0xBD, 0x3D, 0x8A, 0x9C, 0x3A, 0xBE, 0x92, 0xA0, 0xC1, 0xBE,
+ 0x5C, 0x93, 0xA3, 0xBC, 0x3D, 0x31, 0xE4, 0xBD, 0xC3, 0xA7, 0x2D, 0xBF,
+ 0x77, 0xAF, 0x15, 0xBE, 0x4E, 0x89, 0x8F, 0xBC, 0xAE, 0x95, 0x06, 0x3F,
+ 0x31, 0x61, 0xAE, 0x3E, 0x7F, 0x11, 0x28, 0x3E, 0x75, 0x1F, 0xC1, 0xB8,
+ 0x9C, 0x73, 0x3D, 0xBE, 0x59, 0x06, 0x68, 0x3F, 0x46, 0x58, 0x16, 0xBF,
+ 0xA6, 0xEE, 0xD5, 0x3E, 0x1F, 0x84, 0x9F, 0xBE, 0xE9, 0x68, 0xEC, 0x3E,
+ 0xBC, 0xB2, 0xAE, 0x3D, 0x66, 0x86, 0x85, 0xBA, 0x08, 0x0C, 0x76, 0x3E,
+ 0xD0, 0x9D, 0x25, 0xBF, 0x7B, 0x04, 0x23, 0x3F, 0x96, 0x7A, 0x50, 0xBF,
+ 0x97, 0x07, 0xA5, 0xBE, 0x24, 0x58, 0x18, 0x3A, 0x2F, 0xEB, 0x4E, 0x3D,
+ 0x87, 0x6E, 0xB9, 0x3E, 0x86, 0x35, 0x36, 0xBF, 0x85, 0xD0, 0x00, 0x3D,
+ 0xED, 0xE9, 0x87, 0xBE, 0x5D, 0xE7, 0x63, 0xBC, 0x77, 0x2D, 0xE3, 0x3D,
+ 0x26, 0x68, 0xB2, 0x3D, 0x11, 0xEA, 0xF6, 0xBD, 0x18, 0x5C, 0xD1, 0xBD,
+ 0xB9, 0x88, 0x06, 0xBE, 0x59, 0xC9, 0xAC, 0x3E, 0x2A, 0x6F, 0xB8, 0xBE,
+ 0xB1, 0x36, 0xC8, 0x3D, 0x3A, 0x03, 0xA3, 0x3C, 0xB1, 0x7D, 0xAD, 0x3E,
+ 0x40, 0x73, 0x04, 0xBE, 0x17, 0x63, 0x2B, 0xBE, 0x45, 0x3C, 0xB5, 0x3F,
+ 0x55, 0xF6, 0xBC, 0xBE, 0x82, 0x84, 0x9E, 0xBD, 0xA0, 0xF9, 0x27, 0xBE,
+ 0x50, 0xB2, 0x00, 0x3E, 0x25, 0x90, 0x66, 0x3F, 0xCB, 0xAC, 0x09, 0x3F,
+ 0x2F, 0x67, 0x4C, 0x3E, 0x4F, 0x48, 0x3F, 0xBD, 0x03, 0xAF, 0xAB, 0x3F,
+ 0xBF, 0x7F, 0x94, 0x3E, 0x6E, 0x40, 0x48, 0x40, 0xFA, 0xA9, 0xA4, 0x3E,
+ 0xC2, 0x97, 0x3A, 0xBF, 0xBC, 0xEE, 0x5D, 0xBC, 0x80, 0xBD, 0x4D, 0xBF,
+ 0xEC, 0xDF, 0x27, 0x3F, 0xBA, 0x4D, 0x82, 0xBF, 0xDD, 0x20, 0x27, 0x3F,
+ 0xBA, 0x32, 0xA1, 0x3E, 0x79, 0xD6, 0x07, 0x3E, 0x12, 0x61, 0x20, 0x3F,
+ 0xBD, 0x13, 0xF0, 0xBE, 0x8E, 0xED, 0xA8, 0xBE, 0xA9, 0xFC, 0x41, 0xBF,
+ 0x8B, 0x82, 0x7C, 0x3C, 0x95, 0xB1, 0xB9, 0x3E, 0xC6, 0x29, 0x0C, 0xBF,
+ 0x5F, 0x2A, 0xA7, 0x3C, 0x63, 0x28, 0x07, 0x3F, 0x7B, 0x40, 0x1D, 0x3F,
+ 0x72, 0x4E, 0x8F, 0x3D, 0x0C, 0x6B, 0x2E, 0xBF, 0xEC, 0x80, 0xD4, 0x3D,
+ 0x87, 0x50, 0xC0, 0x3D, 0x56, 0x8E, 0xAE, 0x3E, 0x91, 0x01, 0x8A, 0x3E,
+ 0xBD, 0x1E, 0x00, 0xBF, 0x43, 0x07, 0x3A, 0xBD, 0xFB, 0x04, 0xB9, 0x3E,
+ 0xFE, 0x4D, 0xAF, 0x3D, 0x57, 0x37, 0x7D, 0x3F, 0xAA, 0xB9, 0x2C, 0xBF,
+ 0xAD, 0x33, 0xDF, 0xBD, 0x3E, 0x7A, 0x51, 0x3E, 0x9C, 0x23, 0x3B, 0x3E,
+ 0xB5, 0x38, 0x24, 0x3C, 0x7E, 0xFF, 0x35, 0xBD, 0x3A, 0xA3, 0x7E, 0x3E,
+ 0x3D, 0xEB, 0xC5, 0xBE, 0x37, 0x2C, 0xE0, 0xBE, 0xCB, 0x19, 0xA1, 0xBE,
+ 0x41, 0xF9, 0x40, 0xBC, 0xE9, 0xA7, 0xC9, 0x3E, 0x57, 0xAE, 0x62, 0x3C,
+ 0xEE, 0x98, 0xC7, 0x3D, 0x9D, 0x68, 0xB8, 0x3D, 0xCF, 0x24, 0x7C, 0x3D,
+ 0xBC, 0xC2, 0xD8, 0xBD, 0x62, 0xBA, 0x0D, 0x3F, 0xC7, 0x10, 0x1A, 0xBF,
+ 0xC3, 0xEB, 0x4E, 0xBE, 0x47, 0x48, 0x84, 0xBF, 0x31, 0x94, 0xCD, 0x3E,
+ 0xB1, 0x79, 0x20, 0x3F, 0x1A, 0xDA, 0x00, 0xBE, 0x40, 0xC0, 0xA4, 0x3B,
+ 0xEE, 0x43, 0x6C, 0xBE, 0xC6, 0x30, 0xC4, 0xBD, 0xAC, 0x6A, 0xA0, 0xBD,
+ 0x67, 0xB2, 0xDA, 0xBE, 0x00, 0x67, 0x1E, 0xBE, 0x92, 0x4D, 0x7C, 0xBD,
+ 0x50, 0xBE, 0x31, 0xBE, 0xFE, 0xBC, 0x8A, 0xBD, 0x92, 0xBB, 0x07, 0x3E,
+ 0x90, 0x58, 0xED, 0xBD, 0xF8, 0xFA, 0x7B, 0xBE, 0x72, 0x95, 0x11, 0xBE,
+ 0xD0, 0x7E, 0x8C, 0x3E, 0x7E, 0x68, 0x26, 0xBD, 0x23, 0xF6, 0x7A, 0x3E,
+ 0x39, 0x31, 0x57, 0xBD, 0x7E, 0xFA, 0x93, 0x3D, 0x7E, 0x08, 0x5B, 0xBD,
+ 0x81, 0x63, 0xBA, 0xBE, 0x13, 0xBA, 0x8D, 0x3B, 0x54, 0x87, 0xAE, 0xBB,
+ 0x7C, 0x8E, 0xF1, 0xBC, 0xA5, 0x39, 0xA3, 0x3E, 0x62, 0x98, 0x0F, 0xBE,
+ 0xA0, 0xFE, 0x3A, 0x3E, 0x42, 0x5A, 0x41, 0x3E, 0xC2, 0x0B, 0xE2, 0xBD,
+ 0x70, 0xDB, 0xC2, 0x3D, 0x39, 0x0E, 0x6F, 0xBE, 0xF1, 0xF7, 0x46, 0xBE,
+ 0x84, 0x88, 0xD7, 0x3D, 0x12, 0x78, 0x1A, 0x3C, 0x94, 0xD4, 0xB2, 0xBC,
+ 0x92, 0x8C, 0xA3, 0xBD, 0xDE, 0x6E, 0x2D, 0xBE, 0x29, 0x82, 0xEB, 0xBD,
+ 0xDD, 0x63, 0x26, 0x3D, 0x39, 0x55, 0xC1, 0xBD, 0x51, 0x79, 0x2A, 0x3C,
+ 0x81, 0x81, 0x45, 0xBD, 0x4F, 0x0F, 0x28, 0xBD, 0x1E, 0xE2, 0xE5, 0xBD,
+ 0x45, 0x86, 0xBC, 0x3B, 0x53, 0x10, 0xA5, 0xBC, 0xF0, 0x5E, 0x89, 0x3D,
+ 0x71, 0x77, 0xEF, 0x3C, 0xC8, 0xC6, 0x63, 0x3D, 0x42, 0x80, 0x94, 0xBD,
+ 0x43, 0xB6, 0xCC, 0x3D, 0xA5, 0x84, 0x43, 0x3D, 0x52, 0xB3, 0xD9, 0xBD,
+ 0xB3, 0x04, 0x10, 0x3E, 0x45, 0x3A, 0xC5, 0xBC, 0x45, 0xDC, 0xF6, 0x3C,
+ 0x82, 0xC4, 0x71, 0xBC, 0xE2, 0xCA, 0x16, 0xBE, 0x3B, 0x69, 0x85, 0x3D,
+ 0x24, 0x11, 0x1A, 0x3E, 0x96, 0xBB, 0x4D, 0x3D, 0x26, 0x6D, 0xBD, 0x3D,
+ 0x10, 0x10, 0x75, 0x3D, 0xF4, 0x8B, 0xDC, 0xBE, 0x16, 0x60, 0xE8, 0x3D,
+ 0x93, 0x8F, 0x08, 0x3D, 0x06, 0xC8, 0x23, 0x3E, 0x2E, 0x44, 0xE5, 0x3E,
+ 0x7E, 0x25, 0xF8, 0x3E, 0xA2, 0x93, 0x9E, 0x3D, 0x11, 0xBF, 0x25, 0xBE,
+ 0xF4, 0x0C, 0x7F, 0x3F, 0x9E, 0xA9, 0x85, 0x3E, 0x4D, 0x62, 0xFB, 0xBE,
+ 0x67, 0xFB, 0x51, 0x3F, 0x9B, 0xFE, 0x96, 0xBE, 0xBA, 0x62, 0x3B, 0xBF,
+ 0x50, 0x07, 0x59, 0xBF, 0xF3, 0xFF, 0xD8, 0xBE, 0xB5, 0xF7, 0x44, 0xC0,
+ 0xEE, 0x55, 0x9E, 0xBE, 0xD0, 0x3F, 0x37, 0x3F, 0xBE, 0x9D, 0x6E, 0xBE,
+ 0x60, 0x61, 0x3E, 0xBF, 0x2E, 0x50, 0xA9, 0x3E, 0xE7, 0x9F, 0x5A, 0x3E,
+ 0xF7, 0x80, 0x16, 0x3C, 0xEA, 0x8C, 0xB6, 0xBE, 0x6B, 0x85, 0xD0, 0x3E,
+ 0xC9, 0xC5, 0xD2, 0x3D, 0x42, 0x49, 0x6F, 0xBE, 0x1F, 0x36, 0x66, 0x3F,
+ 0x93, 0x6E, 0x3D, 0x3E, 0x0D, 0xF0, 0x85, 0x3E, 0xBE, 0x02, 0xFA, 0xBF,
+ 0x12, 0x26, 0xEC, 0x3D, 0xAD, 0x54, 0x72, 0xBE, 0x12, 0x0B, 0x47, 0xBF,
+ 0xEE, 0xC6, 0xD3, 0xBC, 0x02, 0xC8, 0x5B, 0xBD, 0x15, 0x6D, 0x28, 0xBD,
+ 0xC1, 0x5D, 0xFB, 0x3A, 0x20, 0x7F, 0xCC, 0xBC, 0xA1, 0xEC, 0x4C, 0xBD,
+ 0xD6, 0x7D, 0x2C, 0x3D, 0xF3, 0x14, 0x0E, 0xBD, 0xCF, 0x80, 0xB6, 0xBD,
+ 0x02, 0xB3, 0xE9, 0x3C, 0xD0, 0xBB, 0xAB, 0xBD, 0x7F, 0x0D, 0x75, 0x3C,
+ 0x90, 0xD7, 0xC3, 0x39, 0xB9, 0x26, 0x87, 0x3D, 0x9B, 0x30, 0xBC, 0xBC,
+ 0x4F, 0xF7, 0x21, 0x3D, 0x75, 0xC3, 0xA9, 0xBC, 0x32, 0xBB, 0x34, 0xBC,
+ 0x9F, 0x07, 0xE0, 0xBB, 0x18, 0xE4, 0x99, 0xBD, 0xB8, 0xAB, 0xAC, 0x3C,
+ 0x2B, 0x48, 0x33, 0x3D, 0x7F, 0xAF, 0x13, 0x3E, 0x86, 0x06, 0x87, 0xBD,
+ 0xC8, 0x75, 0x27, 0x3B, 0x1C, 0x91, 0xF1, 0xBB, 0xEB, 0x19, 0x1C, 0xBD,
+ 0xF9, 0xCF, 0x23, 0x3C, 0xD2, 0x5A, 0xE5, 0x3B, 0x3A, 0xE3, 0xBD, 0xBD,
+ 0x14, 0xFC, 0xCF, 0x3B, 0x5B, 0x61, 0x17, 0x3D, 0x28, 0x28, 0xB2, 0xBD,
+ 0xD9, 0x33, 0x17, 0x3D, 0x97, 0x4F, 0xAD, 0xBD, 0xF2, 0x38, 0xB8, 0xBC,
+ 0x09, 0xF2, 0xCA, 0xBC, 0xDC, 0x9E, 0x02, 0x3C, 0xDE, 0xA1, 0x4D, 0x3C,
+ 0x8B, 0x91, 0x9D, 0x3C, 0x27, 0x89, 0xFB, 0xBC, 0x5A, 0x74, 0x04, 0x3D,
+ 0xEB, 0x51, 0x8A, 0xBD, 0x2B, 0x02, 0x04, 0x3C, 0x6D, 0x98, 0xC3, 0x3C,
+ 0xBB, 0xA4, 0x8B, 0x3D, 0x0F, 0x65, 0x83, 0x3D, 0x4E, 0x36, 0xE9, 0x3C,
+ 0x53, 0xAB, 0x92, 0x3B, 0x6C, 0x3A, 0x28, 0x3B, 0xB1, 0x1E, 0xAB, 0xBD,
+ 0xB7, 0xC0, 0x78, 0xBD, 0x4B, 0x78, 0x11, 0x3D, 0x51, 0x0B, 0xEB, 0xBC,
+ 0xF2, 0xF0, 0xB8, 0x3C, 0x6F, 0x52, 0x4D, 0x3C, 0xB7, 0x37, 0x1E, 0xBB,
+ 0xA7, 0x98, 0x30, 0x3C, 0xAA, 0x95, 0x19, 0xBD, 0x60, 0xA2, 0x59, 0x3D,
+ 0x29, 0x5D, 0xC2, 0xBC, 0x3F, 0x11, 0x43, 0x3E, 0xFF, 0x68, 0xE6, 0x3C,
+ 0x27, 0xD5, 0x28, 0x3C, 0x77, 0x7A, 0xBA, 0x3E, 0x04, 0x99, 0x12, 0x3E,
+ 0x55, 0x83, 0x30, 0xBF, 0x9B, 0x47, 0xD0, 0x3E, 0x0B, 0x43, 0x3B, 0xBC,
+ 0xC0, 0x2A, 0xB9, 0x3D, 0x93, 0xA9, 0xFB, 0x3D, 0x98, 0xB3, 0xAB, 0x3C,
+ 0xDD, 0x66, 0xB3, 0xBD, 0xE8, 0xB3, 0x08, 0xBE, 0x01, 0xA3, 0x11, 0xBD,
+ 0x78, 0x8F, 0xB8, 0x3C, 0xA6, 0x6B, 0x04, 0xBF, 0xCE, 0x8D, 0x90, 0xBE,
+ 0x70, 0xF8, 0xD4, 0xBE, 0x5C, 0xFB, 0xB1, 0xBA, 0x3A, 0xAC, 0xB7, 0x3E,
+ 0xD0, 0x00, 0x17, 0x3D, 0x87, 0x66, 0xB5, 0x3E, 0x08, 0xCC, 0xF3, 0xBE,
+ 0xF1, 0xE3, 0xE8, 0x3C, 0x38, 0x60, 0x6D, 0x3D, 0x20, 0x49, 0x76, 0xBF,
+ 0xC7, 0x40, 0x4A, 0x3C, 0x8B, 0xDE, 0x77, 0xBE, 0xE8, 0xCD, 0xD3, 0x3E,
+ 0xFD, 0x06, 0x98, 0xBD, 0x25, 0x91, 0x06, 0xBF, 0xC9, 0xBB, 0xF5, 0x3D,
+ 0xF2, 0x8C, 0x8A, 0xBF, 0x76, 0x86, 0xF2, 0x3C, 0x3E, 0x2F, 0x07, 0x3E,
+ 0x07, 0x07, 0xB7, 0xBC, 0x19, 0x0F, 0x20, 0xBD, 0x62, 0xB8, 0x3D, 0x3D,
+ 0xE7, 0xC5, 0xCD, 0x3C, 0x80, 0xF4, 0x89, 0x3C, 0x33, 0x92, 0xA9, 0xBC,
+ 0xF3, 0xE3, 0x41, 0x3D, 0x7C, 0x43, 0xBF, 0xBB, 0x96, 0xBF, 0xF0, 0xBD,
+ 0xAA, 0xC6, 0x11, 0xBC, 0x44, 0x11, 0x23, 0xBD, 0xB3, 0x26, 0x84, 0x3C,
+ 0x22, 0xEE, 0x07, 0x3C, 0xF4, 0x97, 0x6B, 0xBC, 0x9B, 0x75, 0xE2, 0x3B,
+ 0x1B, 0xA7, 0x2B, 0x3B, 0x09, 0xD8, 0x0F, 0x3C, 0x5E, 0x74, 0x0C, 0x3C,
+ 0xF4, 0xAF, 0x9B, 0xBC, 0x0C, 0x12, 0x04, 0xBC, 0xE1, 0x25, 0xF5, 0x3C,
+ 0xCC, 0xA2, 0x3F, 0x3D, 0xA3, 0x8C, 0x95, 0x3D, 0xD3, 0x55, 0x49, 0xBD,
+ 0xDD, 0xDB, 0x1E, 0x3D, 0xFB, 0x33, 0x35, 0x3B, 0xEC, 0x66, 0x81, 0xBC,
+ 0x0A, 0xB8, 0x31, 0x3C, 0x1F, 0xDB, 0x30, 0x3D, 0xA8, 0xA8, 0x7D, 0xBE,
+ 0xAB, 0x83, 0x83, 0x3B, 0x28, 0x05, 0x7E, 0xBC, 0xB4, 0xA1, 0xAF, 0xBD,
+ 0xA6, 0x1A, 0xA7, 0x3E, 0x86, 0x3B, 0x0C, 0x3F, 0x21, 0x5E, 0xC1, 0xBE,
+ 0xE1, 0x87, 0xB8, 0x3E, 0xB9, 0x62, 0xE4, 0xBE, 0xB9, 0x8E, 0xB4, 0xBC,
+ 0xA5, 0x79, 0x4B, 0x3F, 0xAE, 0x49, 0xCF, 0xBE, 0xCD, 0x36, 0x11, 0x3E,
+ 0x05, 0xDF, 0xC0, 0xBE, 0x3F, 0x01, 0xB2, 0x3E, 0x2E, 0xFD, 0x6B, 0x3E,
+ 0xA6, 0x9C, 0x47, 0x40, 0x11, 0x87, 0x00, 0x3D, 0x73, 0x2B, 0x07, 0x3F,
+ 0x78, 0xC2, 0x58, 0xBE, 0x2A, 0xAF, 0xBD, 0x3E, 0x7D, 0x1A, 0x8F, 0x3C,
+ 0x68, 0x55, 0xB8, 0xBE, 0x59, 0xF5, 0x6E, 0x3E, 0x18, 0x63, 0x12, 0x3C,
+ 0x55, 0x0E, 0x87, 0x3E, 0xBD, 0xF7, 0x76, 0x3E, 0x8F, 0x32, 0x0E, 0xBF,
+ 0xCC, 0xA4, 0x6A, 0x3E, 0xE4, 0xEE, 0x4A, 0x3F, 0x01, 0xC1, 0xA0, 0x3E,
+ 0x5B, 0x2E, 0x75, 0x3F, 0x05, 0xAD, 0x99, 0x3E, 0x64, 0xBC, 0x8C, 0xBE,
+ 0x1E, 0x4D, 0xAB, 0x3E, 0x6A, 0xE2, 0x2F, 0xBE, 0x1A, 0x60, 0x13, 0xBF,
+ 0xE4, 0x0A, 0x09, 0x3E, 0xEF, 0xFE, 0x06, 0xBF, 0x62, 0xC0, 0x60, 0xBE,
+ 0xF5, 0x3C, 0xC7, 0x3E, 0x8F, 0x77, 0x60, 0xBF, 0xDB, 0x95, 0xAC, 0xBD,
+ 0xCE, 0xA0, 0xF7, 0xBC, 0x2F, 0x9B, 0x3D, 0x3D, 0x1C, 0x4B, 0x9C, 0xBD,
+ 0x0A, 0x09, 0x93, 0xBE, 0x8C, 0x90, 0x6C, 0x3D, 0x99, 0x67, 0x1F, 0xC0,
+ 0xE7, 0xCC, 0xC1, 0x3E, 0x3A, 0x46, 0x38, 0xBF, 0xE5, 0x49, 0xF0, 0xBE,
+ 0xAB, 0x38, 0x91, 0xBD, 0x6D, 0x84, 0x82, 0x3D, 0x56, 0x6D, 0xB3, 0x3E,
+ 0x85, 0x83, 0x10, 0xBE, 0x2F, 0xA6, 0x9A, 0xBC, 0x7E, 0xB1, 0x2D, 0xBE,
+ 0xD2, 0x51, 0x93, 0x3D, 0xE0, 0x57, 0x90, 0xBC, 0x04, 0x33, 0xAF, 0x3D,
+ 0x2C, 0xA9, 0xA3, 0xBC, 0xA8, 0x31, 0x2E, 0x3F, 0x9A, 0x3C, 0x0D, 0xBF,
+ 0x94, 0xFD, 0x83, 0xBE, 0x4F, 0x8B, 0x58, 0xBE, 0xFC, 0xE2, 0x87, 0xBE,
+ 0xEC, 0xCF, 0x70, 0xBD, 0x92, 0x0E, 0x27, 0xBE, 0x49, 0x4D, 0xDE, 0x3E,
+ 0x1D, 0x88, 0xC6, 0x3E, 0xEE, 0x29, 0x44, 0x3E, 0x20, 0xE4, 0x08, 0xBD,
+ 0xD0, 0x68, 0x43, 0x3D, 0x9A, 0xA5, 0xB6, 0xBD, 0x25, 0x1B, 0x66, 0xBE,
+ 0xC9, 0x8F, 0x83, 0xBD, 0xAF, 0xF2, 0x95, 0xBD, 0xF3, 0x7C, 0xBB, 0x3C,
+ 0x46, 0xD9, 0x37, 0xBD, 0x9E, 0x62, 0x89, 0xBE, 0x5E, 0x3F, 0xC2, 0xBE,
+ 0x31, 0x65, 0x2B, 0xBE, 0x5C, 0x12, 0xCC, 0xBA, 0x59, 0x7C, 0x90, 0xBD,
+ 0x2E, 0xFD, 0x57, 0x3E, 0x25, 0xBD, 0x26, 0x3E, 0x77, 0x6A, 0x72, 0x3D,
+ 0x4C, 0x8A, 0xC6, 0x3B, 0xFB, 0x5C, 0x8D, 0x3E, 0xEC, 0xAA, 0x31, 0xBE,
+ 0x39, 0xC7, 0x12, 0x3E, 0xF4, 0xE5, 0x76, 0xBE, 0x46, 0x6E, 0x06, 0x3E,
+ 0x18, 0xE0, 0xB7, 0x3D, 0x09, 0xB8, 0xC0, 0x3D, 0xC2, 0xDC, 0x0E, 0xBF,
+ 0xA8, 0xBF, 0x3B, 0xBE, 0xC6, 0x2B, 0x2F, 0xBD, 0x78, 0x6A, 0x42, 0x35,
+ 0xC2, 0xCD, 0x56, 0xBD, 0x4A, 0x2B, 0x13, 0x3E, 0x77, 0x34, 0xA8, 0xBD,
+ 0x43, 0x33, 0x9D, 0xBB, 0x38, 0xC8, 0xF7, 0x3C, 0xCC, 0xBB, 0xB1, 0xBC,
+ 0x54, 0x8A, 0xBE, 0xBC, 0x67, 0x42, 0x3E, 0x3D, 0x0E, 0x57, 0xE6, 0xBA,
+ 0x25, 0xA5, 0x2F, 0xBD, 0x4A, 0xF3, 0xF5, 0x3B, 0x46, 0x2D, 0x17, 0xBD,
+ 0xB2, 0x65, 0xE9, 0x3C, 0xAA, 0x1B, 0x97, 0xBD, 0x66, 0xA3, 0xD5, 0x3B,
+ 0x9A, 0x1A, 0xE3, 0x3B, 0x63, 0xEC, 0x02, 0xBD, 0xE8, 0xC5, 0x0D, 0x3C,
+ 0xAB, 0x06, 0xF0, 0xBC, 0xEE, 0x33, 0xA3, 0xBC, 0xAF, 0xF3, 0x04, 0xBC,
+ 0xB4, 0xF9, 0x97, 0x3D, 0x6E, 0x4B, 0x80, 0x3B, 0xA8, 0xFC, 0x68, 0x3C,
+ 0xBC, 0x05, 0x42, 0x3B, 0x89, 0x44, 0xD0, 0xBC, 0x86, 0x3E, 0x60, 0xBD,
+ 0xF0, 0x1E, 0x12, 0xBD, 0xCC, 0x37, 0x93, 0xBE, 0x74, 0xDE, 0xF1, 0xBC,
+ 0x8F, 0xC4, 0x0A, 0xBC, 0x7C, 0x1D, 0x3C, 0xBF, 0xF5, 0x51, 0x58, 0xBE,
+ 0xAE, 0x12, 0xB2, 0xBE, 0x2C, 0x50, 0xD5, 0x3F, 0x33, 0x5E, 0xDC, 0xBE,
+ 0xD9, 0x68, 0x17, 0xBE, 0x2E, 0x5D, 0x85, 0xBE, 0x18, 0x68, 0x2C, 0x3D,
+ 0x21, 0xFB, 0x16, 0x3E, 0x19, 0xAD, 0xEC, 0x3D, 0x7F, 0x1D, 0x09, 0xBF,
+ 0xC6, 0xC7, 0x98, 0xBD, 0x5B, 0xCE, 0x1D, 0xBD, 0x11, 0xAD, 0xB8, 0xBE,
+ 0xE2, 0x3C, 0x65, 0x3E, 0x96, 0x24, 0xF7, 0xBD, 0xB2, 0xF1, 0x0A, 0x3E,
+ 0xCD, 0x61, 0x07, 0xBD, 0xFC, 0x54, 0x39, 0xBF, 0xE3, 0x05, 0x07, 0xBF,
+ 0x0C, 0x4D, 0x96, 0xBD, 0x02, 0x0A, 0x0B, 0xBE, 0x09, 0xFC, 0xDF, 0xBE,
+ 0xF4, 0x9D, 0x7A, 0xBE, 0x8B, 0xDA, 0xB1, 0x3D, 0xF3, 0x39, 0x21, 0x3D,
+ 0xCD, 0x60, 0xA6, 0xBD, 0x33, 0xB1, 0x85, 0x3F, 0xA1, 0x6C, 0x63, 0xBE,
+ 0x20, 0x24, 0xDD, 0xBD, 0x97, 0xFC, 0xC4, 0x3E, 0x10, 0xF8, 0xB7, 0x3D,
+ 0xEF, 0xA0, 0x0A, 0xBC, 0xBD, 0x04, 0x42, 0x3E, 0x38, 0x64, 0x7B, 0xBE,
+ 0xF2, 0xE4, 0x9F, 0xBE, 0x5F, 0x68, 0x74, 0x3D, 0xE1, 0x59, 0x34, 0x3E,
+ 0x6D, 0x09, 0xAC, 0x3E, 0x98, 0xEE, 0xB5, 0x3E, 0xE2, 0x85, 0x19, 0xBE,
+ 0x3D, 0xB6, 0xD8, 0x3E, 0x3F, 0xA5, 0xC8, 0x3E, 0xB0, 0x6B, 0x49, 0x3D,
+ 0xBB, 0x97, 0x12, 0x3E, 0xA2, 0x4B, 0x2E, 0xBF, 0x59, 0x5F, 0xAD, 0xBE,
+ 0x12, 0x5E, 0xAD, 0x3D, 0xEA, 0x08, 0x22, 0x3F, 0x23, 0xEE, 0xF9, 0xBB,
+ 0x4E, 0x34, 0x05, 0xBF, 0x8A, 0x05, 0x2F, 0x3E, 0x95, 0xF9, 0x05, 0xBD,
+ 0xE9, 0x00, 0x9C, 0x3D, 0x44, 0x5F, 0x5F, 0xBF, 0x33, 0xD8, 0x25, 0x3F,
+ 0x04, 0x5D, 0x74, 0x3F, 0x90, 0x5F, 0x2B, 0xBE, 0xE4, 0x03, 0x10, 0xBD,
+ 0x13, 0xD9, 0x1D, 0x3F, 0x61, 0xE9, 0x68, 0x3E, 0x79, 0xDC, 0x1D, 0xBF,
+ 0x0B, 0x99, 0xEE, 0xBE, 0xBF, 0x51, 0x99, 0x3E, 0x98, 0x15, 0xA2, 0x3E,
+ 0x71, 0x6B, 0x09, 0xBD, 0xC5, 0xCA, 0x65, 0xBF, 0x77, 0x75, 0x89, 0x3E,
+ 0x48, 0x18, 0x91, 0xB9, 0x53, 0xC9, 0x4B, 0xBE, 0x1E, 0x19, 0x56, 0x3F,
+ 0xB4, 0x16, 0x05, 0x3F, 0xE4, 0x4F, 0xB0, 0xBE, 0xC0, 0xA8, 0x81, 0xBF,
+ 0x1C, 0x08, 0x8D, 0x3F, 0xE0, 0xA5, 0x10, 0x3D, 0xB0, 0x30, 0xA9, 0xBD,
+ 0x3E, 0xCC, 0x9C, 0xBF, 0xAA, 0x45, 0xA3, 0x3F, 0x65, 0x8D, 0x3C, 0xBF,
+ 0x17, 0xC2, 0xF3, 0x3E, 0x49, 0x76, 0x94, 0x3D, 0x27, 0xC3, 0x16, 0xBF,
+ 0x8E, 0x24, 0xA2, 0x3F, 0x33, 0xA0, 0x6D, 0xBE, 0xBC, 0x60, 0xED, 0x3E,
+ 0x40, 0x2C, 0xE9, 0x3D, 0x0B, 0x5C, 0xC3, 0xBF, 0xB1, 0xBE, 0xD4, 0xBE,
+ 0x5C, 0x82, 0xC1, 0x3D, 0xC4, 0xF6, 0x33, 0xBE, 0x8E, 0x34, 0x07, 0xBF,
+ 0xE1, 0x60, 0xF5, 0x3D, 0x86, 0x3D, 0x89, 0xBE, 0x86, 0xE5, 0xDB, 0xBE,
+ 0x19, 0x29, 0x2E, 0xBE, 0x40, 0xC3, 0x82, 0x3E, 0xD3, 0xF1, 0x38, 0xBF,
+ 0xF0, 0xD7, 0xC6, 0x3E, 0x90, 0xC1, 0x62, 0xBF, 0xBC, 0x92, 0xD5, 0xBE,
+ 0x1A, 0x1F, 0xE5, 0xBD, 0x6E, 0x96, 0x15, 0xBF, 0x07, 0x91, 0xE6, 0x3E,
+ 0xFC, 0x5F, 0xC3, 0xBD, 0xB8, 0x90, 0xA7, 0x3E, 0x63, 0xC7, 0x78, 0x3F,
+ 0xFF, 0xF1, 0x76, 0xBE, 0x93, 0x7F, 0xC3, 0xBE, 0xC0, 0x6A, 0x88, 0xBE,
+ 0xA6, 0x26, 0x55, 0xBD, 0xAB, 0x96, 0x51, 0xBF, 0xC0, 0x3C, 0x82, 0xBF,
+ 0x83, 0xDB, 0x02, 0xBE, 0xE7, 0x5E, 0x4C, 0xBF, 0xF4, 0x66, 0xAD, 0x3D,
+ 0x45, 0x7E, 0x3A, 0xBE, 0x75, 0xF4, 0x07, 0xBF, 0xFF, 0xFD, 0x3D, 0xBF,
+ 0xBA, 0x1E, 0x04, 0xBE, 0x5F, 0xDE, 0x51, 0x3E, 0xE7, 0x90, 0x22, 0x3F,
+ 0x08, 0xA7, 0xD7, 0xBE, 0x8C, 0x1B, 0x16, 0xBF, 0xC2, 0x4E, 0xEF, 0x3B,
+ 0x66, 0x4B, 0xF1, 0xBE, 0xCB, 0x75, 0x96, 0xBE, 0x65, 0x02, 0x76, 0xBD,
+ 0x6E, 0xE5, 0x4D, 0x3D, 0x0E, 0x23, 0x2D, 0xBE, 0x89, 0x45, 0xDB, 0xBD,
+ 0xD8, 0xA2, 0x3E, 0x3E, 0xFD, 0xFF, 0x9B, 0x3D, 0x9F, 0xB4, 0xD3, 0x3B,
+ 0xBB, 0x14, 0xEA, 0x3D, 0x07, 0x8C, 0xA1, 0x3D, 0x62, 0x5A, 0x01, 0x3E,
+ 0x4F, 0x81, 0x28, 0x3E, 0x64, 0xBF, 0x50, 0xBD, 0x99, 0x22, 0x0F, 0x3E,
+ 0xA0, 0x04, 0x50, 0xBD, 0x11, 0x4A, 0xBA, 0xBA, 0x37, 0xB5, 0x3F, 0x3B,
+ 0x3B, 0xEE, 0x41, 0xBD, 0xC9, 0x60, 0xAE, 0x3D, 0x03, 0x19, 0x20, 0x3D,
+ 0x0C, 0x0D, 0x87, 0xBD, 0x21, 0x9C, 0x20, 0x3B, 0xFF, 0x61, 0x17, 0xBD,
+ 0x37, 0x35, 0x8A, 0x3E, 0x36, 0x73, 0x20, 0x3D, 0xA8, 0x22, 0xF2, 0x3C,
+ 0x9C, 0x8E, 0x5D, 0x3D, 0x75, 0x71, 0x91, 0xBE, 0xE7, 0x67, 0x75, 0x3C,
+ 0xBA, 0x6D, 0x2D, 0xBE, 0xBC, 0x47, 0xC5, 0x3D, 0x60, 0x94, 0x4A, 0xBF,
+ 0x40, 0x78, 0x20, 0xBD, 0x16, 0xBC, 0x91, 0xBC, 0xD9, 0x77, 0x6A, 0x3E,
+ 0xFC, 0x4C, 0xCA, 0x3D, 0xE8, 0xD5, 0x45, 0xBE, 0x01, 0x85, 0xB6, 0x3E,
+ 0x99, 0x30, 0x8C, 0x3E, 0xDE, 0x09, 0x33, 0x3D, 0xD1, 0x3E, 0x50, 0x3E,
+ 0xC2, 0x51, 0xD2, 0xBD, 0x89, 0x2B, 0x28, 0xBE, 0x43, 0x1B, 0x9C, 0xBC,
+ 0xF3, 0x18, 0xEE, 0x3D, 0xE9, 0x74, 0x1D, 0x3C, 0x68, 0xFB, 0x05, 0xBD,
+ 0x01, 0x53, 0xFA, 0xBE, 0xF7, 0xBA, 0xA9, 0xBE, 0x2E, 0xDB, 0x8C, 0xBE,
+ 0xEF, 0x55, 0x5F, 0xBD, 0xDF, 0x8F, 0x37, 0x3D, 0xFF, 0x30, 0xE8, 0x3E,
+ 0xC5, 0x59, 0x51, 0x3E, 0x6E, 0xBD, 0x5E, 0xBD, 0x08, 0xFD, 0x2C, 0x3E,
+ 0x7B, 0xDB, 0x7B, 0xBE, 0x8C, 0xC5, 0x02, 0x3E, 0xE4, 0xFE, 0xEC, 0x3D,
+ 0x7A, 0x42, 0x8E, 0xBE, 0xF8, 0x88, 0x31, 0x3E, 0x13, 0xED, 0x24, 0xBE,
+ 0xCC, 0xA4, 0xFC, 0x3C, 0xE1, 0xF9, 0xC0, 0xBE, 0xB2, 0xE7, 0x1B, 0xBE,
+ 0x87, 0x83, 0xE8, 0x3A, 0x07, 0x9B, 0xF9, 0xBD, 0x80, 0x13, 0x9E, 0xBC,
+ 0x86, 0x81, 0xF1, 0xBD, 0xDD, 0x07, 0x16, 0xBE, 0x2E, 0x5F, 0xC1, 0xBD,
+ 0x51, 0x89, 0x90, 0xBC, 0xA9, 0x88, 0xE4, 0xBC, 0xC0, 0x69, 0x9F, 0x3C,
+ 0xE6, 0x4E, 0x44, 0x3D, 0x60, 0xC2, 0xFD, 0x3D, 0x2B, 0x57, 0xA2, 0xBE,
+ 0x4E, 0x34, 0x8B, 0xBD, 0xBA, 0x89, 0xA1, 0x3D, 0x01, 0xB8, 0x09, 0xBE,
+ 0xE9, 0x47, 0x82, 0x3E, 0x08, 0x66, 0x64, 0x3B, 0xE3, 0x7D, 0x80, 0xBC,
+ 0x6C, 0xC0, 0x7C, 0xBD, 0xA5, 0x0D, 0x25, 0xBE, 0x56, 0xCD, 0x67, 0xBC,
+ 0x5F, 0xD3, 0x41, 0xBC, 0x9B, 0xE8, 0xB9, 0x3D, 0x9A, 0xF4, 0x83, 0x3E,
+ 0x88, 0x27, 0xC8, 0xBD, 0x67, 0xB3, 0x81, 0x3D, 0x81, 0x38, 0x96, 0xBD,
+ 0x3F, 0x4A, 0xAB, 0xBC, 0xEF, 0x16, 0x93, 0x3D, 0x2E, 0x99, 0x87, 0xBE,
+ 0x90, 0x8E, 0xCA, 0xBE, 0x55, 0xBC, 0x6E, 0x3D, 0x7A, 0x55, 0xC8, 0xBC,
+ 0x84, 0x08, 0x2F, 0x3D, 0xFD, 0xB5, 0x29, 0x3E, 0x3C, 0x8E, 0x6A, 0x3B,
+ 0xAC, 0x4B, 0x43, 0xBC, 0xFB, 0x5A, 0x83, 0xBB, 0xB6, 0x49, 0xA8, 0x3D,
+ 0x78, 0xCA, 0x31, 0xBD, 0x14, 0xC7, 0xAE, 0x3D, 0xDD, 0xD3, 0x85, 0x3D,
+ 0x4A, 0xB1, 0x2E, 0x3D, 0x7A, 0x3D, 0xD7, 0x3D, 0x6F, 0x4F, 0x7D, 0x3B,
+ 0x26, 0xDF, 0x03, 0xBD, 0xD0, 0x76, 0x38, 0xBD, 0x3D, 0xC3, 0xCF, 0x3D,
+ 0x7D, 0x2D, 0x9C, 0xBC, 0xA6, 0x0B, 0xD1, 0xBC, 0x03, 0x41, 0x76, 0xBC,
+ 0x70, 0x97, 0x07, 0x3D, 0xBC, 0x0F, 0x08, 0x3D, 0xE3, 0x91, 0xC6, 0xBC,
+ 0x06, 0x10, 0xB9, 0xBD, 0x20, 0xD3, 0x7A, 0xBE, 0x62, 0x47, 0x16, 0x3E,
+ 0x04, 0x3B, 0x8F, 0xBD, 0x53, 0x84, 0xA8, 0x3C, 0xFF, 0xB8, 0x68, 0x3B,
+ 0x9E, 0xBD, 0x2E, 0x3D, 0x47, 0x3B, 0xFA, 0xBC, 0x5E, 0x87, 0xB9, 0x3E,
+ 0x2C, 0x82, 0x6F, 0xBD, 0x24, 0xF7, 0x6C, 0xBA, 0x4D, 0x25, 0xF1, 0xBD,
+ 0x41, 0x42, 0x4F, 0xBE, 0xE8, 0xED, 0xAA, 0x3E, 0x7C, 0xE4, 0x02, 0xBD,
+ 0x40, 0xE3, 0xEA, 0xBC, 0x6F, 0xF2, 0x30, 0xBC, 0xB5, 0xF2, 0x94, 0x3B,
+ 0x72, 0x9A, 0x7A, 0xBE, 0x66, 0x03, 0x0A, 0x3E, 0xAF, 0x3B, 0x82, 0x3C,
+ 0xC9, 0x67, 0xA1, 0xBD, 0xD5, 0xC0, 0xDC, 0xBD, 0x26, 0xD1, 0xA8, 0xBD,
+ 0xD9, 0xD3, 0x48, 0x3E, 0xC4, 0xAE, 0x9E, 0xBE, 0x3E, 0x13, 0xD7, 0x3D,
+ 0x35, 0xB1, 0xCB, 0xBD, 0xC7, 0x13, 0xC7, 0xBC, 0x3A, 0x20, 0x9A, 0x3E,
+ 0xF8, 0x4F, 0x00, 0xBD, 0xB1, 0xCA, 0xC1, 0x3C, 0xE0, 0x71, 0x35, 0xBD,
+ 0x70, 0xD4, 0x78, 0x3E, 0x2C, 0x7E, 0x04, 0xBE, 0xF1, 0x54, 0xC7, 0xBD,
+ 0xDA, 0xB2, 0x0B, 0xBD, 0x36, 0x2C, 0xEA, 0xBC, 0x66, 0x1F, 0xBA, 0x3D,
+ 0x9B, 0x98, 0xB6, 0xBE, 0x15, 0x16, 0xCC, 0xBE, 0x9E, 0x22, 0x9E, 0xBD,
+ 0x18, 0x4E, 0x12, 0x3E, 0x37, 0xD3, 0xA0, 0xBE, 0x27, 0x0C, 0x2E, 0xBD,
+ 0x77, 0x61, 0xB2, 0x3F, 0xAA, 0xFA, 0xEB, 0x3D, 0x65, 0x60, 0x77, 0x3E,
+ 0xEF, 0x43, 0x56, 0x3E, 0x51, 0xE6, 0x06, 0xBE, 0x78, 0xE7, 0x04, 0x3E,
+ 0x88, 0x1B, 0xB0, 0xBD, 0x9E, 0xE1, 0x68, 0xBC, 0xA2, 0xC3, 0xC5, 0xBB,
+ 0x2F, 0x06, 0xD8, 0xBD, 0xB4, 0x51, 0xD9, 0xBE, 0x34, 0x61, 0x6F, 0xBE,
+ 0x91, 0x5A, 0x1A, 0xBF, 0x3A, 0xFD, 0x29, 0xBE, 0x75, 0x39, 0x50, 0x3C,
+ 0xEB, 0xD9, 0xA0, 0xBD, 0xEF, 0x60, 0xBE, 0xBE, 0xB0, 0xB3, 0xC5, 0xBE,
+ 0xB4, 0x9E, 0x3F, 0x3E, 0x42, 0x5F, 0x8F, 0x3D, 0xF7, 0x06, 0xBA, 0xBE,
+ 0x8D, 0xB6, 0x89, 0xBC, 0xAE, 0x1D, 0x1A, 0xBF, 0xC2, 0x12, 0x00, 0x3E,
+ 0x57, 0x2A, 0x9F, 0xBB, 0x9E, 0x72, 0x1B, 0xBF, 0x02, 0x52, 0x9F, 0x3D,
+ 0xAA, 0x10, 0x93, 0x3B, 0xCB, 0x5E, 0x49, 0x3F, 0x52, 0xBE, 0x2B, 0x3E,
+ 0xD9, 0x09, 0x73, 0xBE, 0x14, 0xF8, 0x2A, 0xBE, 0xB9, 0x35, 0x9D, 0x3E,
+ 0x42, 0x1A, 0x52, 0xBD, 0xF5, 0x43, 0xBF, 0xBD, 0x89, 0xCB, 0x90, 0xBD,
+ 0x69, 0xD2, 0xAD, 0x3C, 0xB5, 0x07, 0xC4, 0xBD, 0xE8, 0x68, 0x0B, 0xBE,
+ 0xC0, 0xB4, 0x31, 0x3D, 0x60, 0x59, 0x4B, 0xBE, 0x20, 0x28, 0x85, 0x3C,
+ 0x4B, 0xEB, 0xC2, 0xBC, 0x40, 0x4A, 0x17, 0x3E, 0x98, 0x64, 0x34, 0xBD,
+ 0x23, 0x41, 0x2E, 0x3E, 0xA3, 0x8E, 0x6C, 0xBC, 0xE1, 0x31, 0xE3, 0x3B,
+ 0xF3, 0x2B, 0x9F, 0xBD, 0xD5, 0xF4, 0xFF, 0xBD, 0x5B, 0x8F, 0xB1, 0x3D,
+ 0xC3, 0x2F, 0x50, 0x3D, 0x2F, 0x1D, 0x99, 0x3E, 0x62, 0x92, 0x11, 0xBE,
+ 0x6E, 0x27, 0x37, 0xBD, 0x09, 0xF7, 0x1E, 0x3D, 0x1E, 0xDE, 0x23, 0xBD,
+ 0x3A, 0xCE, 0x0B, 0x3C, 0x16, 0x71, 0x28, 0xBE, 0x98, 0x52, 0xA5, 0xBE,
+ 0x0D, 0x75, 0xCD, 0x3A, 0x5E, 0x4C, 0x1B, 0x3D, 0x5A, 0x0D, 0xBE, 0x3C,
+ 0x7C, 0x15, 0xBF, 0x3D, 0x79, 0x17, 0x2B, 0xBE, 0xF5, 0x5B, 0xA9, 0x3D,
+ 0x78, 0x72, 0x46, 0x3C, 0x3B, 0xB2, 0x44, 0xBC, 0xDE, 0xD2, 0x1E, 0x3D,
+ 0x2A, 0xA1, 0xE1, 0x3D, 0x07, 0x4B, 0x0E, 0xBE, 0x53, 0x3B, 0xD0, 0x3C,
+ 0xEF, 0x59, 0x27, 0x3D, 0x18, 0x8C, 0x25, 0x3D, 0x2A, 0x58, 0x9A, 0xBB,
+ 0xAC, 0x0D, 0xC3, 0x3C, 0x69, 0x39, 0x25, 0x3E, 0x5B, 0x9D, 0x38, 0xBC,
+ 0xDA, 0xFF, 0x73, 0x3C, 0x89, 0xBD, 0xED, 0x3C, 0x6A, 0xC0, 0x91, 0xBD,
+ 0xDD, 0x2B, 0xF1, 0x3C, 0x9C, 0xE1, 0xB6, 0xBA, 0xF4, 0x83, 0x0D, 0x3D,
+ 0x42, 0x48, 0x3A, 0xBE, 0x1E, 0x2F, 0x84, 0x3D, 0x18, 0x25, 0x1A, 0x3D,
+ 0x47, 0xAD, 0x1F, 0xBC, 0x6E, 0x9A, 0xAB, 0x3C, 0x51, 0x26, 0xB4, 0xBD,
+ 0xF3, 0x84, 0xDC, 0x3D, 0x03, 0xA8, 0xA8, 0x3A, 0x8B, 0x4F, 0xC4, 0x3C,
+ 0xE6, 0xE6, 0x8F, 0xBD, 0x38, 0x3C, 0x38, 0xBF, 0x3C, 0xCF, 0xA6, 0xBD,
+ 0x2C, 0x26, 0x54, 0xBE, 0x9B, 0x6F, 0x83, 0x3E, 0x51, 0xEF, 0x5B, 0x3E,
+ 0x30, 0xF3, 0x6D, 0xBE, 0xED, 0x36, 0x35, 0xBF, 0x60, 0x86, 0x45, 0xBD,
+ 0x20, 0xC5, 0xC2, 0xBE, 0xE7, 0x2A, 0x2D, 0x3F, 0xBF, 0xCE, 0x24, 0x3E,
+ 0x42, 0xE3, 0x49, 0x3E, 0x61, 0x8D, 0x98, 0x3D, 0xA1, 0x9D, 0xBD, 0x3F,
+ 0xDB, 0x23, 0xEC, 0x3D, 0x8A, 0xD5, 0x09, 0x3E, 0x70, 0x25, 0x1D, 0x3F,
+ 0x72, 0x9B, 0x4E, 0x3E, 0x9C, 0x08, 0xBB, 0xBE, 0x4E, 0x20, 0xAA, 0x3E,
+ 0x57, 0x07, 0x3F, 0x3D, 0xF2, 0x92, 0xE0, 0x3D, 0x71, 0xD2, 0xBD, 0x3E,
+ 0x96, 0xDC, 0x0A, 0xBF, 0xB2, 0xBC, 0xC1, 0xBD, 0x3D, 0xE2, 0x4B, 0xBD,
+ 0xF8, 0x4F, 0x56, 0xBF, 0x17, 0x80, 0x78, 0x3E, 0x1E, 0x3A, 0xCB, 0x3E,
+ 0x61, 0x89, 0xB5, 0x3E, 0x57, 0x36, 0xA4, 0xBE, 0xC2, 0x02, 0xCF, 0xBD,
+ 0x75, 0x1F, 0xC8, 0x3E, 0xF1, 0x9F, 0x2D, 0xBE, 0xF3, 0x5F, 0x8F, 0xBF,
+ 0x05, 0x7E, 0x8E, 0xBD, 0x70, 0x12, 0xA5, 0x3C, 0x7A, 0x98, 0x23, 0xBD,
+ 0x93, 0xAC, 0xE0, 0x3D, 0xC2, 0xE8, 0x71, 0x3E, 0xE2, 0xCC, 0x45, 0xBE,
+ 0xDF, 0x5A, 0x6B, 0x3E, 0x59, 0x11, 0xA4, 0xBE, 0x15, 0xF8, 0x3F, 0x3C,
+ 0xBA, 0xA4, 0x46, 0xBE, 0x2F, 0x0C, 0xAA, 0xBD, 0xF8, 0xD9, 0x0A, 0x3F,
+ 0x55, 0x01, 0xB6, 0x3C, 0x9A, 0xAE, 0x78, 0x3E, 0x7D, 0x38, 0x79, 0xBC,
+ 0xBE, 0x71, 0x87, 0x3E, 0x5E, 0xAC, 0xD5, 0x3E, 0x3B, 0x9A, 0x18, 0xBC,
+ 0x9D, 0xB7, 0xD8, 0xBD, 0x10, 0x04, 0x11, 0x3D, 0x3C, 0xC2, 0x27, 0x3E,
+ 0x01, 0x67, 0x6A, 0x3E, 0xB5, 0xA6, 0x54, 0x3E, 0xC5, 0x36, 0x3C, 0x3E,
+ 0x16, 0xF5, 0xC2, 0x3E, 0xCE, 0x33, 0xB6, 0xBC, 0x70, 0x3F, 0xE8, 0xBE,
+ 0x2A, 0x15, 0xB6, 0x3E, 0x22, 0x76, 0xB5, 0xBE, 0x06, 0x91, 0x87, 0xBE,
+ 0x6F, 0xFB, 0xF6, 0xBD, 0x8F, 0xB1, 0x45, 0x3F, 0xD8, 0x36, 0x82, 0x3D,
+ 0x7A, 0x11, 0x88, 0x3D, 0xEE, 0xD1, 0x31, 0x3E, 0x68, 0xFD, 0xCA, 0xBE,
+ 0xB5, 0x18, 0xBF, 0xBE, 0x65, 0x6B, 0x23, 0xBD, 0x2E, 0x45, 0x35, 0xBE,
+ 0x78, 0xB3, 0x02, 0xBE, 0x0C, 0xBD, 0x4D, 0xBE, 0xC0, 0xEA, 0x7A, 0x3E,
+ 0xC2, 0x1F, 0x23, 0xBF, 0x3A, 0x26, 0x0D, 0xBE, 0x8C, 0x35, 0xD4, 0xBC,
+ 0x2C, 0x49, 0xA6, 0x3E, 0xC2, 0xB3, 0x14, 0xBE, 0xCA, 0x99, 0x68, 0x3D,
+ 0x3C, 0xB4, 0x76, 0x3E, 0xF4, 0x10, 0x53, 0x3D, 0x28, 0x1C, 0x00, 0xBE,
+ 0x7F, 0x6D, 0x79, 0x3E, 0x2F, 0x6B, 0xA2, 0xBD, 0xB2, 0xF7, 0x38, 0x3E,
+ 0x83, 0xD8, 0x8B, 0x3D, 0x80, 0x79, 0x01, 0x3E, 0x71, 0xF0, 0x83, 0x3E,
+ 0xEA, 0x13, 0xCF, 0xBE, 0x10, 0xA3, 0x9D, 0xBD, 0x9F, 0xC8, 0x59, 0xBE,
+ 0x96, 0x3F, 0xD4, 0xBE, 0xC1, 0xD9, 0x88, 0xBE, 0xE6, 0xA6, 0xA5, 0xBE,
+ 0xE6, 0x69, 0xAB, 0xBD, 0x29, 0xCD, 0x3F, 0x3F, 0xB8, 0xD9, 0x92, 0x3D,
+ 0xFB, 0x55, 0xAE, 0xBD, 0xBD, 0x7A, 0x2B, 0xBF, 0x80, 0x14, 0xA3, 0xBE,
+ 0xA7, 0x70, 0x87, 0xBE, 0xF4, 0xE3, 0x37, 0xBD, 0xF4, 0x7A, 0xA2, 0x3E,
+ 0x23, 0x8E, 0x03, 0xBE, 0x68, 0x6D, 0x28, 0xBE, 0x70, 0x78, 0xD0, 0x3C,
+ 0x80, 0x0B, 0xE6, 0x3D, 0xBD, 0x24, 0x5A, 0x3E, 0xEB, 0xC0, 0x86, 0x3E,
+ 0xB0, 0xF2, 0x69, 0xBD, 0x66, 0xA4, 0xD9, 0xBC, 0xD0, 0x4A, 0x36, 0x3F,
+ 0x96, 0xD9, 0x92, 0x3A, 0x9B, 0x29, 0xB9, 0x3E, 0xEC, 0x5B, 0x8B, 0x3E,
+ 0x04, 0xA1, 0x87, 0xBF, 0xFC, 0x12, 0xD8, 0x3E, 0x44, 0x98, 0x02, 0xBD,
+ 0x1A, 0xC5, 0xF2, 0xBE, 0x83, 0xDF, 0x1C, 0xBF, 0xEA, 0x82, 0xE2, 0xBC,
+ 0x28, 0x0F, 0x9E, 0x3F, 0xD5, 0xFA, 0x0C, 0xBE, 0x3C, 0xB6, 0xA3, 0xBD,
+ 0xAB, 0x85, 0x67, 0x3E, 0x3C, 0x70, 0x18, 0xBE, 0xE9, 0x32, 0x77, 0x3E,
+ 0x8D, 0x22, 0xBB, 0x3E, 0xFF, 0x6B, 0xC6, 0xBE, 0x0E, 0xAB, 0x2F, 0xBE,
+ 0x52, 0x0E, 0x3F, 0xBF, 0x95, 0x90, 0x89, 0x3E, 0x37, 0x44, 0x96, 0x3E,
+ 0x18, 0xA7, 0xEA, 0xBE, 0xA0, 0x8B, 0x7A, 0x3F, 0x72, 0x50, 0x88, 0xBD,
+ 0x86, 0xEB, 0xA2, 0xBD, 0x1B, 0x3F, 0x50, 0xBF, 0xBB, 0x38, 0x77, 0x3E,
+ 0xD6, 0x31, 0xBE, 0x3D, 0xEA, 0xAA, 0x3C, 0xBD, 0x46, 0x3F, 0xB4, 0x3C,
+ 0x30, 0x5C, 0xFB, 0xBD, 0x45, 0xDF, 0x09, 0x3D, 0x44, 0x36, 0x68, 0x3D,
+ 0x6C, 0xC1, 0x46, 0xBE, 0x22, 0xFA, 0x21, 0xBF, 0xF1, 0xF0, 0x1D, 0xBF,
+ 0x17, 0x63, 0x42, 0xBF, 0x1A, 0x5B, 0xC3, 0x3C, 0x63, 0xFB, 0xE5, 0xBD,
+ 0x24, 0x27, 0xCC, 0x3E, 0x2B, 0x49, 0x99, 0xBD, 0xC3, 0x45, 0x7A, 0x3E,
+ 0xD3, 0xBB, 0xA5, 0x3C, 0xC4, 0x1D, 0x39, 0xBE, 0x82, 0x31, 0x16, 0x3E,
+ 0x40, 0x2A, 0xCD, 0x3D, 0x13, 0xB5, 0x4E, 0xBF, 0x5E, 0x8F, 0xB8, 0x3E,
+ 0x97, 0x38, 0xA9, 0xBE, 0x18, 0x82, 0x8B, 0xBC, 0xA7, 0xD9, 0xBA, 0xBC,
+ 0x8D, 0xF2, 0x54, 0xBE, 0x86, 0x00, 0x0B, 0x3E, 0x27, 0x6C, 0x61, 0xBF,
+ 0xC3, 0xFE, 0x96, 0x3E, 0xC6, 0x82, 0x82, 0xBD, 0x88, 0x08, 0x65, 0xBE,
+ 0x3A, 0x6A, 0x2A, 0xBF, 0x32, 0x48, 0xFE, 0xBD, 0x9C, 0x01, 0x19, 0x3F,
+ 0xCB, 0x0D, 0x15, 0x3F, 0xE6, 0x2F, 0xA6, 0xBD, 0xA4, 0x53, 0x98, 0xBD,
+ 0xCD, 0x5D, 0x51, 0x3F, 0x64, 0x19, 0x05, 0x3C, 0x22, 0x1C, 0x9A, 0xBD,
+ 0x57, 0xEE, 0x14, 0xBF, 0x94, 0xB2, 0x33, 0xBF, 0x37, 0x08, 0x16, 0x3F,
+ 0x95, 0x8E, 0x8A, 0x3E, 0x6B, 0xD6, 0x47, 0x3D, 0xE2, 0x4D, 0x17, 0xBE,
+ 0xFA, 0xC1, 0x01, 0xBE, 0xDB, 0xE0, 0x99, 0xBF, 0x89, 0x15, 0x2B, 0x3E,
+ 0x29, 0x88, 0x9F, 0xBE, 0x6F, 0x7B, 0x1A, 0xBE, 0x23, 0xBE, 0x8C, 0xBD,
+ 0x42, 0x76, 0x57, 0x3E, 0xE0, 0xD7, 0x4A, 0x3E, 0x94, 0x8C, 0x27, 0xBC,
+ 0x2D, 0x00, 0x90, 0xBD, 0x2C, 0x19, 0xBE, 0x3D, 0xAE, 0xE3, 0x8B, 0x3D,
+ 0x76, 0x48, 0x55, 0x3D, 0xF7, 0x1C, 0x00, 0x3E, 0x44, 0x6B, 0x5B, 0xBD,
+ 0xD7, 0x07, 0x7C, 0x3D, 0x1E, 0xC6, 0xDB, 0xBC, 0xD0, 0x19, 0x8A, 0x3D,
+ 0x29, 0xCF, 0x30, 0x3E, 0x32, 0x58, 0x31, 0x3D, 0xF8, 0x80, 0xA7, 0xBC,
+ 0x3D, 0x28, 0xEA, 0x3C, 0x4D, 0xD2, 0x61, 0xBE, 0x2B, 0x91, 0x98, 0x3D,
+ 0x8B, 0x2D, 0xAE, 0x3C, 0x63, 0x72, 0x89, 0x3D, 0xF7, 0x1F, 0x10, 0xBE,
+ 0xD5, 0x5D, 0xD2, 0xBB, 0x76, 0x11, 0x14, 0xBE, 0x11, 0x9A, 0xF3, 0xBD,
+ 0x60, 0x3F, 0x65, 0x3D, 0x52, 0x62, 0xD6, 0xBC, 0xC8, 0x56, 0x78, 0xBD,
+ 0xC1, 0x72, 0xF0, 0xBD, 0xAF, 0x1D, 0x2B, 0xBD, 0x76, 0x7D, 0xF3, 0x3D,
+ 0xE6, 0xD5, 0x21, 0xBE, 0x4E, 0xC4, 0x8C, 0xBD, 0x4C, 0x6F, 0x90, 0x3D,
+ 0x60, 0xED, 0xF2, 0x3D, 0xBA, 0xCC, 0x90, 0x3B, 0xEA, 0xAA, 0xFE, 0xBB,
+ 0x83, 0xFE, 0x08, 0x3D, 0x3D, 0x70, 0xC0, 0x3C, 0xE1, 0xFC, 0x0B, 0xBE,
+ 0x2F, 0x59, 0x80, 0x3C, 0xA3, 0x2B, 0xF1, 0xBC, 0xF9, 0xB1, 0xEA, 0x3B,
+ 0xB9, 0x21, 0x25, 0x3D, 0x38, 0x09, 0x4A, 0xBE, 0x78, 0xE5, 0xC8, 0x3D,
+ 0x40, 0xF8, 0x20, 0x3D, 0xBB, 0xC9, 0x28, 0x3D, 0xF7, 0x84, 0x10, 0x3D,
+ 0x89, 0x7B, 0x01, 0xBE, 0x5A, 0x72, 0x3F, 0x3D, 0x82, 0x6C, 0x4E, 0x3D,
+ 0xA1, 0x39, 0x91, 0x3D, 0xC6, 0xB7, 0x8F, 0xBB, 0x6D, 0xC8, 0x07, 0xBD,
+ 0x83, 0xE9, 0x44, 0xBD, 0xE6, 0x7A, 0xDF, 0xBC, 0x7A, 0x9B, 0x20, 0xBB,
+ 0x25, 0x32, 0x10, 0x3D, 0xAE, 0xBC, 0x04, 0x3D, 0x3F, 0x74, 0x0F, 0xBF,
+ 0x8F, 0x5A, 0x01, 0xBD, 0xAB, 0x88, 0xD0, 0x3D, 0xEC, 0xC3, 0x00, 0x3C,
+ 0x5B, 0xC4, 0x80, 0x3D, 0x4A, 0x59, 0xCB, 0xBD, 0x56, 0x1B, 0xF1, 0xBD,
+ 0x19, 0x89, 0x2D, 0x3D, 0x8F, 0x66, 0x82, 0x3D, 0x82, 0xE8, 0xB0, 0xBD,
+ 0x43, 0xC8, 0xBB, 0x3B, 0xA8, 0xF0, 0xBC, 0x3D, 0x71, 0x5E, 0xB6, 0xBD,
+ 0xCB, 0x8E, 0x4F, 0x3D, 0xDE, 0xAE, 0x10, 0xBA, 0x28, 0x87, 0xDD, 0x3C,
+ 0xC5, 0xD6, 0x5C, 0xBE, 0x6D, 0xC4, 0xA4, 0x3D, 0xD3, 0xA5, 0xC7, 0xBD,
+ 0xDA, 0x28, 0xEE, 0x3C, 0xBD, 0xD7, 0xE8, 0xBC, 0x19, 0xC8, 0x1D, 0x3C,
+ 0x6A, 0x66, 0xB5, 0x3D, 0xA0, 0x27, 0x49, 0xBD, 0x77, 0x1D, 0x57, 0xBD,
+ 0xB3, 0x9D, 0x7D, 0xBD, 0x47, 0x44, 0xDD, 0x3C, 0xD5, 0xF5, 0x0F, 0x3E,
+ 0xAB, 0xA7, 0xFA, 0x3D, 0x05, 0x3E, 0xE3, 0x3C, 0x13, 0x19, 0x16, 0x3C,
+ 0x10, 0x7E, 0x58, 0xBD, 0x40, 0xAB, 0x08, 0x3F, 0xCA, 0x13, 0x4F, 0x3D,
+ 0x0C, 0x35, 0x99, 0xBD, 0xB8, 0xDA, 0x91, 0xBD, 0x05, 0x99, 0x1C, 0xBD,
+ 0x07, 0x91, 0xA8, 0xBD, 0xE4, 0x12, 0xC0, 0x3C, 0xB6, 0xAC, 0xD8, 0x3C,
+ 0x51, 0xBA, 0x45, 0x3D, 0xE4, 0x49, 0xCF, 0x3B, 0x18, 0xB4, 0xA8, 0x3C,
+ 0x40, 0x1A, 0x1F, 0x3C, 0xC0, 0x31, 0x14, 0xBD, 0x43, 0x58, 0x41, 0xBB,
+ 0x95, 0xE7, 0x23, 0xBC, 0x43, 0x66, 0x6C, 0x3D, 0x20, 0x0F, 0x2E, 0xBE,
+ 0x05, 0xF8, 0x1C, 0x3E, 0x02, 0x3A, 0x35, 0xBE, 0xAA, 0x7E, 0x19, 0x3C,
+ 0x27, 0xF8, 0xC1, 0x3C, 0x5B, 0xE6, 0x23, 0xBE, 0x8D, 0x28, 0x05, 0x3E,
+ 0x3A, 0xEB, 0x10, 0xBD, 0x91, 0xB7, 0xF7, 0x3C, 0xB4, 0xBF, 0xD9, 0xBD,
+ 0x9D, 0xE8, 0x1D, 0x3D, 0xC8, 0x2E, 0x26, 0x3E, 0x8E, 0xCE, 0xDE, 0xBC,
+ 0x65, 0xC2, 0xF3, 0x3C, 0x42, 0xA3, 0x60, 0x3D, 0x45, 0x43, 0xF8, 0x3C,
+ 0x16, 0x1E, 0xD2, 0xBE, 0x1F, 0x5A, 0x96, 0x3C, 0x57, 0x6C, 0x7A, 0xBD,
+ 0xD2, 0x46, 0x4F, 0xBE, 0x66, 0xF4, 0x06, 0xBE, 0x8D, 0x16, 0x51, 0xBE,
+ 0x48, 0x21, 0x43, 0x3E, 0x02, 0xE1, 0x52, 0x3D, 0x61, 0xFD, 0x61, 0x3D,
+ 0xA3, 0xA0, 0xC2, 0x3D, 0x22, 0x6F, 0x70, 0x3D, 0xC6, 0x73, 0x2A, 0xBE,
+ 0xB1, 0x11, 0x96, 0xBE, 0xF4, 0x3D, 0x90, 0xBF, 0x90, 0x3D, 0x50, 0x3C,
+ 0xED, 0x21, 0x85, 0x3D, 0x7F, 0x63, 0x58, 0x3E, 0x62, 0x0E, 0xD3, 0xBE,
+ 0x04, 0x59, 0x2E, 0x3F, 0x9E, 0x7D, 0xAA, 0xBF, 0x34, 0x3E, 0xF7, 0x3C,
+ 0x96, 0xA0, 0xCB, 0x3D, 0x58, 0x9E, 0x1E, 0xBF, 0xF9, 0xF6, 0xFF, 0xBD,
+ 0xBD, 0xD1, 0x45, 0xBE, 0xAA, 0x3F, 0x5C, 0x3F, 0x0F, 0x18, 0xE1, 0xBD,
+ 0x16, 0xF9, 0xAB, 0xBB, 0x98, 0x65, 0x8C, 0x3D, 0x54, 0xE5, 0x10, 0x3E,
+ 0x18, 0x1E, 0xE9, 0xBE, 0x63, 0x67, 0x6F, 0x3D, 0x69, 0x30, 0x71, 0xBE,
+ 0xB2, 0xA3, 0xD9, 0x3C, 0x20, 0x75, 0x9E, 0xBE, 0x95, 0xC1, 0x30, 0xBE,
+ 0x30, 0xF2, 0xF3, 0xBC, 0xB4, 0x63, 0x0F, 0xBE, 0xE6, 0x6C, 0xC4, 0x3D,
+ 0x65, 0xEB, 0xEC, 0x3D, 0x77, 0xBC, 0x80, 0xBC, 0x15, 0xB5, 0xFD, 0xBD,
+ 0x41, 0x97, 0x7C, 0x3E, 0xE9, 0x11, 0x50, 0xBE, 0x57, 0xBF, 0x68, 0x3E,
+ 0x79, 0xC1, 0x39, 0xBE, 0xB3, 0x45, 0x85, 0x3C, 0x67, 0x45, 0xA0, 0x3E,
+ 0x27, 0x26, 0xC5, 0xBE, 0x79, 0x12, 0xA6, 0x3E, 0x93, 0x2A, 0xC3, 0xBE,
+ 0xF2, 0x95, 0x53, 0x3F, 0xA2, 0xC3, 0x15, 0x3D, 0x9D, 0xC5, 0x92, 0x3E,
+ 0x80, 0x23, 0xCB, 0xBE, 0x9B, 0xAB, 0x88, 0x3D, 0x99, 0xF4, 0x51, 0xBE,
+ 0x54, 0x6B, 0x05, 0xBF, 0x06, 0x25, 0x85, 0xBE, 0x4C, 0x93, 0x33, 0xBE,
+ 0xEA, 0x07, 0xEC, 0xBD, 0x65, 0x80, 0x8B, 0x3C, 0xA1, 0x7C, 0xAC, 0xBF,
+ 0x3F, 0xCB, 0x06, 0xBD, 0xC0, 0x8D, 0xB1, 0x3E, 0xD6, 0xEC, 0xD8, 0x3D,
+ 0xCB, 0x07, 0x47, 0x3C, 0x72, 0x6B, 0x93, 0x3F, 0x5E, 0xAF, 0x38, 0xBF,
+ 0x13, 0x81, 0x03, 0x3F, 0x06, 0x9F, 0xCB, 0x3E, 0x7F, 0xCD, 0x19, 0xBF,
+ 0x63, 0x33, 0xD9, 0x3F, 0xE6, 0xE4, 0xA0, 0x3F, 0xEE, 0xED, 0x33, 0x3E,
+ 0xDF, 0xE9, 0x89, 0x3F, 0x9A, 0x1E, 0x1D, 0xBF, 0xB4, 0xF2, 0x8A, 0xBD,
+ 0x91, 0x4B, 0x6E, 0xBF, 0xFA, 0x42, 0x8C, 0xBD, 0x60, 0x57, 0x5C, 0xC0,
+ 0x84, 0x20, 0xE5, 0x3E, 0x74, 0x6D, 0x6E, 0x3F, 0x89, 0x27, 0x40, 0x3F,
+ 0x02, 0x42, 0x23, 0xBF, 0x7F, 0x11, 0x3C, 0x3F, 0xD3, 0x99, 0x66, 0xBE,
+ 0x4D, 0x1F, 0x82, 0x3E, 0x22, 0x53, 0xC0, 0x3C, 0x77, 0xDB, 0x85, 0xBE,
+ 0x1B, 0x20, 0x16, 0x3F, 0x90, 0x99, 0x20, 0xBD, 0xD0, 0x07, 0xDD, 0x3E,
+ 0xDD, 0x28, 0x6E, 0xBF, 0x4F, 0x09, 0xEE, 0x3D, 0xBE, 0xDF, 0x09, 0xC0,
+ 0xCC, 0x29, 0x40, 0x3F, 0xD2, 0x90, 0x94, 0x3E, 0x05, 0x67, 0x2C, 0x3F,
+ 0xA8, 0x1C, 0x2D, 0x3E, 0xB0, 0x24, 0x43, 0x3D, 0x8E, 0x4F, 0x81, 0xBD,
+ 0xCE, 0xC5, 0xD0, 0xBD, 0xDA, 0x63, 0xFE, 0x3B, 0x7E, 0xD2, 0xC2, 0x3B,
+ 0x88, 0xD8, 0x05, 0xBD, 0x19, 0xE6, 0x36, 0x3D, 0x38, 0x25, 0x6A, 0xBB,
+ 0xFA, 0xE6, 0x62, 0xBD, 0x7F, 0xF7, 0xA2, 0x3D, 0x8A, 0x5B, 0x0E, 0x3D,
+ 0x06, 0x6A, 0x88, 0x3B, 0x72, 0x31, 0x1E, 0xBE, 0x41, 0xCB, 0x9A, 0x3B,
+ 0x64, 0xB1, 0xBE, 0xBD, 0xC9, 0x10, 0x6C, 0x3D, 0xAA, 0x0C, 0xAE, 0xBC,
+ 0x6E, 0x14, 0x06, 0x3D, 0xF0, 0xCB, 0x0D, 0x3C, 0x90, 0x68, 0x8E, 0xBD,
+ 0x5E, 0xD1, 0x2A, 0x3C, 0x76, 0x6C, 0x09, 0xBE, 0x9D, 0x06, 0x93, 0x3D,
+ 0xD3, 0xA5, 0x27, 0x3D, 0x16, 0xCD, 0x23, 0x3D, 0xAD, 0xCA, 0x8A, 0x3C,
+ 0x69, 0x22, 0x1C, 0xBD, 0x3B, 0x8C, 0x3E, 0x3D, 0x96, 0x2C, 0x32, 0x3E,
+ 0xCD, 0x96, 0x94, 0xBC, 0xD2, 0x60, 0xB2, 0xBD, 0x0B, 0xEF, 0x06, 0x3F,
+ 0x4C, 0x19, 0x2D, 0xBE, 0x8C, 0x22, 0x2B, 0x3F, 0x09, 0xD1, 0x23, 0x3F,
+ 0xB8, 0xF7, 0x88, 0x3C, 0x4E, 0x55, 0x27, 0xBE, 0x40, 0x88, 0x20, 0x3D,
+ 0x9C, 0xBB, 0x19, 0xBE, 0x7D, 0x61, 0xE8, 0xBD, 0xC0, 0x84, 0x0E, 0xBE,
+ 0x19, 0xF9, 0xE1, 0xBD, 0x5A, 0x95, 0x50, 0x3D, 0x28, 0x8A, 0x71, 0x3E,
+ 0xEF, 0x4F, 0xB0, 0xBD, 0x64, 0x49, 0x3A, 0xBF, 0x9A, 0x0F, 0xA0, 0x3E,
+ 0x70, 0x81, 0x85, 0xBE, 0x7B, 0x41, 0xE8, 0x3C, 0x95, 0x58, 0x09, 0x3F,
+ 0x26, 0x10, 0x59, 0xBE, 0x02, 0xBB, 0xFC, 0xBB, 0x35, 0x47, 0x1C, 0x3D,
+ 0x3D, 0xD7, 0x22, 0xBF, 0x25, 0x07, 0xB7, 0x3D, 0xEC, 0x5E, 0xA4, 0x3E,
+ 0x6F, 0x2F, 0x5B, 0x3E, 0x4D, 0x06, 0x01, 0x3E, 0xBD, 0x2F, 0x1F, 0xBD,
+ 0xD2, 0x89, 0x38, 0xBE, 0xD9, 0x6F, 0x0D, 0xBF, 0x07, 0xFB, 0x6E, 0xBE,
+ 0x8E, 0x25, 0x5D, 0xBD, 0xAC, 0x83, 0x4A, 0xBF, 0xB5, 0x8A, 0x67, 0x3E,
+ 0xA3, 0x76, 0x8B, 0xBE, 0x18, 0x02, 0xF2, 0xBD, 0xFD, 0xC0, 0xCD, 0xBE,
+ 0x68, 0x2F, 0xAE, 0x3E, 0x12, 0x68, 0xA6, 0xBD, 0xD7, 0xD1, 0xCB, 0x3E,
+ 0xC3, 0x0C, 0x88, 0x3E, 0x8E, 0x77, 0xE5, 0x3D, 0x28, 0x2C, 0x98, 0xBE,
+ 0x3A, 0x42, 0xA8, 0xBE, 0xA3, 0x60, 0x15, 0xBF, 0x7A, 0x65, 0xB0, 0xBF,
+ 0x7E, 0x99, 0x4F, 0xBF, 0xE6, 0x84, 0x48, 0x3F, 0x01, 0xA9, 0x81, 0xBE,
+ 0x19, 0x84, 0x9A, 0xBE, 0x47, 0xBD, 0x3B, 0xBF, 0xBB, 0xAF, 0x93, 0x3E,
+ 0x04, 0x1E, 0xFC, 0x3E, 0x5C, 0xD8, 0xBA, 0x3E, 0x8B, 0x37, 0x1A, 0x3F,
+ 0xDE, 0xB4, 0x2C, 0x3E, 0x0E, 0x40, 0x03, 0xBF, 0x5E, 0xAE, 0x4F, 0xBE,
+ 0xC8, 0x0B, 0xA0, 0xBE, 0x19, 0x51, 0x49, 0x3F, 0x90, 0x81, 0xC2, 0xBD,
+ 0x0B, 0x45, 0xB8, 0x3D, 0xED, 0x23, 0x9D, 0x3F, 0xBD, 0xE6, 0xB3, 0x3E,
+ 0x0E, 0xF8, 0x4F, 0x3E, 0x20, 0x1E, 0xA1, 0xBD, 0xC9, 0xBF, 0x93, 0x3D,
+ 0x4B, 0xDA, 0xD3, 0xBC, 0xBC, 0xB1, 0x87, 0x3D, 0x0C, 0xB3, 0x7D, 0x3D,
+ 0x26, 0xA7, 0xD1, 0xBB, 0x26, 0x2B, 0x08, 0x3C, 0x7A, 0x5C, 0x41, 0x3E,
+ 0x3B, 0x4B, 0x92, 0xBB, 0x07, 0x17, 0x23, 0x3E, 0x38, 0xDD, 0x37, 0xBC,
+ 0xC1, 0xA8, 0x80, 0xBD, 0x0D, 0x80, 0x8B, 0xBD, 0xD7, 0xF4, 0xFA, 0xBD,
+ 0xFA, 0x11, 0xB9, 0xBD, 0xEC, 0xCB, 0x10, 0xBC, 0x4A, 0x16, 0x0B, 0xBC,
+ 0xDE, 0xD7, 0x50, 0x3E, 0x43, 0xC8, 0xF1, 0x3B, 0x2A, 0x48, 0xA7, 0xBD,
+ 0x87, 0x0C, 0x90, 0x3C, 0xEE, 0xF0, 0x22, 0xBE, 0xB3, 0x7E, 0xEE, 0x3D,
+ 0x7B, 0xD6, 0xCF, 0xBC, 0xD1, 0x01, 0xDF, 0xBD, 0xF5, 0x7F, 0x4F, 0x3A,
+ 0x22, 0x97, 0xAE, 0xBD, 0xAA, 0x9E, 0x2E, 0xBD, 0xEA, 0xD9, 0xDD, 0x3E,
+ 0xD4, 0x47, 0xB1, 0xBD, 0x71, 0x0C, 0x9D, 0xBC, 0x02, 0x24, 0xE5, 0xBC,
+ 0x8E, 0xB6, 0xED, 0x3D, 0x9E, 0xEB, 0xF8, 0xBD, 0xBD, 0x5C, 0xBC, 0x3D,
+ 0xA1, 0x7A, 0x25, 0x3D, 0xB2, 0x54, 0xF9, 0x3C, 0xA7, 0xE0, 0x2F, 0x3D,
+ 0x88, 0xD3, 0xD4, 0xBC, 0x3F, 0xDA, 0x30, 0xBE, 0xF3, 0x0F, 0x98, 0xBD,
+ 0xF1, 0x74, 0x3C, 0x3D, 0xE9, 0xB5, 0xFC, 0x3C, 0x8D, 0x03, 0x49, 0x3D,
+ 0x93, 0xDF, 0x83, 0xBD, 0x0A, 0xD3, 0xC6, 0xBB, 0xDE, 0x7E, 0xCC, 0x3C,
+ 0xDD, 0x04, 0xAD, 0x3C, 0x21, 0x1E, 0xEC, 0xBB, 0x8A, 0x13, 0xA2, 0xBB,
+ 0x4E, 0xE2, 0x42, 0x3B, 0xAC, 0x71, 0x8E, 0x3C, 0xAC, 0x44, 0x4F, 0xBD,
+ 0x62, 0x36, 0xCB, 0xBD, 0x32, 0xAE, 0xBB, 0x3C, 0x40, 0x8F, 0x32, 0xBD,
+ 0xDD, 0x97, 0xB2, 0x3D, 0x27, 0x58, 0x9C, 0xBC, 0x7A, 0x16, 0x9D, 0x3D,
+ 0x05, 0x01, 0x3C, 0x3D, 0xBD, 0x7A, 0xCB, 0x3E, 0xED, 0xFE, 0xEC, 0xBC,
+ 0x35, 0xA6, 0xAD, 0x3D, 0xD6, 0xB8, 0xE5, 0x3C, 0xCF, 0x84, 0x83, 0x3E,
+ 0xA5, 0xD5, 0x71, 0xBF, 0x64, 0x4A, 0x80, 0x3E, 0xD0, 0x8E, 0x53, 0x3C,
+ 0xF7, 0xE5, 0x7C, 0xBE, 0xC4, 0xAD, 0xE9, 0x3D, 0xD2, 0x1A, 0x29, 0x3E,
+ 0x3A, 0xD8, 0xFE, 0xBD, 0x35, 0x46, 0x87, 0x3E, 0x49, 0x0F, 0x36, 0x3E,
+ 0x41, 0x1A, 0x84, 0x3E, 0x17, 0x34, 0xF5, 0xBD, 0x72, 0x82, 0x03, 0x3D,
+ 0xFC, 0x50, 0x20, 0x3F, 0x02, 0x89, 0xDD, 0xBD, 0x7F, 0x13, 0xB3, 0xBD,
+ 0x77, 0xDD, 0xB5, 0x3D, 0xCE, 0xCA, 0x2D, 0xBE, 0xC2, 0xE2, 0x57, 0x3E,
+ 0xE8, 0x80, 0x1B, 0xBE, 0x5E, 0x3E, 0x95, 0x3E, 0xCA, 0x7C, 0x84, 0xBE,
+ 0xCA, 0x77, 0x33, 0xBD, 0xA6, 0xB0, 0x4E, 0x3E, 0x3E, 0x04, 0x5B, 0x3E,
+ 0x00, 0xED, 0x07, 0xBE, 0x7B, 0xA8, 0xFF, 0xBD, 0x5E, 0x99, 0x95, 0x3E,
+ 0xA1, 0xA8, 0x62, 0xBF, 0x26, 0x7D, 0x21, 0x3E, 0x8C, 0x98, 0xB0, 0x3D,
+ 0x4F, 0x21, 0xC1, 0xBE, 0xE0, 0x9F, 0x22, 0xBE, 0xF7, 0xB6, 0x47, 0x3F,
+ 0x17, 0xE4, 0x61, 0xBF, 0x43, 0xD3, 0xF9, 0x3D, 0xD1, 0xD4, 0xBA, 0x3E,
+ 0x00, 0x0D, 0x5B, 0xBF, 0x20, 0xA0, 0x54, 0x3F, 0xCC, 0xCF, 0xEE, 0xBD,
+ 0x37, 0xFE, 0x38, 0xBF, 0xAB, 0x5F, 0x1E, 0xBE, 0x94, 0x61, 0x13, 0xBD,
+ 0xBE, 0xEC, 0x98, 0x3F, 0x79, 0xB9, 0xD5, 0xBF, 0xB3, 0xAA, 0x3E, 0x3F,
+ 0xF6, 0x5F, 0xCD, 0xBE, 0x99, 0x70, 0x5F, 0xBE, 0x8A, 0x90, 0x01, 0xBE,
+ 0x35, 0x5F, 0x14, 0xBE, 0xF3, 0xB7, 0xB8, 0xBE, 0xD3, 0xA4, 0xA0, 0xBD,
+ 0x41, 0x05, 0xD9, 0xBD, 0xF5, 0xD6, 0x14, 0x3E, 0x29, 0xC9, 0x3D, 0x3F,
+ 0x00, 0xC1, 0x42, 0xBF, 0x3F, 0xC4, 0x6F, 0xBE, 0xDF, 0x04, 0x5D, 0xBF,
+ 0x21, 0xC4, 0x82, 0xBC, 0xF6, 0xBE, 0xA9, 0xBE, 0x20, 0x6E, 0x74, 0x3D,
+ 0x4C, 0x82, 0x5C, 0xBE, 0x9B, 0x54, 0xED, 0xBE, 0xE7, 0x78, 0x99, 0x3F,
+ 0x28, 0x4D, 0x5E, 0x3E, 0xB4, 0x06, 0x48, 0x3F, 0x6A, 0xF0, 0xD3, 0xBD,
+ 0x5D, 0x6D, 0xF4, 0x3D, 0xC3, 0x27, 0x35, 0xBD, 0xB7, 0x80, 0xAD, 0x3D,
+ 0x8E, 0xFE, 0x25, 0xBF, 0xC2, 0x1F, 0x50, 0x3D, 0x38, 0x6C, 0xE5, 0x3E,
+ 0x45, 0xD4, 0x79, 0x3E, 0x72, 0x13, 0x09, 0x3B, 0xA2, 0x34, 0x55, 0x3E,
+ 0x37, 0xB4, 0xD2, 0x3D, 0x7C, 0x3D, 0xF1, 0xBE, 0x4B, 0x61, 0x92, 0xBE,
+ 0xFC, 0x5E, 0x92, 0x3E, 0xC1, 0xA4, 0xA5, 0x3C, 0x93, 0x84, 0xB7, 0x3F,
+ 0xF6, 0x64, 0x2E, 0x3C, 0x3B, 0xC6, 0x48, 0xBC, 0x92, 0xA2, 0x36, 0x3E,
+ 0x6A, 0x83, 0xE8, 0xBE, 0x91, 0xFC, 0x6A, 0xBE, 0x13, 0x6F, 0x01, 0xBD,
+ 0x64, 0xD1, 0x47, 0xBE, 0x0B, 0x41, 0x0C, 0x3E, 0x7A, 0x6C, 0xA7, 0x3E,
+ 0x45, 0xFD, 0xB5, 0x3C, 0xE7, 0x14, 0xA8, 0x3C, 0x5A, 0x71, 0xFC, 0x3E,
+ 0xBB, 0xC8, 0x03, 0x3F, 0xA1, 0x86, 0x92, 0x3E, 0xFB, 0x13, 0xBC, 0x3C,
+ 0x1A, 0x31, 0x1A, 0xBF, 0xB9, 0xAF, 0x0E, 0xBE, 0xF4, 0x47, 0xEF, 0xBD,
+ 0xCA, 0xE9, 0x25, 0x3B, 0x83, 0x06, 0x8C, 0xBF, 0x43, 0x4B, 0x0D, 0xBF,
+ 0xBA, 0x13, 0xFD, 0x3E, 0xE8, 0x8F, 0x1F, 0xBD, 0x71, 0xFB, 0xE5, 0x3D,
+ 0xB7, 0x09, 0xCA, 0x3C, 0x9A, 0x01, 0xA5, 0x3D, 0x22, 0x9B, 0x20, 0x3F,
+ 0x6D, 0x34, 0x4E, 0x3E, 0x71, 0x68, 0x5F, 0x3D, 0xF8, 0x6A, 0x94, 0xBD,
+ 0xFE, 0xB6, 0x82, 0xBD, 0x90, 0x64, 0x16, 0xBF, 0xF4, 0x90, 0x09, 0x3F,
+ 0x77, 0x0C, 0xD9, 0x3C, 0x65, 0xC2, 0xA7, 0xBC, 0x39, 0xC2, 0xCE, 0x3C,
+ 0x79, 0x4B, 0x9A, 0x3A, 0xA1, 0xE3, 0x39, 0x3F, 0x2F, 0xF6, 0x44, 0xBE,
+ 0x10, 0x77, 0x87, 0xBE, 0x0B, 0xD3, 0x28, 0xBF, 0xC3, 0x77, 0x34, 0x3E,
+ 0x9A, 0xC8, 0x9F, 0xBE, 0x6E, 0x81, 0x45, 0xBC, 0xED, 0x22, 0x1E, 0x3E,
+ 0x13, 0x68, 0xE4, 0x3C, 0x35, 0x19, 0xFA, 0x3D, 0x52, 0x48, 0x29, 0xBD,
+ 0xBF, 0xD1, 0x02, 0x3E, 0x7A, 0x83, 0x93, 0x3D, 0x5C, 0x29, 0x60, 0xBC,
+ 0xC1, 0x4D, 0xCD, 0xBA, 0x0F, 0xB1, 0x87, 0x3D, 0x84, 0x42, 0x6D, 0xBE,
+ 0x99, 0x36, 0x49, 0xBD, 0xDC, 0x0C, 0x5D, 0xBD, 0xE0, 0xF4, 0xCB, 0x3D,
+ 0xCE, 0x4E, 0x4C, 0xBD, 0x49, 0x1B, 0x1F, 0xBA, 0x0E, 0x1B, 0xA2, 0xBD,
+ 0x6B, 0xAD, 0xB3, 0x3D, 0x67, 0x4F, 0x6B, 0x3D, 0x60, 0xEE, 0x6D, 0x3C,
+ 0x7C, 0x27, 0x06, 0xBE, 0x12, 0x38, 0xE1, 0x3C, 0x25, 0x68, 0x0C, 0x3D,
+ 0xAB, 0xF4, 0x50, 0xBD, 0xEE, 0xFD, 0x2F, 0x3E, 0x85, 0x6C, 0x90, 0xBD,
+ 0x8E, 0x95, 0x3C, 0x3E, 0x54, 0xD7, 0xA0, 0x3D, 0x6C, 0x92, 0x00, 0x3D,
+ 0x78, 0x13, 0x4F, 0xBE, 0x56, 0x03, 0x45, 0x3E, 0x78, 0x89, 0xE9, 0x3D,
+ 0x90, 0xFB, 0xF2, 0x3D, 0x01, 0x87, 0x5A, 0xBE, 0x82, 0x8A, 0x9B, 0xBD,
+ 0x6F, 0x73, 0xC7, 0xBE, 0x83, 0x97, 0x00, 0x3F, 0xE0, 0xAB, 0x8A, 0xBF,
+ 0x6D, 0x7A, 0x31, 0x3E, 0x9A, 0xDD, 0x39, 0x3D, 0x97, 0xDD, 0xD1, 0x3E,
+ 0x2E, 0x55, 0xF6, 0x3E, 0x58, 0xAB, 0x6B, 0xBD, 0xC6, 0xD5, 0xDE, 0xBE,
+ 0xDA, 0xB0, 0x54, 0x3E, 0xE3, 0xC5, 0x31, 0xBD, 0x19, 0xC3, 0x11, 0x3F,
+ 0xCE, 0x29, 0x1E, 0x3F, 0xEC, 0x35, 0x28, 0x3F, 0xA7, 0x0A, 0x9E, 0xBE,
+ 0x18, 0x05, 0xFC, 0x3E, 0x47, 0x0E, 0xAD, 0xBC, 0x94, 0x47, 0x70, 0x3E,
+ 0xF2, 0x7C, 0x07, 0x3F, 0xAD, 0x60, 0x77, 0xBE, 0xF1, 0xC8, 0x0D, 0x3E,
+ 0xCE, 0x36, 0x08, 0xBF, 0xDB, 0x90, 0xFC, 0xBE, 0xB5, 0x20, 0xC6, 0xBE,
+ 0x4F, 0x52, 0x4D, 0xBE, 0x0C, 0xB6, 0x91, 0xBB, 0x62, 0x1E, 0xC4, 0xBE,
+ 0x92, 0x54, 0xA7, 0x3E, 0xEE, 0x10, 0x56, 0xBE, 0xC3, 0x06, 0x22, 0xBD,
+ 0x38, 0xAB, 0x0D, 0x3E, 0xF1, 0x47, 0x41, 0xBF, 0xDD, 0xDD, 0x2C, 0xBE,
+ 0x68, 0xC2, 0x46, 0x3E, 0x07, 0x10, 0x0E, 0x3F, 0xAD, 0x65, 0x06, 0x3C,
+ 0x5F, 0x67, 0x80, 0x3E, 0xFA, 0xD7, 0x93, 0x3E, 0xA9, 0x9A, 0x33, 0xBF,
+ 0x12, 0x40, 0xFD, 0x3E, 0x9D, 0xDE, 0x18, 0x3F, 0x55, 0x18, 0x23, 0xBE,
+ 0x93, 0x3D, 0x9B, 0xBD, 0x39, 0x9A, 0x08, 0xBF, 0xC7, 0x56, 0x3F, 0xBF,
+ 0xC8, 0xDB, 0x61, 0xBE, 0xD6, 0x30, 0xEA, 0x3E, 0x04, 0x39, 0x1C, 0xBE,
+ 0x57, 0x1F, 0x14, 0xBB, 0x97, 0x1A, 0x56, 0xBE, 0xA2, 0xE6, 0x10, 0xBF,
+ 0xD8, 0x4D, 0xDC, 0xBB, 0x80, 0xF8, 0x89, 0xBE, 0x27, 0x6C, 0x0D, 0xBF,
+ 0xFA, 0xE7, 0x32, 0x3D, 0x8D, 0x6B, 0xE8, 0xBD, 0x77, 0xD4, 0xC0, 0xBE,
+ 0x91, 0xFC, 0x4C, 0x3E, 0x29, 0xCD, 0x89, 0x3E, 0x9E, 0xA0, 0x64, 0x3D,
+ 0x05, 0xCE, 0x77, 0x3F, 0xC4, 0x27, 0xBD, 0x3E, 0xBF, 0x16, 0x83, 0xBC,
+ 0xA2, 0x6D, 0xC0, 0x3E, 0x23, 0x8C, 0x2A, 0xBF, 0xDE, 0x53, 0x33, 0xBE,
+ 0x07, 0x63, 0x0E, 0xBF, 0xBB, 0x09, 0x93, 0x3D, 0xD6, 0x74, 0x56, 0xBC,
+ 0x37, 0x16, 0xE3, 0x3E, 0xF8, 0x66, 0xBF, 0x3C, 0x77, 0x97, 0x45, 0xBE,
+ 0x2D, 0x58, 0x0C, 0x3F, 0x81, 0x50, 0xEE, 0x3B, 0xDB, 0x2C, 0x20, 0xBD,
+ 0x28, 0x18, 0xA4, 0x3E, 0xF0, 0xBA, 0xFC, 0x3E, 0xEA, 0xEB, 0xAD, 0x3E,
+ 0x79, 0x05, 0x56, 0x3D, 0x8F, 0x6F, 0x8E, 0xBE, 0x97, 0x1D, 0x6E, 0x3C,
+ 0x6D, 0x8D, 0x2F, 0xBC, 0x0E, 0x5A, 0xA3, 0x3D, 0x10, 0x6E, 0x41, 0xBD,
+ 0xCD, 0xAF, 0x47, 0xBE, 0x3B, 0xE0, 0x20, 0xBD, 0xC4, 0xA6, 0x07, 0xBF,
+ 0x7D, 0xBC, 0xB6, 0xBE, 0x05, 0x66, 0xB4, 0xBE, 0xCF, 0xD7, 0xE3, 0x3E,
+ 0xC2, 0x1B, 0x62, 0x3E, 0x8F, 0x56, 0x78, 0x3D, 0x72, 0xF7, 0x2B, 0xBF,
+ 0x34, 0x77, 0x15, 0x3D, 0x5E, 0xE5, 0x53, 0x3E, 0x29, 0xE9, 0x55, 0x3E,
+ 0x54, 0x65, 0x9F, 0xBD, 0x9E, 0xE0, 0x10, 0xBD, 0xE2, 0x8E, 0xD3, 0x3D,
+ 0xD2, 0xCE, 0x75, 0x3D, 0x4F, 0xB5, 0xA0, 0xBD, 0xF4, 0xFE, 0xC3, 0x3D,
+ 0xC6, 0xD9, 0x64, 0xBE, 0x2B, 0x74, 0x90, 0xBD, 0xD6, 0x6A, 0xFB, 0xBE,
+ 0x85, 0x9C, 0x10, 0xBE, 0xAD, 0xB9, 0x4E, 0x3C, 0x8B, 0xD8, 0x35, 0x3E,
+ 0x3F, 0x19, 0x3F, 0xBE, 0x67, 0x5D, 0x98, 0xBC, 0xB7, 0xCD, 0xB6, 0x3D,
+ 0x5E, 0x83, 0xAF, 0x3D, 0x49, 0xEC, 0x44, 0x3C, 0xED, 0xF9, 0xDD, 0x3D,
+ 0x5E, 0xBE, 0x97, 0xBE, 0x4D, 0x9C, 0xE8, 0xBA, 0x61, 0x45, 0x8F, 0xBC,
+ 0xCB, 0x56, 0x9C, 0xBE, 0x43, 0xF9, 0x81, 0x3F, 0x68, 0x5A, 0x98, 0x3F,
+ 0xEF, 0x5E, 0x38, 0xBD, 0x45, 0xF0, 0x4B, 0x3E, 0xF6, 0xFC, 0x6C, 0xBE,
+ 0xA9, 0x96, 0x97, 0x3C, 0x06, 0x46, 0xB9, 0x3F, 0x8F, 0x7B, 0x2F, 0xBF,
+ 0x44, 0x76, 0x38, 0xBD, 0x08, 0x13, 0xCE, 0x3E, 0x0D, 0x25, 0x22, 0x3F,
+ 0x8C, 0x9D, 0x0B, 0x3E, 0x14, 0x17, 0x14, 0x3F, 0x61, 0x54, 0xD6, 0x3D,
+ 0x1A, 0x8D, 0x8B, 0x3E, 0x5E, 0xD3, 0x7A, 0xBE, 0x3D, 0x4C, 0xAE, 0xBE,
+ 0x9F, 0xE9, 0xDF, 0xBE, 0xE7, 0x0B, 0x6A, 0xBD, 0xAB, 0x7D, 0x2B, 0x3E,
+ 0x36, 0xC6, 0x2F, 0xBC, 0xAC, 0x9E, 0x08, 0x3F, 0x9E, 0x5F, 0x3A, 0xBF,
+ 0xFD, 0x2A, 0x48, 0x3F, 0x80, 0xA8, 0xB3, 0x3D, 0x7F, 0xBC, 0x16, 0x3F,
+ 0x28, 0xCA, 0x9E, 0x3C, 0x5E, 0xA1, 0xF9, 0x3D, 0x07, 0xCE, 0xB7, 0xBD,
+ 0xF5, 0xDB, 0x85, 0x3E, 0xAB, 0x01, 0x97, 0xBE, 0x20, 0x73, 0xB2, 0x3E,
+ 0x7E, 0x1A, 0xA9, 0x3D, 0xAB, 0x13, 0xF8, 0x3E, 0xA0, 0x7D, 0x89, 0x3E,
+ 0xF3, 0xCB, 0x67, 0x3F, 0xAA, 0x7B, 0x4B, 0x3E, 0x50, 0xB0, 0x8D, 0x3E,
+ 0x63, 0x55, 0x44, 0x3F, 0x4D, 0xF1, 0x88, 0xBE, 0x3E, 0x8D, 0x96, 0xBE,
+ 0xAF, 0x7D, 0x22, 0xBE, 0xC1, 0xE6, 0xAD, 0x3D, 0x91, 0xF9, 0xBE, 0x3C,
+ 0x6A, 0xF4, 0x75, 0x3D, 0xDD, 0x27, 0x59, 0xBB, 0x9A, 0xED, 0x04, 0xBD,
+ 0xD9, 0x06, 0xF7, 0xB9, 0xA6, 0xFC, 0xF9, 0x3C, 0xC6, 0x3C, 0x1B, 0xBB,
+ 0x6C, 0xF4, 0xF2, 0xBB, 0xEB, 0x81, 0xD7, 0x3C, 0x78, 0xE4, 0xB1, 0xBC,
+ 0x9E, 0xD8, 0xC0, 0x3C, 0x96, 0x9B, 0x97, 0x3D, 0x6B, 0x21, 0xCE, 0x3D,
+ 0xDB, 0xC4, 0xF1, 0x3C, 0xFF, 0x06, 0x9C, 0x3B, 0x20, 0x64, 0x08, 0x3D,
+ 0x69, 0x53, 0x20, 0xBE, 0xBB, 0x3C, 0xB3, 0x3D, 0x9C, 0xE9, 0xAF, 0x3C,
+ 0x65, 0x65, 0x9B, 0xBD, 0x51, 0xD7, 0xFE, 0xBD, 0x89, 0x20, 0x6C, 0xBC,
+ 0x9A, 0xC5, 0xF3, 0x3B, 0xA8, 0x08, 0x2F, 0x3D, 0x9B, 0x5F, 0xCF, 0x3C,
+ 0x8A, 0x56, 0x02, 0x3D, 0xD6, 0xEE, 0x7F, 0x3D, 0x32, 0xD1, 0x8A, 0x3E,
+ 0xC9, 0x07, 0x2A, 0x3D, 0xBC, 0x32, 0x49, 0x3D, 0xBA, 0x24, 0x96, 0xBE,
+ 0x9B, 0x5D, 0x42, 0xBE, 0xC5, 0x03, 0xA6, 0x3E, 0x36, 0xDB, 0x1A, 0x3F,
+ 0x6A, 0x05, 0x87, 0xBE, 0xEB, 0x39, 0xCE, 0x3D, 0xA1, 0x00, 0xC6, 0xBE,
+ 0x99, 0x44, 0xD5, 0x3B, 0x1B, 0xA3, 0x9A, 0xBE, 0xD9, 0x7E, 0xAD, 0x3F,
+ 0x97, 0xC9, 0xB1, 0x3E, 0x6F, 0x06, 0x5E, 0x3D, 0xC8, 0x61, 0xF0, 0x3E,
+ 0x44, 0x84, 0xAF, 0xBE, 0xC5, 0xD4, 0xD5, 0xBF, 0xB1, 0xF7, 0x98, 0x3F,
+ 0x37, 0x0C, 0x0F, 0xBE, 0xB0, 0x6B, 0x6C, 0x3D, 0x8E, 0x9E, 0x66, 0xBF,
+ 0x28, 0x90, 0x77, 0xBE, 0x79, 0x3D, 0xCE, 0x3C, 0x6A, 0xD9, 0x71, 0x3E,
+ 0xE9, 0x55, 0x16, 0xBF, 0x7F, 0xF7, 0xAB, 0xBE, 0x7F, 0x2D, 0x33, 0xBF,
+ 0xEF, 0xE7, 0xC7, 0x3E, 0x05, 0xB2, 0x23, 0x3E, 0x3D, 0x65, 0x75, 0xBF,
+ 0x3B, 0xEF, 0xAA, 0x3D, 0xF4, 0x22, 0x90, 0xBE, 0x7E, 0x01, 0x0C, 0xBD,
+ 0x6E, 0x11, 0xAC, 0x3C, 0x87, 0x8F, 0xF0, 0x3B, 0x20, 0xC7, 0x85, 0xBC,
+ 0xDD, 0x80, 0x8C, 0xBB, 0xB5, 0x82, 0x00, 0xBE, 0x1D, 0xBC, 0x38, 0xBD,
+ 0xF2, 0xFC, 0x8E, 0xBC, 0xBC, 0x7F, 0x80, 0x3C, 0x59, 0xFD, 0x13, 0x3D,
+ 0xD6, 0x3E, 0xA1, 0x3C, 0x4A, 0xB8, 0x53, 0x3D, 0x71, 0xEE, 0x03, 0xBE,
+ 0x3B, 0x37, 0xE8, 0x3B, 0xCE, 0x76, 0x04, 0x3D, 0xA9, 0xE3, 0x02, 0x3E,
+ 0x76, 0x00, 0x29, 0x3E, 0x0F, 0xBC, 0x53, 0xBC, 0xE0, 0xC7, 0x39, 0xBD,
+ 0xB6, 0x8D, 0xE2, 0xBC, 0x85, 0xB9, 0x18, 0xBE, 0x59, 0x29, 0x29, 0xBD,
+ 0x23, 0x40, 0x60, 0x3C, 0x29, 0x4F, 0x2B, 0x3D, 0x1D, 0xA6, 0xDA, 0x3D,
+ 0x1D, 0x80, 0x17, 0xBD, 0x54, 0xB4, 0x68, 0x3C, 0x32, 0xC0, 0x2B, 0xBD,
+ 0xD6, 0x62, 0x40, 0x3B, 0xBB, 0x77, 0xC9, 0xBB, 0x6F, 0xB1, 0x55, 0xBD,
+ 0x57, 0x65, 0xD1, 0xBE, 0x71, 0xE3, 0x09, 0xBB, 0x2B, 0x2A, 0x7E, 0x3D,
+ 0x76, 0xF5, 0x03, 0xBD, 0x66, 0x67, 0xBC, 0xBB, 0xC7, 0xE6, 0xAB, 0xBE,
+ 0xFF, 0xC4, 0xBA, 0xBC, 0xFF, 0x50, 0x1C, 0x3E, 0x05, 0x79, 0x73, 0xBE,
+ 0x37, 0x4F, 0xAE, 0x3C, 0x94, 0xAD, 0x3A, 0x3E, 0xFE, 0x9A, 0x2D, 0x3E,
+ 0xE7, 0x60, 0x5B, 0xBE, 0x2C, 0xD7, 0xA8, 0xBE, 0x80, 0xEB, 0x7E, 0x3B,
+ 0xE2, 0xF9, 0xBB, 0x3F, 0x78, 0x7B, 0x15, 0x3F, 0xDD, 0xD6, 0xCE, 0x3E,
+ 0xAB, 0x49, 0xDD, 0x3E, 0x01, 0xE2, 0x8C, 0x3F, 0xE4, 0x6E, 0x15, 0xBD,
+ 0x6F, 0x9C, 0xA2, 0x3D, 0xA0, 0x94, 0x62, 0x3E, 0xD6, 0x8D, 0x13, 0xBE,
+ 0x7F, 0x5D, 0xCF, 0xBE, 0x25, 0x37, 0xB0, 0xBE, 0x85, 0xFA, 0x82, 0x3F,
+ 0x77, 0xC5, 0x5C, 0x3F, 0x9D, 0x1D, 0x07, 0xBE, 0xCD, 0x25, 0x65, 0xBE,
+ 0xB4, 0x8B, 0xE3, 0x3E, 0xB6, 0x0A, 0xBC, 0xBC, 0xC0, 0xD1, 0xB7, 0x3E,
+ 0x8E, 0xD4, 0x90, 0xBF, 0xE3, 0xD4, 0x52, 0xBE, 0xC8, 0xEF, 0x2C, 0x3D,
+ 0xF2, 0xD0, 0x68, 0xBE, 0x32, 0x88, 0x2D, 0x3E, 0x84, 0xBC, 0x3B, 0xBF,
+ 0x7A, 0xB2, 0x86, 0xBF, 0xD2, 0x83, 0x85, 0xBD, 0x32, 0x74, 0x6D, 0xBD,
+ 0xD6, 0x57, 0xF7, 0x3E, 0xFB, 0xD4, 0x10, 0xBD, 0xAB, 0x6F, 0xB3, 0x3F,
+ 0x93, 0xF6, 0xF4, 0xBE, 0xBF, 0x82, 0xB1, 0x3D, 0xFA, 0x6F, 0x5F, 0x3F,
+ 0x8D, 0xFE, 0x9C, 0x3F, 0xEB, 0x6F, 0x01, 0x3F, 0x27, 0x2D, 0xA1, 0x3E,
+ 0x16, 0x7E, 0x16, 0x3E, 0xF9, 0xA6, 0xC5, 0xBD, 0xE5, 0xB1, 0x51, 0x3E,
+ 0xF1, 0x52, 0x69, 0xBF, 0x5C, 0x2D, 0xB3, 0x3E, 0x3B, 0xD0, 0x06, 0xBF,
+ 0x4C, 0x63, 0x95, 0x3F, 0x6D, 0xCA, 0x3C, 0x3F, 0x6F, 0xE2, 0x3C, 0xBF,
+ 0x5B, 0x54, 0xA8, 0x3C, 0xC4, 0x6E, 0x04, 0x3F, 0x33, 0x04, 0x06, 0xBF,
+ 0xB9, 0xA5, 0x60, 0xBE, 0x56, 0xA7, 0x92, 0x3D, 0xFD, 0x0D, 0xE6, 0xBF,
+ 0xE8, 0xC3, 0xD9, 0xBE, 0xD9, 0xE4, 0x10, 0xBF, 0xE0, 0x8E, 0x1D, 0x3E,
+ 0x96, 0x36, 0xD6, 0x3E, 0xA0, 0x3C, 0x35, 0x3F, 0x5D, 0x5E, 0x0E, 0x3E,
+ 0x0F, 0x8D, 0xB8, 0x3E, 0x24, 0x43, 0x7E, 0x3E, 0x32, 0xED, 0x73, 0x3A,
+ 0x5D, 0x37, 0x01, 0x3F, 0x4C, 0xC2, 0xE2, 0xBE, 0x91, 0x76, 0xC3, 0xBE,
+ 0x20, 0xCB, 0x81, 0xBE, 0x87, 0xFB, 0x8D, 0xBF, 0xC4, 0x97, 0xC4, 0xBF,
+ 0x6E, 0x0C, 0xB7, 0xBE, 0xA0, 0x1E, 0x1A, 0x3F, 0x1C, 0xE3, 0x38, 0xBF,
+ 0x14, 0x05, 0x69, 0xBE, 0x27, 0xED, 0x1C, 0xBF, 0xB7, 0x53, 0x72, 0x3E,
+ 0x81, 0x3A, 0x6F, 0xBE, 0x5E, 0x5C, 0x6C, 0xBE, 0xBF, 0x6C, 0x89, 0x3F,
+ 0x23, 0x29, 0xC0, 0xBE, 0xCB, 0x54, 0xB0, 0x3E, 0xCD, 0xE6, 0x14, 0x3F,
+ 0x04, 0x69, 0xE6, 0x3E, 0x63, 0xAF, 0x28, 0xBE, 0x14, 0x69, 0x39, 0xBF,
+ 0x3D, 0xE6, 0x67, 0xBE, 0x99, 0xBD, 0x8C, 0x3F, 0x68, 0x07, 0x59, 0xBF,
+ 0x33, 0xD1, 0x06, 0x3E, 0xAE, 0x8D, 0x20, 0x3E, 0xFA, 0xDF, 0x03, 0x3F,
+ 0x0F, 0x6D, 0x9A, 0x3E, 0x56, 0x12, 0x83, 0x3E, 0x6D, 0x8D, 0x96, 0x3E,
+ 0x04, 0xE7, 0x47, 0x3E, 0xD4, 0xD4, 0x02, 0xBE, 0xE8, 0x58, 0x68, 0xBE,
+ 0x16, 0x36, 0x1B, 0xBE, 0xBD, 0xE6, 0x2D, 0xBD, 0xC6, 0x5D, 0x3A, 0xBE,
+ 0x39, 0x36, 0x3D, 0xBE, 0x60, 0xCC, 0xDC, 0x3D, 0x49, 0xDD, 0x6C, 0xBF,
+ 0x43, 0x59, 0x39, 0x3E, 0xD8, 0x1E, 0x7E, 0xBE, 0x30, 0x74, 0xD4, 0xBD,
+ 0x78, 0xDB, 0xA4, 0x3E, 0xBC, 0x4D, 0xBE, 0xBE, 0x33, 0x04, 0xC4, 0x3E,
+ 0x9B, 0xA6, 0x9C, 0xBE, 0xB4, 0x4A, 0x9D, 0x3D, 0xE0, 0x11, 0xA0, 0x3D,
+ 0xE6, 0x0F, 0x1E, 0xBE, 0x56, 0x81, 0x00, 0xBF, 0x76, 0x86, 0x23, 0x3F,
+ 0x8C, 0x8F, 0x22, 0xBC, 0x6E, 0xAA, 0x2E, 0x3E, 0x0D, 0xDB, 0x49, 0x3D,
+ 0x60, 0x3F, 0xD8, 0xBE, 0x81, 0x74, 0x81, 0xBE, 0x86, 0x35, 0xA5, 0x3E,
+ 0x66, 0xD3, 0xDC, 0x3E, 0xE6, 0x58, 0x19, 0x3E, 0xAD, 0x44, 0x62, 0xBE,
+ 0x05, 0x98, 0x2F, 0x3F, 0x46, 0x87, 0x3E, 0xBE, 0x9C, 0x0F, 0x5D, 0x3E,
+ 0x92, 0xBF, 0xBA, 0xBE, 0x3D, 0x7F, 0x66, 0xBE, 0x99, 0xBD, 0xB4, 0xBD,
+ 0x74, 0x23, 0x38, 0xBE, 0x8E, 0xC4, 0x2F, 0x3E, 0x69, 0xF3, 0x21, 0xBE,
+ 0x92, 0x5F, 0x00, 0xBE, 0x65, 0xA0, 0xDA, 0x3D, 0xF0, 0xF8, 0x9F, 0x3E,
+ 0xE1, 0x5B, 0x84, 0xBE, 0xA7, 0x7E, 0xD9, 0xBD, 0x93, 0xAF, 0x30, 0x3F,
+ 0x39, 0xDC, 0x65, 0x3E, 0x3B, 0x23, 0x3A, 0xBD, 0xCB, 0x5C, 0x7F, 0x3E,
+ 0x02, 0xCE, 0xD4, 0x3E, 0x68, 0x5C, 0xD9, 0xBE, 0x7B, 0x52, 0x06, 0x3D,
+ 0x4C, 0x05, 0x6C, 0xBB, 0xD0, 0xE8, 0xBD, 0xBE, 0x90, 0xF1, 0x67, 0x3E,
+ 0x48, 0x8B, 0xDF, 0x3E, 0x3F, 0xF6, 0x2C, 0xBE, 0x4F, 0x7C, 0xFD, 0x3D,
+ 0x0D, 0xFE, 0xA3, 0x3E, 0x9E, 0xC0, 0x9D, 0xBE, 0x90, 0x66, 0x4C, 0xBD,
+ 0xC5, 0x19, 0xA7, 0xBF, 0x44, 0x89, 0x33, 0x3E, 0xE0, 0xC5, 0x1F, 0xBD,
+ 0xB9, 0x2D, 0x22, 0xBE, 0xBF, 0xA4, 0x06, 0xBD, 0x0F, 0x79, 0x37, 0x3D,
+ 0xF6, 0x8E, 0x26, 0x3E, 0xB0, 0xC5, 0xF9, 0x3E, 0x33, 0x15, 0xA7, 0xBE,
+ 0xFD, 0x20, 0x4F, 0x3D, 0xD8, 0x5D, 0xD1, 0xBD, 0xF7, 0x78, 0xC1, 0x3D,
+ 0x25, 0x7D, 0xD6, 0x3C, 0x82, 0x8C, 0x40, 0x3E, 0xBA, 0xE2, 0x47, 0xBE,
+ 0x43, 0x6E, 0x62, 0x3D, 0x88, 0xBB, 0x12, 0xBF, 0x4A, 0xEF, 0xAD, 0xBE,
+ 0xFE, 0x3B, 0x9F, 0x3D, 0x69, 0xFE, 0x7A, 0xBD, 0x50, 0x95, 0x33, 0x3E,
+ 0xF7, 0xD7, 0x0C, 0x3E, 0x72, 0x44, 0xB8, 0x3E, 0x36, 0xB5, 0x0E, 0x3C,
+ 0xAC, 0x23, 0xC8, 0x3C, 0x03, 0x82, 0x6B, 0x3F, 0xC8, 0x9D, 0xC1, 0xBD,
+ 0xDB, 0xFC, 0xCC, 0x3E, 0x00, 0x08, 0x08, 0x3E, 0x29, 0xFD, 0x44, 0xBD,
+ 0x29, 0xD6, 0x1B, 0x3C, 0x9B, 0x42, 0xE7, 0xBD, 0xF2, 0x26, 0x3F, 0xBF,
+ 0xC7, 0x99, 0x28, 0xBF, 0xFF, 0x04, 0x59, 0xBE, 0x5D, 0xE9, 0x2B, 0x3E,
+ 0x9A, 0x9B, 0x6B, 0x3E, 0xCB, 0x60, 0x83, 0x3E, 0x49, 0x29, 0x0F, 0xBE,
+ 0xC8, 0x2C, 0xC2, 0xBE, 0x2C, 0xE6, 0xA3, 0x3F, 0x63, 0xBF, 0x7E, 0x3D,
+ 0xF4, 0xA4, 0x99, 0x3D, 0x30, 0xC8, 0xA2, 0x3F, 0xC5, 0x46, 0xAA, 0x3F,
+ 0x11, 0xA0, 0xD4, 0x3E, 0xFE, 0x39, 0x17, 0x3F, 0x1A, 0xC8, 0xEB, 0x3D,
+ 0xDB, 0x8C, 0x61, 0x3F, 0x46, 0x96, 0x9E, 0x3D, 0xE5, 0x16, 0x1D, 0xBE,
+ 0x16, 0x48, 0xAA, 0x3E, 0x9D, 0x3B, 0x44, 0xBF, 0x4A, 0x6E, 0xBF, 0x3E,
+ 0xA3, 0x93, 0x32, 0xBE, 0xDC, 0xC0, 0x09, 0xBF, 0xFE, 0x7C, 0xDC, 0x3D,
+ 0xDC, 0x8D, 0x55, 0x3F, 0xA6, 0xB0, 0x84, 0xBD, 0x03, 0xEE, 0x26, 0x3F,
+ 0x85, 0x76, 0xCE, 0xBE, 0xA8, 0x93, 0x95, 0x3E, 0x5C, 0x07, 0xC1, 0x3E,
+ 0x34, 0xFD, 0xD6, 0xBD, 0x35, 0x52, 0x61, 0xBF, 0xE2, 0x84, 0x42, 0x3C,
+ 0xC7, 0x00, 0xB1, 0x3C, 0x70, 0x4B, 0xE2, 0x3D, 0xAB, 0xC7, 0x5D, 0x3E,
+ 0xDA, 0x8D, 0x5B, 0xBF, 0xEF, 0xA4, 0xA9, 0x3E, 0x1E, 0x0E, 0xF8, 0x3E,
+ 0xFA, 0xB2, 0x89, 0x3D, 0x2E, 0x94, 0x25, 0x3D, 0xCE, 0xA8, 0xB9, 0xBD,
+ 0xF9, 0x58, 0x1A, 0xBF, 0x65, 0x77, 0x19, 0x3F, 0xD6, 0xE1, 0xB5, 0x3E,
+ 0x93, 0xA0, 0x25, 0x3D, 0xF2, 0x5A, 0xC8, 0xBC, 0xA4, 0xCF, 0x02, 0xBF,
+ 0x55, 0xE5, 0xF2, 0x3E, 0x8B, 0x79, 0xAB, 0x3D, 0x13, 0xB5, 0x9E, 0x3D,
+ 0x44, 0x4B, 0x96, 0xBE, 0x15, 0xD5, 0x56, 0x3E, 0xB9, 0x79, 0x59, 0x3E,
+ 0x1F, 0x3D, 0x51, 0x3E, 0x2D, 0x84, 0x8E, 0xBE, 0x8E, 0x52, 0x91, 0x3D,
+ 0xE0, 0x66, 0x94, 0xBE, 0x85, 0x3E, 0x5F, 0xBB, 0x09, 0xAE, 0x6B, 0xBE,
+ 0xEA, 0xE6, 0x5A, 0x3C, 0x99, 0x6B, 0x34, 0xBE, 0xE1, 0x5D, 0x1B, 0x3E,
+ 0x53, 0xBE, 0x0C, 0x3F, 0x05, 0xA3, 0x37, 0xBD, 0x27, 0x26, 0x38, 0x3D,
+ 0x2C, 0x32, 0x03, 0xBE, 0xED, 0xCC, 0x14, 0x3D, 0x1E, 0xB0, 0xC4, 0x3F,
+ 0x0A, 0xE6, 0x21, 0xBE, 0x5D, 0x9C, 0x44, 0xBF, 0x91, 0xBD, 0x52, 0xBE,
+ 0xA1, 0xD9, 0xC1, 0xBB, 0x89, 0xE5, 0xB8, 0x3E, 0x0F, 0x9E, 0x38, 0x3F,
+ 0x0F, 0x22, 0xD8, 0xBE, 0xF7, 0x69, 0x5F, 0xBF, 0x28, 0xDE, 0x62, 0x3E,
+ 0x58, 0xC4, 0xA1, 0xBC, 0xEF, 0x64, 0x91, 0x3E, 0x29, 0x65, 0x64, 0x3E,
+ 0x49, 0xDD, 0x35, 0x3E, 0x98, 0x39, 0xD7, 0x3C, 0xF3, 0xEA, 0xA3, 0xBB,
+ 0xD7, 0x79, 0x24, 0x3E, 0x60, 0x3C, 0xDC, 0xBE, 0x16, 0xEC, 0x74, 0x3D,
+ 0x08, 0x0C, 0x9C, 0x3D, 0xE9, 0x65, 0x00, 0x3F, 0x8D, 0x29, 0x5C, 0x3E,
+ 0x83, 0x22, 0xF9, 0xBF, 0xF7, 0x06, 0xB6, 0x3C, 0xE9, 0x22, 0x67, 0x3D,
+ 0xAC, 0x9F, 0x27, 0xBF, 0x58, 0x97, 0xB2, 0x3E, 0xCB, 0xD1, 0x44, 0x3D,
+ 0x44, 0xAB, 0x6D, 0x3D, 0x8F, 0xB0, 0xE6, 0x3E, 0x95, 0x73, 0x81, 0x3D,
+ 0x1D, 0x1B, 0x27, 0xBF, 0x8D, 0x6A, 0x87, 0x3E, 0xD6, 0xC2, 0x50, 0x3D,
+ 0x02, 0x22, 0x62, 0xBF, 0xE8, 0xF2, 0xA6, 0x3B, 0x70, 0xAC, 0xC9, 0x3D,
+ 0x23, 0x09, 0xEF, 0xBD, 0xA2, 0x30, 0xA4, 0x3F, 0x23, 0x00, 0x4D, 0x3E,
+ 0xA9, 0x93, 0x30, 0xBC, 0x3E, 0x8A, 0x3A, 0xBE, 0x82, 0x69, 0x9D, 0x3D,
+ 0x60, 0x10, 0x6F, 0xBF, 0xCE, 0x28, 0x94, 0x3F, 0xE9, 0x78, 0x34, 0xBE,
+ 0xE2, 0x14, 0xC2, 0x3D, 0x54, 0x6C, 0x2E, 0xBD, 0xFF, 0x6F, 0x1C, 0x3E,
+ 0x08, 0xE8, 0x7E, 0x3D, 0x24, 0x94, 0x0D, 0x3F, 0x5B, 0x6F, 0x78, 0xBD,
+ 0x4C, 0x1C, 0x34, 0x3F, 0xD7, 0xBC, 0x2D, 0x3C, 0x2C, 0x0A, 0x30, 0xBF,
+ 0xD4, 0xCE, 0x55, 0xBD, 0x2C, 0x02, 0xA6, 0xBD, 0xC0, 0x95, 0xFE, 0xBC,
+ 0x1A, 0x7A, 0xAA, 0x3D, 0xAD, 0x79, 0xC0, 0x3E, 0xC9, 0x85, 0xFF, 0x3E,
+ 0x9A, 0x0D, 0x7B, 0x3E, 0x98, 0xE4, 0x3F, 0x3D, 0xE6, 0x72, 0xBC, 0x3D,
+ 0xB6, 0xCA, 0x96, 0xBD, 0x6E, 0xF7, 0x21, 0xBE, 0xDF, 0x5D, 0x19, 0xBD,
+ 0x35, 0xB5, 0xB0, 0x3C, 0x45, 0x38, 0xA0, 0xBC, 0x2E, 0x73, 0x88, 0xBE,
+ 0x94, 0x6F, 0x91, 0xBE, 0x7C, 0x31, 0x01, 0x3E, 0x6F, 0xE6, 0xB5, 0x3D,
+ 0xD7, 0xE5, 0x40, 0x3D, 0xC8, 0x54, 0x66, 0xBB, 0xFB, 0x6A, 0xC7, 0x3D,
+ 0xCC, 0xF7, 0xDB, 0x3D, 0x20, 0x56, 0x29, 0xBD, 0x98, 0x8E, 0x74, 0xBB,
+ 0xF9, 0x7D, 0x74, 0xBE, 0x4E, 0x51, 0x1E, 0xBE, 0xFA, 0x22, 0x1A, 0x3E,
+ 0xC9, 0x8A, 0xE0, 0xBD, 0x63, 0xDA, 0x2D, 0x3D, 0xE0, 0x9F, 0x16, 0x3E,
+ 0xF5, 0x26, 0x2F, 0x3E, 0x4A, 0xAD, 0xF9, 0x3E, 0xB0, 0xBB, 0x40, 0x3D,
+ 0xCD, 0x10, 0xC4, 0xBD, 0x68, 0x02, 0xA2, 0xBA, 0xEE, 0x8C, 0xA0, 0x3C,
+ 0xAD, 0x50, 0xA1, 0x3E, 0x56, 0x30, 0x12, 0x3E, 0x5F, 0x8A, 0x9D, 0x3D,
+ 0x37, 0x49, 0x3F, 0x3C, 0xCD, 0x5D, 0xD2, 0xBC, 0x39, 0x7D, 0x2B, 0xBD,
+ 0x63, 0x1D, 0x91, 0x3D, 0x6F, 0xEC, 0x3E, 0x3D, 0x58, 0x74, 0x3B, 0x3D,
+ 0xB2, 0x17, 0x0B, 0xBD, 0x4E, 0x7A, 0xC5, 0xBD, 0x27, 0x64, 0xAA, 0xBD,
+ 0x2A, 0xB1, 0xBB, 0xBA, 0x8A, 0x2D, 0x16, 0xBD, 0xE7, 0xF1, 0xB9, 0xBD,
+ 0xE7, 0xF0, 0xFC, 0xBC, 0x29, 0x53, 0x7A, 0x3D, 0x5F, 0xF0, 0x86, 0xBC,
+ 0xF4, 0xE4, 0x6B, 0xBC, 0x43, 0x60, 0x05, 0xBD, 0x6D, 0x68, 0xAD, 0xBD,
+ 0x37, 0xC1, 0x05, 0xBC, 0x4E, 0xCC, 0x89, 0x3D, 0x73, 0x30, 0xE1, 0xBD,
+ 0xAB, 0xC4, 0x5A, 0xBD, 0x8C, 0xAC, 0x92, 0x3C, 0x10, 0x73, 0x37, 0x3D,
+ 0x4C, 0x35, 0x80, 0x3E, 0x93, 0x5F, 0x15, 0xBE, 0xCC, 0xC5, 0x21, 0xBD,
+ 0x03, 0x91, 0xBE, 0xBF, 0x79, 0x8A, 0xB8, 0xBE, 0x1C, 0x24, 0x80, 0x3E,
+ 0xD3, 0x47, 0x79, 0x3F, 0x09, 0x93, 0x90, 0x3D, 0x19, 0xFC, 0xEB, 0x3E,
+ 0x17, 0xDA, 0x6D, 0xBF, 0xFE, 0x9A, 0x87, 0x3F, 0xFF, 0xE9, 0x3A, 0xBE,
+ 0xC6, 0xBB, 0x79, 0x3E, 0xCC, 0x17, 0x13, 0x3E, 0x15, 0x76, 0x03, 0xBE,
+ 0xB2, 0x06, 0x82, 0x3D, 0x81, 0x89, 0x0B, 0x3E, 0xE9, 0x43, 0x18, 0xBF,
+ 0x0D, 0x3B, 0xA4, 0xBD, 0xC0, 0x4E, 0x1D, 0xBE, 0x74, 0x4E, 0x8B, 0xBC,
+ 0xB2, 0x44, 0xB9, 0xBF, 0x7A, 0x46, 0xCA, 0xBC, 0x32, 0xD9, 0xA9, 0xBE,
+ 0xE3, 0xEF, 0x46, 0xBD, 0x76, 0x6A, 0xD8, 0x3E, 0x3B, 0xF9, 0x31, 0xBF,
+ 0x07, 0x76, 0x8D, 0x3E, 0x69, 0x2B, 0xDA, 0x3E, 0x70, 0xE6, 0x98, 0xBE,
+ 0xCA, 0x13, 0x89, 0xBE, 0xF9, 0x73, 0x75, 0x3E, 0xDB, 0x73, 0xE0, 0xBE,
+ 0xFE, 0xA6, 0x1D, 0x3F, 0xAD, 0xE6, 0x2E, 0xBF, 0x0F, 0x1E, 0x36, 0x3B,
+ 0x98, 0x03, 0x61, 0x3C, 0x03, 0x4A, 0x60, 0xBD, 0x08, 0x45, 0x6D, 0xBB,
+ 0xBD, 0x14, 0xB5, 0x3C, 0x13, 0x7A, 0xAF, 0x3D, 0x76, 0xED, 0xB1, 0x3C,
+ 0x88, 0x29, 0x06, 0x3D, 0x41, 0x58, 0x30, 0x3D, 0x87, 0xA9, 0xDE, 0xBD,
+ 0x41, 0x1A, 0x13, 0x3D, 0x90, 0x62, 0x1E, 0xBC, 0xA8, 0xC3, 0x30, 0x3C,
+ 0x25, 0x32, 0x86, 0xBD, 0x17, 0x9E, 0x35, 0xBD, 0x29, 0x0C, 0x66, 0xBC,
+ 0x5D, 0x84, 0x39, 0x3D, 0x04, 0x0C, 0xCA, 0x3B, 0x58, 0x53, 0x80, 0x3C,
+ 0x9E, 0xF6, 0xF4, 0x3C, 0x34, 0xA1, 0x65, 0xBC, 0xD4, 0xE0, 0xC3, 0xBC,
+ 0xAE, 0x8D, 0xB3, 0xBD, 0x10, 0xA3, 0x7A, 0x3D, 0xD5, 0x8C, 0xEB, 0x3D,
+ 0x14, 0x0E, 0xB0, 0xBC, 0xD7, 0x11, 0x3E, 0x3D, 0x95, 0x46, 0x95, 0x3D,
+ 0xFF, 0x12, 0xDA, 0x3D, 0x38, 0x76, 0xA3, 0xBC, 0x01, 0x3F, 0x33, 0xBC,
+ 0x1D, 0x68, 0xAE, 0xBD, 0x38, 0x5C, 0x66, 0x3C, 0x4E, 0x96, 0x46, 0xBD,
+ 0x14, 0x1E, 0xD6, 0x3D, 0x79, 0xB3, 0x3D, 0x3B, 0xFC, 0x07, 0x31, 0x3D,
+ 0xFC, 0xEB, 0xBB, 0x3C, 0x91, 0xB7, 0x8C, 0x3C, 0xC1, 0xC5, 0x61, 0xBC,
+ 0x14, 0x22, 0x5D, 0x3C, 0xF7, 0xB1, 0x2D, 0xBD, 0xE2, 0x85, 0xEB, 0x3C,
+ 0x14, 0xF4, 0x4E, 0xBC, 0xB2, 0x9A, 0x2F, 0xBD, 0x35, 0x6E, 0x51, 0x3D,
+ 0x5F, 0xC9, 0xF2, 0x3C, 0x7D, 0x9F, 0xA7, 0xBC, 0x15, 0x19, 0x5A, 0x3C,
+ 0x64, 0x7F, 0xAB, 0xBB, 0x08, 0x27, 0x2A, 0x3D, 0x30, 0x3A, 0x02, 0x3A,
+ 0x4B, 0x6E, 0x3D, 0xBC, 0xFD, 0x5D, 0x13, 0xBD, 0x2E, 0xAC, 0x41, 0xBD,
+ 0xD2, 0x05, 0x67, 0x3C, 0x68, 0xE0, 0x9F, 0x3B, 0x75, 0x67, 0xB7, 0x3C,
+ 0x76, 0x6F, 0x7B, 0xBC, 0x6C, 0x1F, 0x04, 0xBC, 0xF5, 0xF2, 0x39, 0x3D,
+ 0x98, 0xAA, 0x34, 0x3E, 0x1B, 0x39, 0xBD, 0x3C, 0x6E, 0xA6, 0x7E, 0xBA,
+ 0x61, 0xA2, 0xD5, 0xBD, 0x1B, 0xA0, 0x9F, 0xBD, 0x2E, 0x30, 0x2D, 0x3E,
+ 0x1B, 0x8A, 0x68, 0xBD, 0x8C, 0xD5, 0x4A, 0x3D, 0xD1, 0x9A, 0x44, 0xBD,
+ 0x04, 0xEE, 0xE7, 0x3D, 0x1D, 0xFE, 0x1B, 0x3E, 0x1B, 0xDA, 0x05, 0xBB,
+ 0x64, 0x25, 0x36, 0xBF, 0xB1, 0x35, 0x39, 0x3C, 0x03, 0x8B, 0x26, 0x3C,
+ 0x37, 0xCF, 0x45, 0xBE, 0x2D, 0xB5, 0xDD, 0x3D, 0x24, 0x10, 0xC9, 0x3E,
+ 0x9B, 0x98, 0x0D, 0xBE, 0x75, 0x53, 0x69, 0xBE, 0x4B, 0xDF, 0x12, 0x3C,
+ 0x89, 0x32, 0xB7, 0xBB, 0x01, 0x57, 0x76, 0xBE, 0x3D, 0xA5, 0x2F, 0x3D,
+ 0x26, 0xB1, 0x03, 0x3D, 0x23, 0x61, 0x72, 0x3E, 0x36, 0x52, 0x16, 0x3E,
+ 0xBA, 0x7A, 0x18, 0x3F, 0x15, 0xFA, 0xF6, 0xBD, 0x42, 0xCA, 0x09, 0x3E,
+ 0xE9, 0xDA, 0x88, 0xBD, 0x4D, 0x3B, 0x86, 0xBD, 0xCA, 0xF5, 0x8A, 0xBF,
+ 0x28, 0x14, 0x0D, 0x3F, 0x3F, 0xC6, 0x91, 0xBC, 0x5E, 0x1E, 0x11, 0x3C,
+ 0xF1, 0x02, 0x9B, 0x3C, 0x0C, 0x5B, 0x2E, 0x3D, 0x50, 0x5A, 0x1C, 0xBD,
+ 0xB0, 0xE9, 0xBC, 0x3B, 0xCC, 0x00, 0x35, 0x3D, 0x90, 0x47, 0xFC, 0x3A,
+ 0x29, 0x72, 0x44, 0x3D, 0x05, 0x21, 0x57, 0x3D, 0x61, 0xBF, 0x53, 0xBD,
+ 0x11, 0xB9, 0xD5, 0x3C, 0xBF, 0xBD, 0xBD, 0xBC, 0x1F, 0x37, 0x8F, 0xBC,
+ 0x08, 0xD5, 0x89, 0xBD, 0x88, 0x85, 0x1A, 0xBC, 0xB4, 0x8B, 0x82, 0xBC,
+ 0x7D, 0xAE, 0x9D, 0x3B, 0x5A, 0x8F, 0xA5, 0xBB, 0xAA, 0xED, 0x1C, 0x3C,
+ 0x3C, 0x5E, 0x22, 0x3D, 0x65, 0xD7, 0xA6, 0xBB, 0xA4, 0x82, 0x57, 0xBC,
+ 0x93, 0xDF, 0x8A, 0xBD, 0x1F, 0x07, 0x81, 0x3D, 0x9B, 0x4B, 0x1B, 0x3D,
+ 0xF3, 0x00, 0xF7, 0xBC, 0x9B, 0x13, 0x04, 0x3D, 0x06, 0x3F, 0x02, 0x3D,
+ 0x8D, 0xA6, 0x5B, 0x3C, 0x1A, 0xD4, 0x2F, 0x3E, 0x55, 0xBE, 0xD0, 0xBC,
+ 0x54, 0x93, 0x02, 0x3C, 0xB2, 0xEC, 0xFA, 0x3D, 0xDB, 0x31, 0x63, 0xBD,
+ 0xD8, 0x73, 0xC8, 0xBF, 0xF2, 0xA5, 0x1E, 0x3F, 0xB4, 0x66, 0x78, 0xBD,
+ 0x88, 0x0C, 0x20, 0x3E, 0x2F, 0xD2, 0x45, 0x3E, 0xA2, 0xAD, 0x16, 0xBE,
+ 0x2C, 0x67, 0xB7, 0x3B, 0xE7, 0x29, 0xC7, 0xBE, 0x10, 0xBA, 0x91, 0x3D,
+ 0xBE, 0x9D, 0xD2, 0xBC, 0x94, 0x1D, 0x8F, 0xBE, 0x73, 0x1C, 0xA1, 0xBE,
+ 0x78, 0x65, 0x45, 0x3F, 0x5A, 0xC9, 0xCB, 0xBD, 0xBF, 0x93, 0x2B, 0xBF,
+ 0x0D, 0x18, 0x4E, 0xBD, 0xE3, 0x1A, 0x44, 0x3F, 0xFF, 0xCE, 0xB2, 0x3E,
+ 0x55, 0x6E, 0x91, 0xBE, 0xDC, 0x71, 0xB5, 0x3D, 0xBE, 0xB8, 0x0C, 0xBF,
+ 0x44, 0x71, 0x7C, 0xBE, 0xCE, 0x8F, 0xBC, 0xBE, 0x51, 0x25, 0x84, 0xBD,
+ 0xD6, 0x86, 0x56, 0xBF, 0x52, 0x69, 0x91, 0x3D, 0x4F, 0xE2, 0x2E, 0xBF,
+ 0xF6, 0x62, 0x99, 0xBE, 0x3A, 0x27, 0xFA, 0x3E, 0x69, 0x7D, 0x7C, 0xBC,
+ 0x84, 0xB0, 0xF9, 0x3D, 0xB0, 0x1F, 0x38, 0xBE, 0x76, 0x12, 0x9F, 0xBE,
+ 0x62, 0x57, 0x86, 0xBC, 0xA2, 0x4E, 0xA0, 0x3D, 0x6D, 0x9A, 0x3B, 0x3E,
+ 0x0F, 0x0D, 0x86, 0x3E, 0x36, 0x61, 0xC9, 0xBE, 0x4F, 0x46, 0x3D, 0x3E,
+ 0x3A, 0x3C, 0xE6, 0x3E, 0xF9, 0x05, 0x02, 0x3F, 0x5C, 0x74, 0xC4, 0xBD,
+ 0x45, 0x80, 0x8F, 0xBF, 0x87, 0xF6, 0x02, 0xC0, 0x81, 0x05, 0xC4, 0xBE,
+ 0x2B, 0xE0, 0xAA, 0xBC, 0x6F, 0x14, 0x8B, 0x3E, 0xA5, 0x53, 0xBE, 0xBD,
+ 0xCC, 0x4D, 0x8D, 0x3E, 0xE7, 0xA0, 0xFA, 0x3D, 0x38, 0x8D, 0xEE, 0x3D,
+ 0xDE, 0xDE, 0xFE, 0x3D, 0xDA, 0x16, 0x38, 0xBF, 0x1D, 0xBA, 0xDE, 0x3E,
+ 0xDB, 0x8B, 0xE4, 0x3D, 0xA4, 0x74, 0x9C, 0x3E, 0xE0, 0xEA, 0x15, 0xBE,
+ 0xD9, 0x7A, 0x24, 0xBF, 0x28, 0xB5, 0x09, 0xBF, 0x92, 0x8A, 0x41, 0x3E,
+ 0xEE, 0x64, 0x10, 0x3F, 0x16, 0xBA, 0x86, 0x3D, 0x8F, 0x47, 0x08, 0x3E,
+ 0xD9, 0x21, 0x1A, 0x3E, 0xE5, 0xC4, 0x8F, 0xBE, 0x63, 0x75, 0xC6, 0xBE,
+ 0xA5, 0x63, 0x24, 0xBD, 0xDD, 0xE2, 0x2E, 0x3D, 0x6D, 0x3F, 0x22, 0x3E,
+ 0x3F, 0x2A, 0xB7, 0x3E, 0xFE, 0xEC, 0x07, 0x3E, 0x55, 0x95, 0xB9, 0x3D,
+ 0xDB, 0x0D, 0x04, 0x3E, 0xBF, 0xDD, 0xCF, 0x3C, 0xCB, 0x1C, 0xFE, 0xBD,
+ 0x4B, 0x3E, 0xC0, 0x3D, 0x05, 0x77, 0x61, 0x3E, 0x20, 0x3F, 0xA1, 0x3B,
+ 0x1E, 0x2C, 0x05, 0xBE, 0x31, 0x56, 0x74, 0x3B, 0xE5, 0x48, 0x22, 0x3E,
+ 0xE9, 0xE3, 0xF7, 0xBC, 0xEA, 0xA1, 0x93, 0xBD, 0xC4, 0x42, 0xBA, 0x3D,
+ 0x3F, 0x9D, 0x6E, 0xBE, 0x01, 0x1E, 0x2D, 0x3E, 0x77, 0xD4, 0xB8, 0xBD,
+ 0xE7, 0x9F, 0x1C, 0xBE, 0x6A, 0x66, 0x17, 0x3C, 0x06, 0x7D, 0xB2, 0xBE,
+ 0xF4, 0xF8, 0xF5, 0xBD, 0xAC, 0xA3, 0x63, 0xBE, 0x0D, 0x01, 0x40, 0x3E,
+ 0xCC, 0x12, 0x66, 0x3E, 0x9F, 0x68, 0x01, 0xBD, 0xB8, 0x66, 0x0F, 0x3D,
+ 0x63, 0x9B, 0xC7, 0xBC, 0x26, 0xB6, 0x93, 0x3D, 0x21, 0x1D, 0x6B, 0x3B,
+ 0x00, 0xBB, 0x48, 0xBC, 0xDC, 0xA8, 0xDE, 0x3B, 0xCB, 0xFD, 0xBD, 0xBC,
+ 0x47, 0xD6, 0xBB, 0xBC, 0xA0, 0x55, 0x21, 0x3D, 0x06, 0x16, 0x9E, 0xB8,
+ 0x9E, 0x06, 0x1D, 0xBB, 0xD8, 0x83, 0x25, 0x3D, 0x42, 0x2E, 0xC8, 0x3D,
+ 0x1A, 0xAF, 0xAC, 0x3C, 0x21, 0x0C, 0x3C, 0x3C, 0xB4, 0xDC, 0xF5, 0x3B,
+ 0xE8, 0x50, 0xCA, 0x3C, 0xDD, 0x5E, 0xF9, 0xBC, 0xC0, 0xF0, 0x1C, 0xBC,
+ 0xB4, 0x41, 0x27, 0x3C, 0x28, 0x21, 0x2A, 0xBC, 0xCA, 0x2D, 0x6B, 0xBC,
+ 0x9C, 0x5D, 0x38, 0xBB, 0xDB, 0xAA, 0xB7, 0x3A, 0x8A, 0xC8, 0xD8, 0x3C,
+ 0x89, 0xBC, 0xA1, 0xBB, 0x72, 0x6B, 0x99, 0x3C, 0x00, 0xD9, 0x79, 0x3C,
+ 0xBE, 0x10, 0x96, 0x3E, 0x83, 0xBE, 0xA6, 0x3D, 0x64, 0x0B, 0x2F, 0x3C,
+ 0x50, 0x2B, 0x5D, 0xBE, 0x3D, 0xC3, 0xC5, 0x3C, 0x2A, 0x85, 0x8F, 0x3E,
+ 0xB2, 0xF6, 0x8A, 0x3D, 0x81, 0x41, 0xBE, 0xBD, 0x08, 0x33, 0x23, 0x3D,
+ 0x5F, 0x1E, 0x0F, 0xBE, 0xFC, 0xC0, 0xE2, 0x3E, 0xE4, 0x07, 0xE5, 0xBC,
+ 0x4E, 0x45, 0xBB, 0xBE, 0x77, 0xD6, 0x32, 0xBE, 0xB6, 0xF0, 0xA2, 0x3B,
+ 0x1D, 0x5F, 0x60, 0xBE, 0x87, 0xCD, 0xF7, 0x3D, 0xC1, 0x18, 0xEC, 0xBD,
+ 0x69, 0xF9, 0x48, 0x3D, 0x0B, 0x64, 0x71, 0x3E, 0xD2, 0xDB, 0x95, 0x3B,
+ 0x35, 0x94, 0xFA, 0xBB, 0xF9, 0xEA, 0x70, 0xBE, 0x8C, 0xC2, 0x04, 0x3D,
+ 0xD1, 0x01, 0xA0, 0x3D, 0x63, 0xC8, 0x9C, 0x3E, 0x0B, 0x3B, 0x80, 0x3E,
+ 0xF9, 0x8A, 0x09, 0x3C, 0xF8, 0x0D, 0xD0, 0x3C, 0x41, 0x1A, 0xBB, 0x3C,
+ 0x5F, 0x20, 0x6D, 0xBE, 0xB8, 0x29, 0x06, 0x3B, 0xF7, 0xEC, 0x1D, 0x3F,
+ 0xD6, 0x45, 0x08, 0xBE, 0x4D, 0x53, 0xA1, 0x3D, 0x4F, 0x7D, 0xE1, 0x3E,
+ 0x0D, 0xFF, 0xC1, 0x3E, 0x81, 0x1D, 0x88, 0xBF, 0x12, 0xA3, 0x19, 0xBF,
+ 0x16, 0xD3, 0x5D, 0xBE, 0xDA, 0xDC, 0xBD, 0x3E, 0x36, 0xCB, 0xBA, 0x3E,
+ 0x37, 0x2A, 0x91, 0x3E, 0x12, 0x39, 0x22, 0x3F, 0x9B, 0xDA, 0x7F, 0xBE,
+ 0x74, 0x32, 0x8D, 0x3F, 0x88, 0xE4, 0x7E, 0xBD, 0x1F, 0x4D, 0x53, 0x3F,
+ 0x1A, 0x83, 0xAC, 0xBF, 0xA8, 0xD7, 0x82, 0xBE, 0xBD, 0x90, 0xEF, 0x3E,
+ 0x17, 0x10, 0x86, 0x3E, 0x01, 0x2D, 0xD5, 0xBC, 0x5D, 0x7C, 0xF7, 0x3E,
+ 0xFF, 0xC8, 0x6D, 0xBD, 0x6D, 0x89, 0xB3, 0x3D, 0xBA, 0xA1, 0xB6, 0x3E,
+ 0x29, 0x43, 0x9C, 0xBE, 0x40, 0x46, 0xED, 0x3F, 0x6C, 0x3B, 0x0F, 0xBE,
+ 0xEA, 0xFB, 0x2F, 0xBE, 0x3E, 0x56, 0xCE, 0xBE, 0x3F, 0x16, 0x11, 0xBF,
+ 0xD0, 0xD3, 0x03, 0xBF, 0x5C, 0x4C, 0x02, 0xBE, 0xE9, 0xAB, 0xA0, 0xBF,
+ 0x41, 0x0D, 0x38, 0x3F, 0x64, 0x80, 0x24, 0x3F, 0x46, 0x59, 0x15, 0x3F,
+ 0xBD, 0xEA, 0x57, 0x3E, 0x9B, 0x27, 0x67, 0x3F, 0x19, 0x79, 0x0A, 0x3E,
+ 0x4D, 0x49, 0x58, 0xBD, 0x92, 0x8D, 0xC9, 0x3E, 0xDF, 0xB4, 0x07, 0x3F,
+ 0x8A, 0xDC, 0x20, 0xBE, 0xB4, 0xF5, 0x9D, 0x3E, 0x4A, 0x88, 0x16, 0x3F,
+ 0xF9, 0x30, 0x5F, 0xBC, 0x9D, 0xCB, 0x16, 0xBF, 0xE7, 0x1F, 0x28, 0xBE,
+ 0x0D, 0x81, 0x13, 0x40, 0x70, 0xC3, 0x14, 0x3F, 0xB1, 0x89, 0x80, 0xBE,
+ 0x1B, 0x5B, 0x24, 0x3A, 0xC1, 0x13, 0x4A, 0x3E, 0x54, 0x88, 0x45, 0x3A,
+ 0xD0, 0xA9, 0xAF, 0xBB, 0x9F, 0x83, 0xCE, 0x3D, 0x1A, 0x95, 0x86, 0x3E,
+ 0xC2, 0x5E, 0xC3, 0xBE, 0xDD, 0xE5, 0x66, 0x3F, 0xA2, 0x4B, 0xC9, 0xBE,
+ 0x96, 0x93, 0x96, 0x3E, 0x3F, 0xD0, 0xE2, 0x3D, 0x11, 0xB9, 0xF3, 0xBC,
+ 0x71, 0x8C, 0xD2, 0xBC, 0x1C, 0x6B, 0x74, 0x3C, 0x52, 0x5D, 0xAB, 0x3D,
+ 0x42, 0x38, 0xAF, 0xBD, 0x98, 0xCC, 0xC7, 0x3E, 0xB8, 0x7A, 0xD2, 0xBE,
+ 0x33, 0xA2, 0xF6, 0x3E, 0xCF, 0x9F, 0xC7, 0x3C, 0x97, 0x42, 0x7D, 0xBE,
+ 0x05, 0xA7, 0x83, 0x3E, 0x5E, 0x0C, 0x64, 0xBE, 0xB5, 0x74, 0x0E, 0xBE,
+ 0x9A, 0x26, 0x03, 0xBF, 0xBA, 0xDA, 0x0B, 0xBF, 0xDF, 0x0A, 0x42, 0xBE,
+ 0xC4, 0xD9, 0xBD, 0x3E, 0x8E, 0xDE, 0x96, 0xBF, 0x98, 0x59, 0x48, 0x3F,
+ 0xF3, 0xDD, 0xA9, 0x3E, 0x70, 0x56, 0xA2, 0x3F, 0x50, 0xF8, 0x39, 0xBE,
+ 0x30, 0x02, 0xAA, 0x3E, 0x6C, 0xB2, 0xC6, 0x3E, 0xD8, 0x12, 0x97, 0xBD,
+ 0x4B, 0xFD, 0xB4, 0x3E, 0x23, 0xC4, 0xA1, 0x3E, 0x69, 0xE0, 0x94, 0x3E,
+ 0x22, 0xF5, 0x43, 0xBF, 0xBF, 0x98, 0xA9, 0xBE, 0xFB, 0xC4, 0xBC, 0xBB,
+ 0x24, 0x75, 0xF7, 0x3F, 0xA3, 0xE4, 0x0C, 0x3D, 0x9D, 0xE9, 0x9C, 0x3E,
+ 0x4F, 0x10, 0xA3, 0xBE, 0x2B, 0x28, 0xCD, 0x3E, 0x93, 0x8D, 0x67, 0x3D,
+ 0x38, 0x92, 0x0E, 0x3E, 0x71, 0x4F, 0x7D, 0x3D, 0xAF, 0xA7, 0x79, 0xBE,
+ 0x7E, 0x92, 0xC9, 0xBC, 0x1F, 0x94, 0x31, 0x3D, 0x0B, 0x3C, 0x22, 0x3C,
+ 0x63, 0x23, 0xA7, 0xBD, 0xC5, 0xBD, 0x3E, 0xBC, 0x78, 0xF1, 0xA6, 0xBE,
+ 0xBF, 0xD4, 0xA2, 0x3D, 0x36, 0x04, 0x2A, 0xBD, 0x97, 0x04, 0x9F, 0x3D,
+ 0x62, 0x2B, 0xED, 0x3C, 0xE1, 0x3C, 0x5F, 0xBE, 0x51, 0xB5, 0x94, 0x3C,
+ 0x98, 0x2B, 0xB2, 0xBC, 0xD4, 0x3C, 0xDD, 0x3C, 0xBC, 0xDD, 0x20, 0x3E,
+ 0x39, 0x52, 0xA3, 0xBB, 0x14, 0x3E, 0x40, 0xBD, 0xC9, 0x34, 0xB2, 0xBD,
+ 0xB6, 0xB3, 0x6D, 0x3D, 0x2C, 0xD4, 0x17, 0x3D, 0x44, 0x96, 0x91, 0x3E,
+ 0xB3, 0x88, 0x3E, 0x3E, 0xFA, 0xDC, 0x31, 0x3C, 0x89, 0x74, 0xF1, 0x3C,
+ 0x72, 0x57, 0xDC, 0x3D, 0x57, 0xD6, 0xA1, 0x3E, 0x63, 0x09, 0x79, 0xBE,
+ 0x09, 0xF4, 0x82, 0x3D, 0x1F, 0x1B, 0x83, 0xBE, 0x50, 0xF8, 0xB3, 0x3D,
+ 0x01, 0xC0, 0xC4, 0x3E, 0x2F, 0x19, 0x64, 0xBE, 0x88, 0x04, 0x6C, 0x3D,
+ 0xE4, 0xA4, 0x13, 0xBE, 0x8D, 0xED, 0x84, 0x3D, 0xF3, 0x4D, 0xCE, 0xBC,
+ 0x12, 0x15, 0x51, 0x3E, 0xE8, 0x95, 0x0B, 0x3E, 0xF0, 0x9D, 0x98, 0x3C,
+ 0x6B, 0x3A, 0x5F, 0xBD, 0x39, 0xCE, 0x1A, 0xBD, 0x22, 0x91, 0xB9, 0x3E,
+ 0xBC, 0xE0, 0x3B, 0x3E, 0x45, 0xD3, 0x1B, 0xBC, 0x52, 0xF2, 0x06, 0xBE,
+ 0xB7, 0x2E, 0x0C, 0xBD, 0x8B, 0x0F, 0x48, 0xBE, 0xF0, 0x03, 0x13, 0x3D,
+ 0x3D, 0x29, 0xBD, 0x3B, 0xEC, 0x68, 0x56, 0xBD, 0xEA, 0xE6, 0x20, 0x3C,
+ 0xCD, 0x2E, 0xC2, 0x3C, 0xA2, 0xE1, 0xD9, 0x3D, 0x64, 0x92, 0x17, 0xBE,
+ 0xDE, 0xF6, 0x16, 0xBE, 0xAB, 0x20, 0x28, 0xBE, 0x7F, 0x01, 0x67, 0xBE,
+ 0x7E, 0xB0, 0xD3, 0x3D, 0xFE, 0x9F, 0x0A, 0xBE, 0x31, 0x13, 0xBC, 0x3B,
+ 0xDD, 0x93, 0x74, 0xBD, 0x7C, 0x4F, 0x8B, 0xBD, 0x68, 0xEB, 0xE2, 0x3E,
+ 0x75, 0x83, 0x18, 0x3E, 0xD1, 0x25, 0x52, 0x3D, 0x68, 0x2C, 0xD1, 0x3C,
+ 0x61, 0xCC, 0xD7, 0x3C, 0xE9, 0xDF, 0x80, 0x3C, 0xF2, 0x4A, 0x01, 0xBE,
+ 0xC4, 0x4F, 0xD4, 0xBD, 0xA5, 0x00, 0x82, 0x3D, 0x47, 0xC3, 0x83, 0xBC,
+ 0x06, 0x8D, 0x3C, 0xBD, 0xB5, 0x4F, 0x6C, 0xBE, 0x4E, 0x1A, 0x92, 0xBC,
+ 0x90, 0x66, 0x6A, 0x3D, 0xE3, 0x83, 0x7D, 0x3D, 0x16, 0x17, 0x1A, 0x3D,
+ 0x86, 0x24, 0xE3, 0x3C, 0x82, 0xA9, 0x05, 0x3D, 0x38, 0xC8, 0xA1, 0x3C,
+ 0x1E, 0x1C, 0x3C, 0xBD, 0x47, 0x9E, 0xB1, 0xBD, 0x3A, 0x9F, 0x36, 0xBE,
+ 0xC4, 0x75, 0x8C, 0x3E, 0x67, 0xDE, 0xA1, 0x3D, 0x2A, 0x73, 0xEF, 0xBC,
+ 0x2C, 0x05, 0x3A, 0x3D, 0x02, 0x8E, 0x03, 0x3E, 0x8E, 0xBC, 0xF1, 0x3E,
+ 0x36, 0x08, 0x05, 0x3E, 0x8D, 0x59, 0x2D, 0x3D, 0x68, 0xD0, 0xD9, 0xBC,
+ 0xDB, 0xED, 0x9C, 0xBD, 0x9C, 0x1B, 0x22, 0x3D, 0xB6, 0x12, 0xC8, 0xBC,
+ 0x85, 0x2A, 0x19, 0xBD, 0xAC, 0x8E, 0xDC, 0xBD, 0x87, 0xC4, 0xD0, 0xBC,
+ 0xC4, 0x72, 0x52, 0xBD, 0xE6, 0x8F, 0x55, 0xBD, 0x2C, 0x5D, 0xFE, 0x3D,
+ 0x72, 0xA5, 0xA6, 0xBD, 0x95, 0x55, 0x12, 0x3D, 0xFB, 0xBA, 0x57, 0x3D,
+ 0xE0, 0x96, 0x1A, 0x3E, 0x99, 0x14, 0x05, 0x3D, 0x03, 0xAC, 0x87, 0x3D,
+ 0xB0, 0x7E, 0x25, 0xBD, 0xE0, 0x1F, 0xB5, 0xBA, 0xFC, 0x58, 0x97, 0xBD,
+ 0xB4, 0x22, 0x13, 0xBD, 0xB4, 0xDC, 0x3E, 0x3D, 0xFC, 0x5D, 0x08, 0x3D,
+ 0x43, 0x56, 0x34, 0x3E, 0xD8, 0xB0, 0xE2, 0xBD, 0x68, 0x7D, 0x55, 0xBE,
+ 0x6B, 0x0F, 0xA5, 0x3D, 0xB1, 0x71, 0x8A, 0xBD, 0x87, 0x1E, 0x08, 0xBE,
+ 0x3E, 0x84, 0x34, 0xBE, 0x10, 0x13, 0xD0, 0xBE, 0x0C, 0x6D, 0x31, 0x3D,
+ 0x5E, 0x1F, 0x92, 0x3C, 0x08, 0x02, 0x0F, 0xBB, 0x0F, 0xF5, 0x7E, 0x3D,
+ 0xCA, 0x51, 0x87, 0x3B, 0x04, 0x17, 0xB4, 0x3D, 0x38, 0x34, 0x9E, 0xBD,
+ 0x6F, 0xE5, 0x2A, 0xBC, 0x44, 0x8C, 0xB0, 0x3D, 0xA7, 0x8A, 0x2F, 0x3E,
+ 0xE2, 0x37, 0x06, 0xBE, 0xAD, 0x7F, 0xCE, 0x3D, 0x4A, 0xE6, 0xB9, 0xBC,
+ 0x23, 0xF5, 0xCA, 0x3D, 0x5F, 0x9B, 0x64, 0x3D, 0x54, 0x6F, 0xB7, 0xBE,
+ 0x49, 0x95, 0x8B, 0x3E, 0x37, 0xDA, 0x43, 0xBD, 0xBE, 0xD7, 0x91, 0x3D,
+ 0xB5, 0xA3, 0xE3, 0x3C, 0xB3, 0xEE, 0x13, 0xBE, 0x32, 0xF8, 0xED, 0xBC,
+ 0x04, 0xD7, 0x61, 0x3B, 0xB9, 0x02, 0x9A, 0x3C, 0x90, 0xC4, 0x44, 0xBD,
+ 0xC4, 0x3F, 0x29, 0x3D, 0x3A, 0x3C, 0x46, 0x3E, 0xAE, 0xAE, 0xF4, 0xBD,
+ 0xEE, 0xF0, 0xB6, 0x3D, 0x52, 0x7C, 0xEC, 0x3C, 0xD0, 0xCB, 0x47, 0x3E,
+ 0x6C, 0x05, 0x2C, 0x3E, 0x9D, 0x1C, 0x9A, 0x3E, 0x39, 0xD5, 0xA3, 0xBD,
+ 0xEB, 0xF8, 0x16, 0xBF, 0x60, 0x1A, 0x7C, 0xBE, 0xC5, 0x9A, 0x9F, 0xBE,
+ 0x84, 0x33, 0x74, 0x3F, 0x5E, 0x18, 0x1D, 0x3E, 0x7A, 0x4C, 0x24, 0xBE,
+ 0x9D, 0xF2, 0xA6, 0x3D, 0x6D, 0xE3, 0x86, 0x3E, 0x3C, 0xAF, 0x07, 0x3E,
+ 0xA3, 0xC8, 0xB3, 0xBE, 0x12, 0xDA, 0xA2, 0xBF, 0x52, 0xA8, 0x91, 0x3D,
+ 0xC3, 0xEE, 0xFA, 0x3E, 0x71, 0x03, 0xEA, 0xBD, 0xB2, 0x2E, 0x90, 0xBF,
+ 0x29, 0x45, 0x74, 0xBF, 0x68, 0x44, 0x55, 0xBE, 0xD2, 0xA4, 0xCE, 0x3C,
+ 0x3F, 0x83, 0x24, 0xBF, 0x16, 0x69, 0x71, 0xBE, 0x44, 0x8E, 0xCC, 0x3C,
+ 0xA5, 0xE0, 0x56, 0xBE, 0xB4, 0x54, 0xA1, 0x3F, 0xAB, 0x2B, 0x32, 0xBE,
+ 0xE5, 0xCE, 0x90, 0x3F, 0xB3, 0x39, 0x81, 0x3E, 0xC6, 0xAE, 0x2D, 0x3E,
+ 0x82, 0xAE, 0xA6, 0xBF, 0x1C, 0xD0, 0xC8, 0xBD, 0xB2, 0xB2, 0xCF, 0xBE,
+ 0x21, 0x32, 0x16, 0xBF, 0x2E, 0x22, 0x70, 0xBE, 0x4B, 0x0D, 0xD1, 0x3D,
+ 0xAA, 0x88, 0x85, 0x3D, 0xC2, 0x00, 0x23, 0xBE, 0x56, 0x04, 0x40, 0x3C,
+ 0x07, 0xEB, 0xA1, 0x3B, 0xC2, 0x78, 0x25, 0x3E, 0x62, 0xE2, 0x0B, 0x3D,
+ 0x5D, 0xE5, 0x03, 0x3E, 0x6C, 0xF3, 0xCE, 0xBB, 0x67, 0x5C, 0xAE, 0xBD,
+ 0x67, 0x4E, 0x5E, 0x3D, 0xF0, 0xCF, 0x1E, 0x3D, 0xF6, 0xDB, 0x0A, 0xB8,
+ 0xD2, 0xEB, 0x55, 0x3A, 0xB1, 0x4F, 0x8B, 0x3D, 0xAE, 0xBA, 0xBD, 0xBD,
+ 0x5B, 0xA1, 0x09, 0x3E, 0xD1, 0xCE, 0x1D, 0x3B, 0x93, 0xD8, 0x86, 0x3B,
+ 0x2C, 0xBC, 0x6D, 0x3C, 0xCD, 0x4F, 0xBE, 0xBC, 0x86, 0x46, 0x79, 0x3D,
+ 0x61, 0xA1, 0x07, 0xBE, 0x83, 0xF5, 0xC6, 0x3D, 0x3C, 0xAE, 0x0E, 0x3E,
+ 0x1C, 0xBC, 0xBD, 0xBD, 0x69, 0x17, 0x07, 0x3E, 0xEE, 0x63, 0xEE, 0x3D,
+ 0x77, 0xD9, 0x3E, 0x3E, 0xF7, 0xCE, 0x25, 0x3E, 0xB1, 0xE6, 0x4D, 0x3E,
+ 0x56, 0x25, 0xB7, 0xBD, 0x03, 0xC5, 0x08, 0xBD, 0x78, 0xAB, 0x74, 0xBD,
+ 0x7A, 0xC8, 0x07, 0x3E, 0xC5, 0x79, 0xD2, 0xBD, 0xB1, 0xE2, 0x3C, 0xBC,
+ 0x8D, 0xE8, 0x4C, 0x3D, 0xEB, 0x8D, 0x1D, 0xBD, 0x5D, 0xFA, 0x44, 0xBD,
+ 0xA0, 0x35, 0xA8, 0x3D, 0x35, 0x65, 0xE7, 0xBC, 0x03, 0x77, 0x45, 0x3B,
+ 0x55, 0x6C, 0x6C, 0xBC, 0x3C, 0xDE, 0xFB, 0x3B, 0x3B, 0x7F, 0x16, 0xBD,
+ 0x20, 0x2A, 0xF5, 0xBD, 0xB3, 0x2C, 0xAE, 0xBC, 0xE4, 0x1B, 0xAF, 0xBC,
+ 0x3C, 0x01, 0x5E, 0xBC, 0x86, 0xCF, 0x64, 0x3C, 0xE2, 0xB8, 0x04, 0xBD,
+ 0x10, 0x41, 0x11, 0x3D, 0xBC, 0xEE, 0xFE, 0xBC, 0x57, 0x85, 0x85, 0x3D,
+ 0x25, 0x66, 0x1F, 0xBD, 0xFA, 0x78, 0x6C, 0xBD, 0x36, 0xFE, 0x54, 0x3D,
+ 0x43, 0x33, 0x11, 0xBD, 0x4E, 0x5D, 0x9D, 0xBC, 0x39, 0x6F, 0xE4, 0xBD,
+ 0x76, 0x27, 0x79, 0xBE, 0x13, 0x3E, 0xCE, 0xBD, 0xDE, 0xD9, 0x0B, 0x3B,
+ 0xE3, 0x0C, 0x4C, 0xBF, 0x5B, 0x17, 0x39, 0x3E, 0xD5, 0x30, 0xE3, 0x3E,
+ 0xEC, 0x69, 0xC9, 0x3F, 0x28, 0x5F, 0x5A, 0x3E, 0x09, 0x20, 0xBC, 0xBD,
+ 0x1D, 0x26, 0x0F, 0xBF, 0x68, 0xB0, 0xEE, 0xBE, 0x42, 0x93, 0xEF, 0xBD,
+ 0xC2, 0xCE, 0x28, 0xBE, 0x57, 0x7C, 0x46, 0xBF, 0x54, 0xF0, 0x0D, 0x3D,
+ 0xB4, 0xA8, 0x3D, 0x3F, 0x19, 0x5E, 0xC4, 0x3F, 0x5B, 0xD1, 0xF0, 0x3C,
+ 0xBA, 0x4C, 0xF8, 0x3E, 0x48, 0xF9, 0x23, 0xBF, 0x88, 0xFA, 0x30, 0x3C,
+ 0xC0, 0x7F, 0x49, 0xBF, 0x24, 0xB7, 0x94, 0xBF, 0x8E, 0xB4, 0xA3, 0xBD,
+ 0xC2, 0xAE, 0x59, 0xBE, 0x94, 0xEB, 0x81, 0x3F, 0xAC, 0xB8, 0x86, 0xBF,
+ 0x45, 0x88, 0xE5, 0x3E, 0x50, 0x83, 0x01, 0xBD, 0x1B, 0xE9, 0x31, 0x3B,
+ 0x9A, 0xBC, 0x1E, 0xBF, 0x8A, 0xC4, 0x9D, 0x3E, 0xA2, 0x9E, 0xA1, 0x3E,
+ 0xDE, 0xA5, 0xAB, 0x3D, 0x70, 0x60, 0xBB, 0xBE, 0x1C, 0xD5, 0x81, 0x3E,
+ 0x83, 0x49, 0xD6, 0xBE, 0x5C, 0xFC, 0x49, 0x3F, 0xA6, 0xAB, 0xDD, 0xBC,
+ 0x7D, 0x94, 0x20, 0xBD, 0x02, 0x6A, 0xC3, 0x3D, 0x05, 0x53, 0x43, 0x3E,
+ 0x9C, 0xD1, 0x9A, 0x3E, 0x20, 0x92, 0xB2, 0xBC, 0xE9, 0x90, 0xB9, 0xBE,
+ 0x7E, 0xD8, 0xA2, 0xBC, 0x87, 0x33, 0x00, 0xBC, 0xFC, 0x39, 0x2A, 0xBD,
+ 0x97, 0xAC, 0xDF, 0xBD, 0x2E, 0x6A, 0xAC, 0xBE, 0x1F, 0xDD, 0xAE, 0xBD,
+ 0xD2, 0x7A, 0xEE, 0x3C, 0x45, 0x15, 0x71, 0xBC, 0x0B, 0x0B, 0xBE, 0x3E,
+ 0xEC, 0x51, 0xE9, 0xBE, 0x1F, 0x88, 0x7F, 0x3C, 0x25, 0x9C, 0x79, 0xBD,
+ 0x7F, 0xD5, 0xC0, 0xBD, 0xA6, 0x2C, 0x3F, 0xBE, 0x10, 0x46, 0xF0, 0xBD,
+ 0x8D, 0xCF, 0xEC, 0x3D, 0x79, 0x73, 0xE1, 0xBB, 0x37, 0xF0, 0x0C, 0xBF,
+ 0xB5, 0x1A, 0x1E, 0x3E, 0x26, 0xE6, 0xFE, 0x3D, 0x47, 0x1B, 0x0F, 0x3E,
+ 0x77, 0x56, 0xA9, 0xBD, 0x4E, 0xC7, 0xF3, 0x3C, 0xBC, 0x69, 0x38, 0x3E,
+ 0x6E, 0x52, 0x34, 0xBE, 0xE1, 0x3F, 0xA6, 0x3E, 0x73, 0x1B, 0x8D, 0x3D,
+ 0x28, 0x69, 0x30, 0xBE, 0xA5, 0x03, 0xC1, 0x3E, 0x59, 0x05, 0xE8, 0x3E,
+ 0x61, 0xE3, 0x15, 0xBE, 0x7C, 0xBE, 0x1F, 0x3F, 0x2F, 0xE7, 0xC3, 0xBB,
+ 0xC2, 0xD3, 0xB0, 0x3D, 0x27, 0x81, 0xC8, 0xBE, 0xE6, 0xD4, 0x26, 0x3E,
+ 0xD8, 0xAB, 0x26, 0x3E, 0x8A, 0xF0, 0x0E, 0x3E, 0x90, 0x7E, 0x8F, 0xBE,
+ 0xCF, 0xD8, 0xD2, 0xB9, 0xFC, 0xE8, 0x36, 0x3E, 0x48, 0xB8, 0x1E, 0xBE,
+ 0x8F, 0xFF, 0x4E, 0xBD, 0xA7, 0x76, 0x48, 0x3D, 0xE1, 0x5D, 0x76, 0xBE,
+ 0x5E, 0x27, 0x3B, 0xBE, 0x87, 0xB8, 0x96, 0x3D, 0xE5, 0x35, 0x50, 0xBE,
+ 0xE1, 0x32, 0x30, 0x3D, 0xB8, 0xA3, 0x91, 0xBE, 0x27, 0xAD, 0xC3, 0x3D,
+ 0xD7, 0xB3, 0x0C, 0x3E, 0xBA, 0xA5, 0xE4, 0x3E, 0x37, 0xEA, 0x14, 0x3E,
+ 0xB8, 0xE6, 0x4F, 0xBE, 0x1E, 0xD0, 0x1D, 0xBF, 0x1F, 0x8A, 0x28, 0xBE,
+ 0x99, 0xD2, 0x7E, 0x3F, 0x06, 0x37, 0xE4, 0x3D, 0x49, 0xCD, 0x27, 0x3D,
+ 0x79, 0x16, 0xB4, 0xBE, 0xC3, 0xA5, 0x2D, 0xBE, 0xE9, 0xCC, 0x65, 0x3D,
+ 0x03, 0xEB, 0x35, 0xBE, 0x1C, 0x42, 0x63, 0xBE, 0xF2, 0x42, 0x4D, 0xBD,
+ 0x75, 0x81, 0x16, 0xBF, 0x90, 0x66, 0x9E, 0xBE, 0xAC, 0xFE, 0x8B, 0x3F,
+ 0x06, 0x1A, 0xA5, 0xBE, 0xDD, 0x98, 0x25, 0x3F, 0xAA, 0xD6, 0x20, 0x3D,
+ 0xBA, 0x9F, 0x27, 0xBC, 0xC7, 0x53, 0x70, 0xBE, 0x70, 0x7F, 0xAF, 0x3D,
+ 0x3A, 0x24, 0x31, 0xBD, 0xD8, 0x2D, 0x4F, 0xBE, 0x85, 0xFD, 0xD0, 0xBD,
+ 0x0A, 0xEC, 0xA7, 0xBB, 0xD1, 0xBE, 0x99, 0x3C, 0x78, 0xE9, 0x20, 0x3E,
+ 0x25, 0x0D, 0x06, 0xBF, 0x32, 0xD3, 0x20, 0xBE, 0xC7, 0xF5, 0x92, 0x3F,
+ 0x4C, 0x04, 0x5B, 0x3F, 0x9E, 0x95, 0xD3, 0xBD, 0x4B, 0xB1, 0x5C, 0x3D,
+ 0xEC, 0x5F, 0xF7, 0xBD, 0x34, 0x43, 0xF9, 0x3E, 0x8E, 0xCD, 0xB8, 0x3F,
+ 0xB1, 0x02, 0x02, 0x3F, 0x06, 0x69, 0x95, 0x3E, 0x45, 0xB0, 0x12, 0xBE,
+ 0xBB, 0xF7, 0x77, 0xBD, 0xA6, 0x10, 0xC6, 0x3E, 0x9D, 0xB7, 0xA8, 0xBD,
+ 0xD3, 0xBD, 0x3B, 0x3F, 0x65, 0xED, 0xBA, 0x3B, 0x38, 0x67, 0x20, 0xBE,
+ 0xB6, 0xA3, 0xC8, 0xBE, 0xD0, 0xB8, 0x3E, 0xBF, 0xE8, 0xF5, 0x32, 0xBF,
+ 0x14, 0xDD, 0x32, 0x3F, 0x72, 0xCE, 0xB4, 0x3D, 0xB7, 0x22, 0xF3, 0xBC,
+ 0xD4, 0xBC, 0xA5, 0xBE, 0xA2, 0x15, 0x4F, 0x3D, 0xF5, 0x1D, 0x53, 0xBD,
+ 0xCE, 0x8F, 0xAB, 0xBF, 0x34, 0xB5, 0x3E, 0xBF, 0x1C, 0xB1, 0xB0, 0xBE,
+ 0x59, 0x80, 0x58, 0xBE, 0xA3, 0x27, 0x90, 0xBE, 0x9A, 0x0A, 0x2F, 0xBF,
+ 0x37, 0xAE, 0x6E, 0x3D, 0x03, 0xA5, 0xD0, 0xBE, 0x4E, 0xE1, 0x7A, 0xBF,
+ 0xC1, 0x59, 0x8C, 0x3D, 0x29, 0xF9, 0x77, 0xBE, 0x4A, 0x7A, 0x4B, 0x3E,
+ 0x8D, 0xEE, 0x79, 0x3E, 0x78, 0x9F, 0x5C, 0x3D, 0xFE, 0xC4, 0xAF, 0xBC,
+ 0x2D, 0xAB, 0x01, 0x3E, 0x1A, 0x9C, 0xE0, 0xBE, 0x7E, 0x01, 0xA3, 0xBE,
+ 0x1A, 0x1F, 0xD7, 0xBC, 0x7A, 0xC5, 0x2A, 0xBE, 0xE6, 0x03, 0x07, 0x3D,
+ 0x27, 0xD3, 0xBD, 0x3C, 0x3B, 0xAC, 0x12, 0x3D, 0xC5, 0xF6, 0x9C, 0x3D,
+ 0x6F, 0xE9, 0xC7, 0xBE, 0x01, 0xB7, 0xEE, 0x3E, 0xC3, 0x17, 0x5A, 0x3E,
+ 0x2E, 0x39, 0x0C, 0x3C, 0xAA, 0xB5, 0x9A, 0xBD, 0x20, 0x63, 0x72, 0xBE,
+ 0xA4, 0xE4, 0xEE, 0x3C, 0x42, 0x63, 0x55, 0xBE, 0x84, 0xD7, 0xDC, 0x3D,
+ 0x2C, 0x0C, 0xF5, 0xBD, 0xAB, 0xD8, 0x2E, 0xBF, 0xBE, 0x06, 0x09, 0x3D,
+ 0xB0, 0x12, 0xBC, 0xBD, 0x45, 0x29, 0xC0, 0x3D, 0x36, 0xCC, 0x11, 0x3E,
+ 0xD4, 0x3B, 0x7C, 0xBE, 0x0D, 0xD0, 0x5A, 0x3E, 0xAD, 0x6B, 0x48, 0xBE,
+ 0x1A, 0xFD, 0x11, 0x3E, 0x7D, 0xB3, 0xCE, 0xBC, 0xD7, 0x31, 0x9B, 0xBE,
+ 0x26, 0x32, 0x6E, 0xBE, 0x92, 0x09, 0x4E, 0xBD, 0x1B, 0x32, 0x7C, 0x3D,
+ 0xBD, 0x15, 0x53, 0xBC, 0x07, 0x28, 0xEE, 0xBB, 0x21, 0xAF, 0x9F, 0xBC,
+ 0x04, 0xF1, 0x20, 0xBE, 0xE8, 0xA2, 0x57, 0x3D, 0x1E, 0xEB, 0x9E, 0x3C,
+ 0x4A, 0x51, 0x56, 0xBC, 0x22, 0x50, 0x5F, 0xBD, 0xE5, 0x82, 0xE9, 0xBD,
+ 0xA8, 0xB8, 0x98, 0xBD, 0x80, 0xA6, 0x5B, 0xBD, 0xA8, 0xE1, 0x17, 0xBC,
+ 0xBA, 0x1A, 0x14, 0x3E, 0x08, 0xB9, 0x8C, 0xBD, 0x85, 0xC9, 0x00, 0xBD,
+ 0xED, 0x69, 0x3E, 0x3C, 0x95, 0x8B, 0xDC, 0x3D, 0xA9, 0x19, 0xA0, 0xBC,
+ 0x32, 0xBC, 0x0D, 0x3E, 0xA7, 0xBB, 0x60, 0x3D, 0x54, 0x9D, 0xBB, 0xBC,
+ 0xB0, 0x0B, 0xBD, 0xBD, 0xF8, 0x03, 0x1B, 0xBD, 0xAF, 0x54, 0xC4, 0x3E,
+ 0x0F, 0x38, 0xF2, 0x3C, 0xB2, 0xED, 0x48, 0xBD, 0xA4, 0x3C, 0xF4, 0x3D,
+ 0xCF, 0xA5, 0x9B, 0xBC, 0x3F, 0xAB, 0x2B, 0xBE, 0x63, 0x5E, 0xFF, 0xBD,
+ 0xDE, 0x9A, 0x4B, 0xBC, 0x4F, 0x18, 0xFB, 0x3B, 0x08, 0x31, 0xBF, 0x39,
+ 0x41, 0x32, 0x29, 0x3D, 0xD7, 0xCA, 0x1F, 0x3D, 0x33, 0xDC, 0xB9, 0xBD,
+ 0xBD, 0xEA, 0x1D, 0x3D, 0xB2, 0x16, 0xF3, 0xBC, 0x78, 0x14, 0x64, 0xBD,
+ 0xC7, 0xCB, 0x4B, 0xBD, 0x44, 0xBE, 0x0F, 0xBE, 0x92, 0x10, 0x06, 0xBD,
+ 0xFF, 0x74, 0x0F, 0xBD, 0xCA, 0xB2, 0x8F, 0xBB, 0x54, 0x24, 0x93, 0x3D,
+ 0x73, 0x25, 0x17, 0x3C, 0x35, 0x3F, 0xFE, 0xBC, 0x03, 0xF7, 0x81, 0xBC,
+ 0xE5, 0x05, 0xD0, 0xBC, 0x24, 0xB6, 0x1B, 0x3D, 0x0C, 0xF9, 0x89, 0x3D,
+ 0x06, 0x5C, 0x9A, 0x3C, 0xDE, 0x46, 0x0B, 0x3D, 0x5C, 0xCE, 0x4E, 0xBD,
+ 0xE6, 0xB1, 0xC2, 0x3C, 0x17, 0x60, 0x6D, 0x3E, 0xF3, 0x4E, 0xFD, 0xBC,
+ 0xD8, 0x9C, 0x07, 0xBD, 0xB3, 0xF7, 0x7E, 0x3A, 0xB8, 0xEE, 0x9D, 0x3C,
+ 0x39, 0x7E, 0x87, 0x3E, 0x1B, 0x5C, 0x08, 0x3E, 0x66, 0x74, 0xDC, 0x3B,
+ 0x10, 0x27, 0xDC, 0xBD, 0xA9, 0xDA, 0x0C, 0x3A, 0xDE, 0xEC, 0x81, 0xBC,
+ 0x45, 0xA3, 0x84, 0xBD, 0x86, 0x38, 0x2B, 0x3E, 0x93, 0x62, 0x35, 0xBD,
+ 0xF6, 0x6B, 0xA9, 0xBC, 0x5D, 0x4E, 0x57, 0xBD, 0xAF, 0xEE, 0x9F, 0x3E,
+ 0x07, 0x0C, 0x0B, 0xBD, 0x6B, 0x79, 0xB0, 0x3D, 0x22, 0xFB, 0x4B, 0xBD,
+ 0xFA, 0xA8, 0x27, 0x3C, 0x5A, 0x6D, 0x92, 0xBC, 0x00, 0x09, 0xBA, 0xBC,
+ 0xFA, 0xE2, 0xDB, 0x3C, 0x48, 0x5D, 0x74, 0xBB, 0x11, 0xF0, 0xBD, 0x3C,
+ 0x7D, 0xBF, 0x8C, 0xBD, 0x42, 0x84, 0x08, 0xBE, 0x12, 0x86, 0x49, 0xBD,
+ 0xCC, 0x85, 0x1D, 0xBD, 0x92, 0x90, 0x7A, 0xBD, 0x95, 0x66, 0xD3, 0xBD,
+ 0xEC, 0x24, 0xFF, 0xBD, 0xBB, 0x46, 0x34, 0xBD, 0x34, 0x0D, 0x38, 0x3D,
+ 0xA3, 0x30, 0xA4, 0x3C, 0x1A, 0x9F, 0x94, 0x3D, 0x3C, 0x37, 0x9D, 0x3E,
+ 0x58, 0x4F, 0x83, 0x3C, 0x0F, 0x21, 0x3B, 0x3D, 0x6E, 0x2A, 0x64, 0xBD,
+ 0xC9, 0x99, 0x3E, 0x3D, 0xB2, 0x8E, 0xCC, 0xBC, 0xD4, 0xA3, 0xBC, 0x3C,
+ 0xE7, 0xD0, 0x99, 0x3C, 0x1A, 0x7F, 0xD5, 0x3A, 0x5B, 0x7F, 0xC3, 0xBC,
+ 0x65, 0x4E, 0xDB, 0xBD, 0x6E, 0x21, 0xFA, 0x3D, 0xBF, 0x1A, 0x49, 0xBD,
+ 0x53, 0xC1, 0x1D, 0x3D, 0xA2, 0xAC, 0x8B, 0xBC, 0x74, 0xF1, 0x9B, 0xBC,
+ 0x8F, 0x00, 0xCA, 0x3D, 0xBC, 0x6F, 0x8D, 0x3C, 0x17, 0x2E, 0xA3, 0xB9,
+ 0x12, 0x00, 0x3A, 0xBD, 0xC8, 0x33, 0x01, 0x3C, 0xC2, 0x47, 0x8C, 0xBD,
+ 0xF1, 0x25, 0x9A, 0x3D, 0x2D, 0xB4, 0x2F, 0x3D, 0xD4, 0x14, 0x84, 0xBD,
+ 0x1E, 0x4E, 0x62, 0x3C, 0x0A, 0x94, 0x53, 0xBD, 0xCB, 0x77, 0x0D, 0x3F,
+ 0x38, 0x6B, 0xF5, 0xBD, 0x1F, 0x94, 0x68, 0x3D, 0x0E, 0x5A, 0x65, 0xBE,
+ 0xE1, 0xD5, 0xA1, 0xBD, 0x2B, 0xEA, 0x65, 0x3E, 0x72, 0xC5, 0xD0, 0xBB,
+ 0x32, 0xD9, 0x6E, 0xBD, 0x61, 0x88, 0x3A, 0x3C, 0xED, 0xBC, 0x55, 0xBE,
+ 0xCD, 0x1B, 0x1C, 0x3E, 0xDC, 0xA4, 0xFA, 0xBB, 0xF1, 0x5A, 0xBA, 0xBE,
+ 0x28, 0x34, 0x61, 0xBE, 0xA4, 0xA5, 0xCA, 0xBC, 0xE7, 0xEB, 0x39, 0x3D,
+ 0xBD, 0x49, 0xF3, 0x3E, 0x94, 0x55, 0x97, 0xBE, 0x85, 0x9D, 0x39, 0xBE,
+ 0xFE, 0xF3, 0x09, 0xBE, 0x27, 0x73, 0xF7, 0xBC, 0x1D, 0xDB, 0x5B, 0xBE,
+ 0x70, 0x9F, 0x16, 0xBE, 0xCC, 0xBB, 0x7A, 0x3C, 0xE1, 0xD6, 0x56, 0x3B,
+ 0xF6, 0x18, 0xFC, 0x3E, 0x74, 0x03, 0x4B, 0xBD, 0xC2, 0x6E, 0x44, 0x3E,
+ 0x54, 0x31, 0x77, 0x3D, 0x1C, 0xAF, 0x75, 0x3C, 0x59, 0x10, 0x06, 0x3F,
+ 0x43, 0xE9, 0x4D, 0x3C, 0x76, 0x30, 0xBD, 0x3E, 0x57, 0xD0, 0xA7, 0x3D,
+ 0xF7, 0x79, 0x6A, 0xBC, 0x95, 0xDB, 0x1A, 0x3F, 0xD6, 0x24, 0x39, 0xBF,
+ 0xD4, 0x01, 0x0D, 0x3D, 0xA3, 0x6B, 0x90, 0x3C, 0x58, 0x6C, 0x09, 0xBB,
+ 0xF4, 0x23, 0xFD, 0xBD, 0x2C, 0x71, 0x1B, 0x3E, 0xD9, 0x83, 0xC6, 0x3B,
+ 0x8B, 0x7B, 0x01, 0xBE, 0xF6, 0x5F, 0x53, 0x3E, 0xF8, 0xF6, 0x8E, 0xBE,
+ 0xF4, 0x3F, 0x83, 0xBC, 0x46, 0x67, 0xE1, 0xBC, 0xDD, 0x2E, 0x90, 0x3E,
+ 0xB7, 0xC4, 0xC8, 0xBE, 0x97, 0x37, 0xB4, 0x3E, 0x2C, 0x5C, 0x88, 0xBE,
+ 0xB0, 0xAA, 0x07, 0xBD, 0x21, 0x45, 0x51, 0x3F, 0xC5, 0x06, 0xD8, 0x3E,
+ 0x97, 0xBE, 0x50, 0x3B, 0x6D, 0xE1, 0xD2, 0x3C, 0x40, 0x7E, 0x8C, 0xBF,
+ 0xBA, 0xF4, 0x8C, 0x3E, 0xA7, 0x0F, 0x6D, 0xBE, 0x8D, 0x06, 0xDE, 0x3D,
+ 0x7B, 0xC2, 0x95, 0x3D, 0x15, 0xA0, 0xA9, 0x3F, 0xDD, 0xC9, 0x86, 0x3D,
+ 0xAC, 0xC8, 0x87, 0x3F, 0xA0, 0x45, 0x5E, 0x3D, 0x19, 0x94, 0x87, 0x3D,
+ 0x1D, 0xB6, 0xA3, 0xBD, 0x37, 0x83, 0x7B, 0x3F, 0x1E, 0xB7, 0x48, 0xBE,
+ 0x21, 0x73, 0xBB, 0x3E, 0xCC, 0x64, 0x7F, 0x3F, 0x95, 0xA8, 0xF4, 0x3E,
+ 0xA8, 0xBC, 0x15, 0x3F, 0x22, 0x66, 0x2A, 0x3F, 0x25, 0x3D, 0x93, 0xBE,
+ 0xE0, 0xE8, 0x0C, 0xBD, 0x5A, 0xC2, 0xE7, 0x3D, 0x44, 0x42, 0x93, 0x3D,
+ 0x6A, 0xF4, 0xB1, 0xBE, 0xC3, 0x25, 0x1B, 0xC0, 0x29, 0xF0, 0x75, 0xBF,
+ 0x26, 0xD8, 0x84, 0xBE, 0xDF, 0xB6, 0x21, 0xBF, 0xE3, 0xDB, 0x0E, 0xBE,
+ 0xB3, 0x09, 0xAE, 0xBF, 0xCD, 0x97, 0x34, 0x3F, 0xAA, 0x9F, 0x7F, 0xBE,
+ 0xC0, 0x88, 0x95, 0x3C, 0x66, 0x44, 0x07, 0x3E, 0x65, 0x0D, 0xFD, 0xBD,
+ 0x2F, 0xA6, 0x5C, 0x3F, 0x1A, 0xEF, 0x05, 0xBF, 0xBC, 0x32, 0xE8, 0xBE,
+ 0x07, 0x93, 0x1D, 0xBF, 0xAD, 0x5E, 0x29, 0xBF, 0x4C, 0x8B, 0x86, 0x3D,
+ 0x9C, 0x01, 0xDA, 0x3E, 0xD2, 0xAC, 0xCC, 0xBE, 0x0B, 0x69, 0xF3, 0xBD,
+ 0xE4, 0x6F, 0xBE, 0x3C, 0x37, 0x6B, 0xA5, 0x3D, 0xC8, 0xC1, 0xB7, 0x3D,
+ 0x7E, 0xA8, 0x60, 0x3C, 0x87, 0x3F, 0x42, 0xBC, 0x33, 0xCD, 0xA3, 0xBC,
+ 0x4E, 0x89, 0x87, 0xBD, 0xD6, 0x8B, 0x0E, 0x3C, 0x28, 0xC1, 0x9C, 0x3D,
+ 0x69, 0x60, 0x6D, 0xBD, 0x97, 0xD9, 0xE3, 0xBC, 0x7E, 0xFE, 0xE7, 0x3A,
+ 0x65, 0xBD, 0x26, 0x3E, 0xF9, 0x97, 0x66, 0xBC, 0xB0, 0x07, 0x8F, 0x3D,
+ 0x41, 0x28, 0xBE, 0xBC, 0x1E, 0xAE, 0x60, 0x3C, 0x17, 0xB6, 0x15, 0xBD,
+ 0xCF, 0xB1, 0x80, 0xBB, 0x04, 0xE0, 0xEE, 0x3C, 0x37, 0x99, 0xA3, 0xBC,
+ 0x1A, 0x57, 0x9E, 0x3D, 0x8D, 0xED, 0x4C, 0xBD, 0x0A, 0x8D, 0xEF, 0xBD,
+ 0x7F, 0x14, 0x7A, 0x3D, 0x58, 0xFF, 0x3D, 0xBD, 0x21, 0x5E, 0xF9, 0xBB,
+ 0x3E, 0x8A, 0xBE, 0xBC, 0xDB, 0x2A, 0xC9, 0xBE, 0x9C, 0x91, 0xD2, 0xBD,
+ 0x5B, 0x13, 0x78, 0x3C, 0xFE, 0xF9, 0x20, 0x3E, 0x6F, 0x3E, 0x9A, 0xBD,
+ 0xE0, 0xEC, 0xAD, 0x3E, 0xEF, 0x3E, 0x9D, 0x3E, 0xD1, 0x07, 0x30, 0xBC,
+ 0xFF, 0xC7, 0x85, 0x3C, 0x44, 0xDE, 0x31, 0xBD, 0xC1, 0xE8, 0x43, 0xBE,
+ 0x92, 0x7B, 0x08, 0xBD, 0x51, 0xC6, 0xB4, 0xBE, 0xAA, 0xE6, 0x9E, 0x3D,
+ 0xDC, 0x46, 0x69, 0xBC, 0x9C, 0xB6, 0x95, 0x3D, 0x11, 0x70, 0x7D, 0x3E,
+ 0xAF, 0x7B, 0x7A, 0xBE, 0xC9, 0xCC, 0x86, 0xBE, 0xC6, 0x4B, 0x3B, 0xBE,
+ 0x71, 0x2A, 0x56, 0xBC, 0x75, 0x66, 0x85, 0x3E, 0x59, 0xF3, 0x01, 0xBD,
+ 0x28, 0x51, 0x16, 0xBD, 0xA5, 0xAF, 0x8B, 0x3C, 0xBC, 0x5F, 0x26, 0xBE,
+ 0xEF, 0xB5, 0x75, 0xBD, 0x44, 0x81, 0x62, 0xBE, 0xF5, 0xA7, 0x33, 0x3D,
+ 0xEE, 0xE7, 0x7D, 0xBD, 0x92, 0x61, 0xAA, 0xBC, 0x71, 0xBD, 0x8E, 0x3D,
+ 0xE1, 0xE5, 0x45, 0xBF, 0x51, 0x68, 0xA7, 0x3D, 0x68, 0x0F, 0x0B, 0xBD,
+ 0xD6, 0xB0, 0xDF, 0xBD, 0x02, 0x56, 0x30, 0xBE, 0x3A, 0x62, 0xC2, 0x3E,
+ 0xF8, 0x94, 0x85, 0xBE, 0xB2, 0x74, 0x98, 0x3E, 0xB8, 0x55, 0xA8, 0xBE,
+ 0x31, 0x92, 0xC2, 0xBE, 0xBC, 0xD9, 0x7E, 0x3E, 0x0E, 0xBA, 0x8C, 0xBD,
+ 0x99, 0xD6, 0x04, 0x3E, 0xDD, 0x2A, 0xF5, 0xBE, 0xBD, 0xFA, 0xCF, 0x3E,
+ 0x90, 0x0E, 0xF4, 0xBD, 0xB9, 0x7A, 0x6F, 0x3F, 0xAD, 0xCE, 0x84, 0x3D,
+ 0x1B, 0xCD, 0x51, 0xBE, 0x04, 0xE4, 0x60, 0xBF, 0x93, 0x6B, 0xB5, 0x3E,
+ 0xEC, 0x27, 0xD3, 0x3C, 0xD6, 0xA7, 0x73, 0x3D, 0xEB, 0x1B, 0x1C, 0xBD,
+ 0xEA, 0x74, 0x24, 0x3E, 0x5F, 0x5D, 0x34, 0x3F, 0xE8, 0xE1, 0x0F, 0xBF,
+ 0x5C, 0x39, 0x44, 0xBE, 0x8F, 0x2E, 0x3E, 0x3D, 0xFF, 0xBC, 0xDF, 0x3E,
+ 0x9E, 0xA0, 0x14, 0xBF, 0x2A, 0x8F, 0x69, 0x3F, 0x4E, 0x7A, 0xAD, 0x3E,
+ 0xBC, 0x83, 0x06, 0xBF, 0x2C, 0x52, 0x33, 0xBE, 0x98, 0xE4, 0xDC, 0xBD,
+ 0xAB, 0x60, 0xDA, 0x3D, 0xEA, 0x91, 0xA1, 0xBD, 0x8E, 0xEB, 0x4C, 0x3B,
+ 0xBE, 0xAE, 0x85, 0xBD, 0x11, 0x96, 0xBA, 0xBD, 0x8C, 0x28, 0x24, 0xBD,
+ 0xEC, 0xFB, 0x49, 0xBD, 0x3A, 0x0D, 0xCF, 0xBD, 0x4E, 0xEE, 0xCB, 0x3D,
+ 0x80, 0xE3, 0xD6, 0xBD, 0x0A, 0x7A, 0x8F, 0x3B, 0x76, 0x4C, 0xA6, 0x3D,
+ 0x24, 0xE0, 0x22, 0x3E, 0x09, 0x42, 0x64, 0x3D, 0xD1, 0x76, 0xB9, 0x3D,
+ 0x19, 0x48, 0x63, 0xBD, 0x0D, 0x7C, 0x61, 0x3C, 0xA3, 0xE1, 0xEF, 0xBD,
+ 0x5F, 0xAC, 0x0E, 0xBD, 0xFB, 0x04, 0x17, 0x3D, 0x51, 0x5A, 0x84, 0xBD,
+ 0xCE, 0xC5, 0x23, 0x3E, 0xC4, 0xF7, 0x80, 0xBD, 0xE7, 0x87, 0x96, 0xBD,
+ 0x61, 0xEC, 0xE2, 0x3D, 0x0F, 0xF2, 0x01, 0xBD, 0x80, 0x3B, 0x20, 0xBD,
+ 0x8E, 0xED, 0x89, 0xBD, 0xF6, 0x64, 0x2B, 0xBE, 0x9F, 0xF5, 0x94, 0x3C,
+ 0xE6, 0x5E, 0xD5, 0xBC, 0x2C, 0x4E, 0xC0, 0x3C, 0xB9, 0x89, 0xD4, 0xBD,
+ 0x2B, 0x76, 0x23, 0x3D, 0x71, 0x94, 0xE1, 0xBD, 0x1F, 0x81, 0x93, 0x3C,
+ 0x95, 0xE0, 0xA0, 0x3C, 0xCE, 0x17, 0x90, 0xBC, 0xD6, 0xE2, 0xCC, 0x3D,
+ 0xD5, 0x83, 0xC4, 0x3D, 0x4B, 0x1D, 0x3C, 0x3D, 0x16, 0x61, 0xC1, 0x3C,
+ 0xB6, 0x47, 0x17, 0xBD, 0xA8, 0xE8, 0x92, 0xBD, 0x5C, 0x1C, 0xA4, 0xBD,
+ 0xB5, 0x19, 0xAB, 0x3D, 0x5B, 0xEC, 0x66, 0xBD, 0xE4, 0x65, 0x1D, 0xBD,
+ 0x9F, 0x26, 0x32, 0xBC, 0x59, 0xE8, 0x8F, 0x3B, 0x15, 0x44, 0x96, 0xBC,
+ 0x3E, 0x35, 0x37, 0x3C, 0xFA, 0x1A, 0x2C, 0x3C, 0xF9, 0xB3, 0x1C, 0xBD,
+ 0x3A, 0xD1, 0x83, 0x3D, 0x08, 0xA1, 0x35, 0xBE, 0xB3, 0x83, 0xD3, 0xBD,
+ 0x2D, 0x0A, 0xBF, 0x3C, 0x09, 0xC2, 0xB1, 0xBD, 0x95, 0x91, 0xCD, 0xBD,
+ 0x7D, 0x71, 0xC0, 0xBE, 0xAC, 0x0D, 0x77, 0x3C, 0xC2, 0xEB, 0x86, 0xBD,
+ 0x75, 0x45, 0x9A, 0xBD, 0x37, 0x37, 0x48, 0xBE, 0x8E, 0xAF, 0x8C, 0x3F,
+ 0x6E, 0x73, 0x12, 0xBF, 0xFF, 0x58, 0xFA, 0x3D, 0xBC, 0xC3, 0x01, 0x3E,
+ 0x6F, 0xCE, 0xC9, 0xBC, 0x25, 0x20, 0x8E, 0xBE, 0x7A, 0x7A, 0xAD, 0x3E,
+ 0xA0, 0xF0, 0xB7, 0xBE, 0x01, 0x65, 0x11, 0x3E, 0x48, 0xAC, 0x47, 0xBE,
+ 0xE0, 0x78, 0x63, 0x3D, 0x31, 0x7A, 0x4B, 0x3E, 0xAF, 0x5F, 0x04, 0xBF,
+ 0x77, 0xB7, 0x56, 0xBE, 0xD2, 0x80, 0x04, 0x3E, 0xC5, 0xCB, 0xAE, 0xBC,
+ 0x8C, 0xC9, 0x24, 0x3D, 0xF0, 0x78, 0xB4, 0xBD, 0x43, 0x52, 0xCA, 0x3C,
+ 0xAF, 0x02, 0x9E, 0xBD, 0x4A, 0x8C, 0x34, 0x3E, 0x6C, 0x98, 0x60, 0xBD,
+ 0x87, 0x61, 0x84, 0x3E, 0x27, 0xDE, 0xB3, 0xBD, 0x4D, 0xBE, 0x1E, 0xBD,
+ 0xDF, 0xD0, 0xA9, 0x3D, 0xDE, 0x3D, 0x4A, 0xBD, 0xA4, 0x0C, 0x26, 0xBF,
+ 0x2F, 0xE0, 0xF2, 0xBE, 0x5B, 0xC9, 0x46, 0x3E, 0x0B, 0xFB, 0xEB, 0x3D,
+ 0x89, 0x36, 0x01, 0xBB, 0x89, 0x62, 0xD1, 0xBE, 0x98, 0x5D, 0x10, 0xBF,
+ 0xFA, 0x8B, 0x32, 0xBF, 0xFB, 0x90, 0x22, 0x3F, 0xBB, 0xFC, 0x99, 0xBE,
+ 0x48, 0x6D, 0x27, 0xBF, 0xCF, 0xAD, 0xAC, 0xBC, 0x42, 0x41, 0x99, 0x3E,
+ 0xCE, 0x88, 0x1A, 0xBF, 0x55, 0x70, 0x49, 0xBE, 0x51, 0x1A, 0x22, 0xBF,
+ 0x7A, 0x0C, 0xE4, 0xBF, 0xD5, 0x3C, 0xF9, 0xBC, 0x7F, 0x6F, 0x6F, 0xBE,
+ 0xE2, 0x57, 0x09, 0xBF, 0xB2, 0x2A, 0xAC, 0x3B, 0x4D, 0xEE, 0x0F, 0xBF,
+ 0x97, 0xCA, 0x9B, 0x3E, 0x3F, 0x8C, 0x93, 0xBE, 0x69, 0xE7, 0xC4, 0xBE,
+ 0xF1, 0xE6, 0x98, 0x3D, 0xEB, 0x69, 0x32, 0x3F, 0x60, 0x65, 0x2C, 0x3E,
+ 0xB7, 0x7C, 0x69, 0xBE, 0xE3, 0x6C, 0x17, 0xBF, 0x51, 0x71, 0x38, 0x3A,
+ 0xB0, 0x85, 0x9F, 0xBE, 0x08, 0x27, 0x18, 0x3F, 0x4A, 0x0E, 0x36, 0x3F,
+ 0x77, 0x5D, 0xF4, 0xBE, 0x13, 0x88, 0x6B, 0xBC, 0xCC, 0x08, 0xAA, 0xBE,
+ 0x7B, 0x45, 0xA1, 0xBE, 0x38, 0x33, 0xA3, 0x3C, 0x34, 0xCF, 0x6C, 0x3D,
+ 0xEC, 0x4F, 0x09, 0xBE, 0x3D, 0x84, 0x92, 0xBD, 0xF6, 0x68, 0x47, 0xBE,
+ 0x25, 0xDB, 0xB0, 0xBD, 0x9D, 0x09, 0x2C, 0x3E, 0x34, 0x62, 0x1C, 0x3E,
+ 0x14, 0xEA, 0xDB, 0xBC, 0x1A, 0x68, 0x34, 0xBD, 0xDC, 0x14, 0x7F, 0x3D,
+ 0xD2, 0x4F, 0x79, 0x3D, 0xD0, 0xBE, 0xBC, 0x3E, 0x70, 0xA4, 0xA2, 0xBC,
+ 0x49, 0x62, 0xB5, 0xBB, 0x92, 0xB7, 0xA8, 0xBE, 0xCC, 0x3B, 0x2B, 0x3E,
+ 0x17, 0x3E, 0x50, 0xBA, 0x85, 0x3D, 0x04, 0xBA, 0x7A, 0xDE, 0xEA, 0xBD,
+ 0x36, 0x0E, 0x9F, 0x3E, 0x4C, 0x2D, 0x4A, 0xBE, 0x7A, 0xC6, 0x0D, 0xBE,
+ 0x4D, 0xE5, 0xD9, 0x3D, 0x2F, 0x10, 0x0F, 0x3F, 0xE1, 0x22, 0x6C, 0xBE,
+ 0x18, 0xB0, 0x02, 0x3F, 0xE6, 0x6F, 0xAD, 0xBD, 0x17, 0x21, 0xF9, 0x3C,
+ 0xD5, 0x55, 0xBD, 0xBD, 0xA9, 0x26, 0x66, 0x3E, 0x3F, 0x4B, 0x24, 0x3E,
+ 0x89, 0x61, 0x04, 0x3F, 0x2D, 0x31, 0xD4, 0x3C, 0x24, 0x38, 0xFD, 0xBB,
+ 0xA2, 0xAC, 0x2A, 0xBF, 0xA4, 0x4E, 0x69, 0xBF, 0x51, 0x9A, 0xAA, 0x3E,
+ 0xDE, 0x11, 0x78, 0x3E, 0x30, 0x1D, 0x0D, 0xBD, 0xFE, 0x54, 0x78, 0x3D,
+ 0xD0, 0xB1, 0x84, 0xBE, 0x1D, 0xD1, 0x80, 0x3E, 0xFF, 0xB1, 0xDB, 0x3E,
+ 0x57, 0x38, 0xAA, 0x3D, 0xC6, 0x18, 0x85, 0x3C, 0xD1, 0x86, 0x4A, 0xBC,
+ 0x04, 0x06, 0x16, 0xBF, 0x82, 0xC3, 0x00, 0xBC, 0x3D, 0x6C, 0xB6, 0xBA,
+ 0xFF, 0xC3, 0x06, 0x3C, 0xBD, 0x7B, 0x47, 0xBE, 0xE7, 0x41, 0xED, 0x3D,
+ 0x88, 0x77, 0xD0, 0x3C, 0xEA, 0x7A, 0xA7, 0x3C, 0x4F, 0xBF, 0x32, 0xBE,
+ 0x97, 0xD5, 0x3F, 0xBE, 0x4A, 0x7E, 0x06, 0xBD, 0x18, 0xFD, 0x2E, 0x3F,
+ 0x7C, 0x00, 0x93, 0x3E, 0x86, 0x04, 0x4D, 0x3D, 0xC5, 0x1C, 0xD0, 0x3D,
+ 0xD8, 0x19, 0xFC, 0xBC, 0xD6, 0x16, 0x21, 0x3E, 0xA2, 0xEB, 0x26, 0xBE,
+ 0x36, 0xD6, 0x98, 0x37, 0x0C, 0x85, 0x84, 0x3D, 0xF9, 0x0B, 0xD8, 0xBC,
+ 0x82, 0x7A, 0x7A, 0x3D, 0x28, 0xDE, 0x10, 0x3E, 0xA5, 0x43, 0x73, 0xBD,
+ 0x83, 0x20, 0xCA, 0x3D, 0x29, 0xF7, 0x3C, 0xBC, 0x6F, 0x5E, 0x88, 0x3D,
+ 0xFF, 0xA1, 0x79, 0x3E, 0x8E, 0xD9, 0x91, 0xBE, 0x65, 0xD0, 0x94, 0xBD,
+ 0x89, 0x37, 0x60, 0xBC, 0xCF, 0x88, 0x5F, 0x3C, 0x38, 0xDC, 0xEF, 0x3D,
+ 0xEC, 0xED, 0x06, 0xBC, 0xD3, 0x41, 0xE6, 0xBC, 0xE8, 0xCE, 0x19, 0x3E,
+ 0x63, 0x3D, 0xDD, 0xBD, 0x59, 0xAC, 0x2F, 0x3E, 0x49, 0x4B, 0x0F, 0xBD,
+ 0xC8, 0x78, 0x6D, 0xBD, 0x0E, 0x79, 0x9F, 0x3D, 0xD0, 0x8E, 0x7E, 0x3D,
+ 0x61, 0x06, 0xF7, 0x3C, 0x11, 0xE4, 0xA0, 0xBE, 0x79, 0x73, 0x2B, 0xBE,
+ 0x7F, 0x22, 0x65, 0x3E, 0xD3, 0x34, 0x39, 0x3F, 0x5A, 0x87, 0x78, 0x3E,
+ 0x9C, 0x09, 0x42, 0xBF, 0x17, 0x59, 0x0A, 0xBE, 0x54, 0x32, 0xC5, 0x3E,
+ 0xC7, 0x69, 0x6B, 0x3D, 0x42, 0xBD, 0xA2, 0xBD, 0xDD, 0xC0, 0x30, 0xBE,
+ 0x6D, 0xFD, 0x1B, 0xBE, 0x34, 0x6B, 0xBA, 0x3F, 0x98, 0x75, 0xC4, 0x3D,
+ 0xF0, 0xDE, 0x28, 0x3D, 0x35, 0x8E, 0xD8, 0x3E, 0x3E, 0x77, 0xAF, 0x3F,
+ 0x78, 0x5D, 0x98, 0xBE, 0x8F, 0x47, 0x85, 0x3E, 0xC3, 0xD3, 0xD0, 0x3E,
+ 0x22, 0xD7, 0xBA, 0x3D, 0x94, 0x25, 0x7D, 0x3F, 0xAF, 0x4C, 0x98, 0x3E,
+ 0xDB, 0x7C, 0xA4, 0x3E, 0x56, 0x1D, 0x32, 0x3E, 0xB5, 0x5B, 0x62, 0xBF,
+ 0x0D, 0xFE, 0xA8, 0xBE, 0x93, 0x68, 0xF6, 0xBC, 0xD4, 0x67, 0xD7, 0x3E,
+ 0x04, 0xF5, 0xAD, 0x3E, 0x7C, 0x76, 0x2B, 0x3F, 0x97, 0x53, 0xFD, 0x3D,
+ 0x5D, 0xDD, 0xE4, 0x3E, 0x68, 0x84, 0x62, 0xBF, 0x91, 0x7E, 0xCA, 0xBD,
+ 0xF8, 0x17, 0xB3, 0x3D, 0x76, 0x47, 0x55, 0xBE, 0xD7, 0x62, 0x25, 0x3F,
+ 0x1E, 0xBB, 0x2E, 0x3E, 0x0C, 0x2C, 0xEB, 0xBC, 0x5E, 0x41, 0x30, 0x3D,
+ 0xE3, 0x71, 0xD0, 0x3D, 0x9F, 0x0E, 0x57, 0x3F, 0x8A, 0xA0, 0x77, 0xBE,
+ 0xD7, 0xE9, 0x05, 0xBF, 0x31, 0x0F, 0xAF, 0xBC, 0x62, 0x12, 0x7B, 0xBC,
+ 0x52, 0x9E, 0x10, 0x3E, 0xAE, 0x9F, 0x08, 0x3E, 0x4C, 0x02, 0xAD, 0x3D,
+ 0xCA, 0x5F, 0xB3, 0xBE, 0x01, 0x80, 0x7D, 0xBD, 0x7C, 0xF1, 0x70, 0x3A,
+ 0xB8, 0x55, 0xE3, 0x3E, 0x07, 0x6D, 0x1F, 0x3D, 0x9E, 0x2E, 0xB0, 0xBD,
+ 0x25, 0xB6, 0x05, 0x3E, 0x32, 0xD5, 0xB0, 0x3C, 0xCA, 0xD4, 0x8D, 0xBC,
+ 0x34, 0x26, 0x8A, 0xBE, 0xC5, 0x53, 0x17, 0xBE, 0x4E, 0x3A, 0x41, 0x3E,
+ 0x61, 0xBB, 0xD3, 0x3E, 0x5F, 0x33, 0x68, 0x3E, 0x11, 0x7F, 0xA4, 0x3F,
+ 0x71, 0xF8, 0x14, 0x3D, 0x9C, 0xFC, 0xA2, 0x3D, 0x6C, 0xEF, 0x10, 0x3D,
+ 0x44, 0x72, 0xF3, 0xBD, 0xEE, 0xDD, 0x97, 0x3B, 0x4F, 0xCE, 0xC6, 0x3E,
+ 0xC1, 0xC8, 0xDF, 0xBE, 0x46, 0xA9, 0x92, 0xBD, 0x81, 0x22, 0x13, 0x3F,
+ 0x78, 0xBC, 0xF8, 0xBD, 0x50, 0x67, 0x51, 0xBE, 0xC0, 0x15, 0x12, 0xBE,
+ 0xF0, 0x5D, 0x5F, 0x3E, 0x6C, 0x64, 0x7B, 0xBD, 0x58, 0x55, 0x5F, 0x3E,
+ 0x7C, 0x56, 0x2C, 0x3F, 0xCF, 0xF6, 0x55, 0xBE, 0x37, 0xBB, 0x94, 0x3B,
+ 0xB1, 0x1E, 0x2A, 0xBE, 0x39, 0x12, 0x0D, 0x3D, 0x05, 0xE3, 0x43, 0x3E,
+ 0x97, 0x6A, 0x08, 0x3E, 0x4E, 0xE5, 0xBD, 0x3D, 0xEB, 0xE4, 0xEE, 0xBD,
+ 0x23, 0xA9, 0x85, 0x3E, 0xC6, 0x10, 0x0D, 0xBF, 0xC2, 0x4F, 0x8C, 0xBE,
+ 0x26, 0xE1, 0x5D, 0xBE, 0xDA, 0x4F, 0xF2, 0x3E, 0x62, 0xC8, 0xD3, 0x3C,
+ 0x72, 0xA3, 0xBD, 0x3D, 0x5E, 0x73, 0xD5, 0xBF, 0x48, 0x1B, 0x33, 0xBF,
+ 0x62, 0x20, 0x37, 0x3E, 0x62, 0xA6, 0x60, 0x3E, 0xA0, 0x98, 0x8C, 0xBD,
+ 0x33, 0x8D, 0x41, 0x3D, 0xE5, 0xBE, 0x96, 0xBE, 0x66, 0x3C, 0x00, 0x3C,
+ 0xDB, 0x26, 0x2D, 0x3C, 0x13, 0xBE, 0x0C, 0x3E, 0xC8, 0xD0, 0x4B, 0x3E,
+ 0xBA, 0x24, 0x22, 0xBC, 0xDE, 0xF8, 0x7C, 0x3E, 0x5F, 0xA8, 0x1A, 0x3C,
+ 0xA8, 0x50, 0xCF, 0x3B, 0xEA, 0xCF, 0x86, 0xBD, 0x47, 0x7D, 0x99, 0xBD,
+ 0xBF, 0x2B, 0xA9, 0x3D, 0x38, 0x6A, 0x86, 0xBD, 0x49, 0xB7, 0x28, 0x3D,
+ 0x31, 0xBB, 0xDF, 0x38, 0xD1, 0xBF, 0x25, 0x3E, 0xB3, 0x5E, 0x52, 0xBC,
+ 0x64, 0xA8, 0x9A, 0xBC, 0xD3, 0xE4, 0xCF, 0x3D, 0x82, 0x9A, 0xB3, 0xBE,
+ 0xEB, 0x83, 0x8F, 0x3E, 0xC8, 0xFD, 0xF0, 0xBE, 0x33, 0x4D, 0x00, 0x3D,
+ 0xAE, 0x83, 0x7C, 0x3D, 0xE9, 0x1A, 0x86, 0x3E, 0x7D, 0x2C, 0x59, 0x3D,
+ 0x28, 0xB5, 0x1F, 0x3F, 0xBF, 0x6E, 0x14, 0x3F, 0xA3, 0x93, 0x85, 0x3D,
+ 0x16, 0x8E, 0x47, 0x3E, 0xA3, 0x1B, 0x5A, 0xBE, 0x92, 0xF6, 0x06, 0xBF,
+ 0x63, 0x9E, 0xAD, 0x3D, 0x01, 0xFB, 0x81, 0xBB, 0x55, 0xE3, 0xFD, 0xBE,
+ 0x1F, 0x5E, 0xA7, 0xBC, 0x81, 0x1C, 0x2B, 0x3E, 0x5B, 0xB5, 0x13, 0x3E,
+ 0x00, 0x58, 0xA6, 0x3F, 0x69, 0xDE, 0x9B, 0xBD, 0x76, 0x38, 0xAA, 0x3D,
+ 0xA0, 0x51, 0x26, 0xBB, 0xAF, 0xE4, 0x04, 0x3F, 0x19, 0x8C, 0x12, 0xBF,
+ 0xB9, 0x62, 0xF8, 0x3E, 0x59, 0x79, 0xF9, 0xBE, 0xC2, 0x7C, 0x46, 0x3D,
+ 0x31, 0x74, 0x03, 0x3E, 0x37, 0x56, 0xAC, 0xBE, 0xCB, 0x58, 0x2F, 0x3E,
+ 0x99, 0xBB, 0xFE, 0x3E, 0x9E, 0xA2, 0x3C, 0xBF, 0x48, 0x40, 0xB2, 0x3D,
+ 0x26, 0xD7, 0x62, 0xBF, 0x82, 0x30, 0xD1, 0x3D, 0x9B, 0xA2, 0x10, 0xBE,
+ 0x6C, 0x86, 0x9C, 0x3E, 0x93, 0xE1, 0x9F, 0xBE, 0xA2, 0x48, 0xC1, 0xBF,
+ 0x8F, 0x73, 0x97, 0x3D, 0x5A, 0x3A, 0x3D, 0x3E, 0x58, 0x64, 0xDF, 0x3D,
+ 0x4D, 0x12, 0x8B, 0xBD, 0x2F, 0x18, 0x9B, 0xBD, 0x2E, 0xFC, 0x56, 0xBD,
+ 0x76, 0x7E, 0x0B, 0xBC, 0xCB, 0xC6, 0x64, 0xBC, 0x64, 0x92, 0x5E, 0xBC,
+ 0x7B, 0xF2, 0x5F, 0xBC, 0x26, 0x56, 0xC2, 0x3B, 0x4C, 0xD6, 0x95, 0x3B,
+ 0x14, 0xFC, 0x2A, 0x3C, 0x16, 0x6E, 0xD8, 0x3C, 0x0D, 0x73, 0x55, 0xBD,
+ 0x7D, 0xF6, 0xDE, 0xBC, 0xB4, 0x12, 0x75, 0xBD, 0x36, 0xE1, 0x2E, 0xBD,
+ 0x88, 0xF5, 0xFB, 0xBC, 0x6B, 0x26, 0x00, 0xBD, 0x7E, 0x18, 0xC5, 0x3D,
+ 0x63, 0x16, 0x08, 0xBD, 0xC9, 0x61, 0x79, 0xBC, 0x7F, 0x0F, 0x49, 0x3D,
+ 0x9F, 0x68, 0xBE, 0x3C, 0x12, 0x65, 0x79, 0xBB, 0x86, 0xE4, 0xB4, 0xBD,
+ 0xF4, 0xB5, 0xA0, 0xBC, 0xB2, 0x28, 0x79, 0xBC, 0xD1, 0x53, 0x67, 0xBD,
+ 0xCA, 0x3C, 0xB1, 0xBD, 0xD6, 0xA6, 0x5F, 0xBD, 0x53, 0x4C, 0xE3, 0xBC,
+ 0x62, 0xEB, 0xB3, 0x3C, 0xA7, 0x3E, 0xA7, 0xBE, 0x50, 0xDC, 0x32, 0xBF,
+ 0x7D, 0xEB, 0x2A, 0x3F, 0xDE, 0x21, 0x0A, 0xBF, 0x2A, 0xA8, 0x9D, 0xBE,
+ 0x22, 0x84, 0x51, 0x3E, 0xAD, 0x4C, 0x52, 0x3E, 0xC3, 0xE4, 0xFB, 0x3E,
+ 0x12, 0x67, 0x74, 0x3E, 0xD1, 0xEF, 0x23, 0xBF, 0x01, 0x06, 0xA7, 0xBE,
+ 0xD7, 0x93, 0x3D, 0x3D, 0x36, 0x68, 0x07, 0x3F, 0x71, 0x48, 0xBB, 0xBE,
+ 0xAC, 0x83, 0xDC, 0x3B, 0xA1, 0xEC, 0xFA, 0xBE, 0x1E, 0x28, 0x21, 0xBD,
+ 0x3E, 0x70, 0x9C, 0x3C, 0x69, 0x96, 0x53, 0x3C, 0x8E, 0x66, 0x7B, 0x3E,
+ 0x27, 0x15, 0xB3, 0xBC, 0x34, 0x3D, 0x04, 0xBE, 0x2D, 0x7B, 0xA3, 0x3E,
+ 0x38, 0x77, 0x30, 0x3E, 0x76, 0x17, 0xFC, 0x3E, 0x9C, 0x0A, 0x12, 0x3F,
+ 0xDF, 0xD4, 0x11, 0x3E, 0xA5, 0xB2, 0x2F, 0xBE, 0x27, 0x3B, 0xDD, 0xBD,
+ 0xF4, 0xC1, 0xAA, 0xBE, 0x10, 0x3F, 0xC4, 0x3E, 0x08, 0x77, 0x61, 0x3B,
+ 0x34, 0xBD, 0xBD, 0xBD, 0x3F, 0x6A, 0x05, 0x3D, 0xF1, 0xEB, 0xC1, 0x3D,
+ 0x54, 0x08, 0x00, 0x3E, 0x9A, 0xE5, 0x7F, 0x3D, 0x1F, 0xFB, 0x83, 0x3C,
+ 0x27, 0xF5, 0xB5, 0x3C, 0xD3, 0x45, 0x1C, 0x3C, 0x7C, 0x8B, 0x08, 0xBD,
+ 0xEC, 0x34, 0x23, 0xBD, 0xC4, 0x73, 0xDF, 0xBC, 0x6F, 0x4A, 0x1E, 0xBD,
+ 0x50, 0xBA, 0xFD, 0xBB, 0x26, 0x62, 0xB3, 0xBE, 0xD9, 0xB4, 0x6C, 0x3D,
+ 0x48, 0x70, 0x3C, 0x3C, 0x98, 0x51, 0x95, 0x3D, 0x3F, 0x20, 0x26, 0x3C,
+ 0x19, 0xED, 0x8E, 0x3C, 0x46, 0x19, 0x95, 0x3D, 0x1A, 0x5B, 0xA9, 0x3C,
+ 0x84, 0xF0, 0x2C, 0xBD, 0xB6, 0xA7, 0x08, 0xBD, 0x94, 0x4A, 0xE2, 0xBC,
+ 0x64, 0xD4, 0x02, 0x3E, 0xBC, 0x1D, 0x4F, 0x3D, 0xC0, 0x76, 0x9E, 0xBC,
+ 0xE7, 0x48, 0x29, 0x3E, 0xFB, 0x9D, 0x61, 0x3D, 0x39, 0x1C, 0xF8, 0x3E,
+ 0x46, 0x44, 0x45, 0x3D, 0x8D, 0x03, 0xA2, 0xBD, 0x69, 0xCD, 0x35, 0xBE,
+ 0x81, 0xBC, 0xF0, 0x3D, 0x90, 0xC6, 0x69, 0x3E, 0xC6, 0x98, 0x0B, 0x3F,
+ 0xA9, 0x61, 0xB6, 0x3C, 0x2B, 0x56, 0xFB, 0xBE, 0x0B, 0x8D, 0x98, 0xBE,
+ 0x4D, 0xC6, 0x34, 0xBE, 0x67, 0xC0, 0x17, 0xBF, 0x2F, 0x6E, 0x64, 0xBD,
+ 0x86, 0xF4, 0x07, 0x3E, 0x19, 0x85, 0x9E, 0xBC, 0x7D, 0x92, 0x39, 0xBE,
+ 0xC7, 0xE6, 0x4B, 0x3F, 0x58, 0x62, 0xF0, 0xBE, 0xA3, 0x20, 0x10, 0x3F,
+ 0x37, 0x68, 0xA1, 0x3E, 0xF6, 0x12, 0x81, 0xBC, 0x67, 0xD1, 0xC7, 0xBE,
+ 0x74, 0x95, 0xE5, 0xBE, 0xF1, 0x36, 0x60, 0x3D, 0xEA, 0x6B, 0x62, 0x3E,
+ 0x86, 0x3B, 0x5D, 0xBF, 0x39, 0xB5, 0xA4, 0x3E, 0xB1, 0xD4, 0x32, 0xBF,
+ 0x54, 0x03, 0xE8, 0xBD, 0xC3, 0xDC, 0x30, 0x3E, 0xF9, 0xBF, 0x92, 0x3E,
+ 0x1C, 0x65, 0xEA, 0xBD, 0x51, 0xAD, 0x4B, 0xBF, 0xD9, 0x24, 0xFA, 0xBE,
+ 0xD7, 0x9F, 0xB2, 0xBD, 0xD5, 0x23, 0x8A, 0xBE, 0xF5, 0x79, 0x8B, 0x3E,
+ 0xA7, 0xFD, 0xDC, 0x3C, 0x1C, 0xF2, 0x0D, 0x3F, 0x39, 0x48, 0x20, 0xBE,
+ 0x71, 0xCA, 0x3A, 0xBE, 0x29, 0x7E, 0x12, 0x3F, 0x79, 0x31, 0x61, 0xBF,
+ 0x5D, 0x1D, 0x15, 0xBE, 0x14, 0x8A, 0xEA, 0xBE, 0x0E, 0x87, 0x11, 0xBE,
+ 0x7A, 0x78, 0x28, 0x3E, 0x25, 0x8B, 0xD6, 0xBD, 0x62, 0x13, 0x5D, 0xBF,
+ 0x71, 0x63, 0x8B, 0xBF, 0x6F, 0x20, 0x7E, 0x3E, 0x83, 0x5C, 0x3E, 0xBF,
+ 0xE0, 0xD5, 0x30, 0x3D, 0x83, 0x96, 0x33, 0xBF, 0x86, 0x65, 0xC3, 0x3E,
+ 0xBA, 0xD1, 0x01, 0xBB, 0x8C, 0x32, 0x78, 0xBE, 0xB7, 0x78, 0x9F, 0x3F,
+ 0x16, 0x29, 0xCB, 0xBF, 0x9B, 0x1B, 0x34, 0x3F, 0xF0, 0x1C, 0xC3, 0x3E,
+ 0x5E, 0xA1, 0x8E, 0x3E, 0x40, 0x76, 0x2B, 0x3F, 0xA8, 0x65, 0x0F, 0x3D,
+ 0x65, 0xBB, 0xBC, 0xBF, 0xF8, 0x30, 0x71, 0x3F, 0xCA, 0x4E, 0xD8, 0xBE,
+ 0x12, 0xA0, 0xDE, 0xBD, 0x5A, 0x72, 0x5C, 0xBE, 0xB9, 0xAC, 0xAE, 0x3F,
+ 0x32, 0x12, 0xE8, 0xBE, 0x7E, 0x94, 0xDC, 0x3E, 0xAA, 0x29, 0x00, 0x3F,
+ 0xF1, 0xD8, 0xCC, 0x3E, 0x85, 0x8B, 0x41, 0x3F, 0xD2, 0x5D, 0x2B, 0x3E,
+ 0xD1, 0xEE, 0x64, 0xBF, 0x88, 0x6B, 0x09, 0xBF, 0xB3, 0xCB, 0x04, 0xBE,
+ 0xB4, 0x02, 0x49, 0x3E, 0x74, 0x0F, 0x97, 0xBE, 0x9C, 0x14, 0x24, 0x3F,
+ 0xA8, 0x46, 0xCA, 0xBE, 0x26, 0x7F, 0x94, 0x3D, 0xE6, 0x67, 0xB3, 0xBD,
+ 0xF3, 0x06, 0x2B, 0xBE, 0x34, 0xD3, 0x2A, 0x3E, 0xAD, 0x74, 0x4D, 0x3E,
+ 0x80, 0xCA, 0x86, 0x3E, 0xCB, 0xA1, 0xED, 0x3E, 0x11, 0xB8, 0x6B, 0xBD,
+ 0x39, 0xD1, 0x12, 0xBF, 0xCA, 0x45, 0x65, 0x3F, 0x01, 0x28, 0xDC, 0xBC,
+ 0xDE, 0x41, 0xFA, 0x3D, 0x72, 0x36, 0x15, 0x3E, 0xBE, 0xF8, 0xC2, 0x3D,
+ 0x3E, 0x9E, 0xA6, 0xBD, 0x9C, 0x0E, 0x83, 0xBD, 0xD6, 0xA7, 0xAD, 0xBD,
+ 0x35, 0x4E, 0x81, 0x3E, 0xF8, 0xC4, 0x83, 0xBF, 0x00, 0xD8, 0xAE, 0x3E,
+ 0xFA, 0x4A, 0xA5, 0xBE, 0xC8, 0x38, 0x74, 0xBE, 0x67, 0x68, 0xB6, 0x3C,
+ 0x57, 0x4B, 0x23, 0x3F, 0xBD, 0x44, 0x86, 0x3E, 0xC9, 0xDE, 0xEA, 0x3E,
+ 0x95, 0xCB, 0x0F, 0xBF, 0x5E, 0xD1, 0x68, 0xBB, 0x49, 0x78, 0xFE, 0xBD,
+ 0x3E, 0x42, 0x76, 0xBE, 0x1A, 0x0A, 0xAA, 0x3E, 0x5D, 0xFC, 0x8C, 0xBD,
+ 0x29, 0x33, 0xBA, 0xBE, 0xDD, 0xCC, 0xDB, 0xBB, 0x76, 0xA2, 0x91, 0xBE,
+ 0xBA, 0x82, 0xDB, 0x3D, 0x2E, 0x0A, 0x11, 0xBD, 0x91, 0x64, 0x99, 0x3E,
+ 0xF8, 0x53, 0xFB, 0xBE, 0x95, 0x71, 0xAF, 0x3E, 0xEF, 0xC9, 0x44, 0xBE,
+ 0x4E, 0x87, 0x87, 0x3E, 0x33, 0xE9, 0x79, 0xBE, 0x38, 0xC1, 0xE7, 0xBD,
+ 0x5E, 0xDD, 0xA3, 0xBE, 0xC5, 0xEA, 0xF8, 0xBD, 0x38, 0xE0, 0x05, 0x3F,
+ 0x88, 0x0F, 0x61, 0x3E, 0x0E, 0x7D, 0xFB, 0xBE, 0x94, 0x97, 0x96, 0x3D,
+ 0x75, 0x24, 0xA7, 0x3E, 0x6A, 0x37, 0x91, 0x3E, 0x87, 0x16, 0xA8, 0xBD,
+ 0x4B, 0x50, 0x0E, 0xBF, 0x47, 0xB7, 0x84, 0xBE, 0x8C, 0x5F, 0xFA, 0xBE,
+ 0xAC, 0xFC, 0x7F, 0xBD, 0x57, 0x33, 0x0C, 0x3F, 0x6B, 0x9F, 0xCB, 0xBE,
+ 0x59, 0xAB, 0xC8, 0x3D, 0xFA, 0xA0, 0xA2, 0xBD, 0xAF, 0xB0, 0xA1, 0x3F,
+ 0x5A, 0x9F, 0x07, 0x3F, 0x79, 0xB7, 0xA8, 0x3D, 0xF6, 0x15, 0x0D, 0xBE,
+ 0x70, 0x86, 0xA1, 0x3D, 0x0E, 0xA8, 0x13, 0xBF, 0x3D, 0xAE, 0x11, 0xBF,
+ 0xB9, 0xF6, 0x17, 0xBE, 0xBF, 0x7E, 0x83, 0x3E, 0x84, 0x46, 0xCE, 0xBE,
+ 0x83, 0xEB, 0x14, 0x3F, 0x22, 0x65, 0xFB, 0xBD, 0x3B, 0x51, 0xB4, 0xBE,
+ 0xED, 0x97, 0xA1, 0x3E, 0xBB, 0x71, 0xBF, 0xBE, 0xCF, 0x34, 0x4D, 0x3E,
+ 0xC8, 0x16, 0x92, 0xBF, 0x98, 0x81, 0xC4, 0x3E, 0x5F, 0x5E, 0xC3, 0x3E,
+ 0xDB, 0x28, 0xF7, 0x3D, 0x96, 0xFE, 0x96, 0x3D, 0x87, 0x36, 0x7C, 0x3F,
+ 0x41, 0xAD, 0xF2, 0x3C, 0x81, 0x78, 0x74, 0xBC, 0xBE, 0xCB, 0x22, 0x3E,
+ 0xF0, 0x54, 0x18, 0x3E, 0x85, 0xD0, 0xB8, 0x3D, 0xFB, 0x35, 0xDA, 0x3D,
+ 0xE2, 0xA8, 0x03, 0x3D, 0x21, 0x52, 0x50, 0x3E, 0xDA, 0xAE, 0x07, 0xBC,
+ 0xF0, 0x53, 0x4E, 0xBF, 0xDF, 0x03, 0x97, 0x3E, 0x92, 0xFF, 0xB1, 0xBE,
+ 0x55, 0x71, 0x5B, 0xBE, 0xEA, 0xD8, 0x00, 0xBF, 0xB8, 0x6C, 0xC2, 0xBC,
+ 0x2F, 0x16, 0x06, 0x3E, 0x0C, 0x7B, 0x08, 0x3E, 0x09, 0x7E, 0x0A, 0x3E,
+ 0x21, 0xFF, 0xD2, 0xBC, 0x1C, 0x0D, 0xC8, 0xBE, 0x43, 0x69, 0x1F, 0xBD,
+ 0x0B, 0x34, 0xE4, 0xBE, 0x61, 0x49, 0x91, 0x3D, 0x7F, 0x7C, 0xD6, 0x3E,
+ 0x94, 0x7A, 0x4C, 0xBF, 0x0A, 0x15, 0x29, 0x3D, 0x43, 0x84, 0xAA, 0x3E,
+ 0x81, 0xC2, 0xE4, 0x3E, 0x53, 0x13, 0xB9, 0xBD, 0xBF, 0x99, 0x36, 0x3F,
+ 0xBE, 0xCD, 0x4E, 0xBD, 0xAE, 0x67, 0xFA, 0xBE, 0xAF, 0xB1, 0x17, 0xBF,
+ 0x49, 0x6D, 0xE8, 0xBD, 0x9C, 0x0E, 0xE1, 0x3D, 0xDF, 0x9E, 0xF0, 0x3D,
+ 0xEE, 0xFC, 0xFB, 0xBE, 0x54, 0xA7, 0x88, 0xBE, 0xB7, 0x5D, 0x27, 0xBE,
+ 0x34, 0x4B, 0xA3, 0xBE, 0x9D, 0x61, 0x71, 0x3D, 0x5A, 0x69, 0xC3, 0x3F,
+ 0x87, 0x35, 0x66, 0xBF, 0xCE, 0x03, 0xB0, 0x3F, 0x66, 0x46, 0x8F, 0x3F,
+ 0xF8, 0x0C, 0xBB, 0xBE, 0xC7, 0x8C, 0x91, 0xBD, 0xD3, 0x54, 0x0D, 0x3F,
+ 0x2A, 0x17, 0xBA, 0xBD, 0xA2, 0x4A, 0xF4, 0xBC, 0x47, 0x04, 0x42, 0x3D,
+ 0x8B, 0x5A, 0x51, 0x3F, 0x00, 0xDE, 0x01, 0xBE, 0x40, 0xA2, 0x96, 0x3F,
+ 0x0F, 0xB8, 0xA9, 0xBD, 0x50, 0xE3, 0xE5, 0x3D, 0xD8, 0x5C, 0x9F, 0x3F,
+ 0x62, 0x2C, 0x08, 0xBE, 0xCD, 0x3C, 0xD5, 0x3D, 0x3A, 0xB7, 0x6C, 0xBF,
+ 0x10, 0x77, 0x1A, 0xBE, 0x41, 0xA7, 0xE7, 0x3E, 0x26, 0x86, 0xA2, 0xBE,
+ 0x00, 0xF1, 0x75, 0x3E, 0x7C, 0xEF, 0x0D, 0xBD, 0x8B, 0xD7, 0xBA, 0x3E,
+ 0x9F, 0x87, 0x87, 0x3E, 0x71, 0x0F, 0x27, 0xBE, 0x51, 0xB7, 0xAF, 0x3E,
+ 0xE8, 0x26, 0xB7, 0x3D, 0x99, 0x50, 0xFD, 0xBE, 0xEF, 0x3C, 0x73, 0xBD,
+ 0xCF, 0xA0, 0x2B, 0x3C, 0xC6, 0x7F, 0x06, 0xBE, 0x3F, 0x3E, 0x33, 0xBF,
+ 0x0F, 0xCA, 0x07, 0x3F, 0x08, 0xB2, 0xAE, 0xBD, 0x15, 0x2A, 0x67, 0xBE,
+ 0xD8, 0xBA, 0xBD, 0xBD, 0x52, 0xFC, 0xD2, 0xBE, 0x7E, 0x25, 0x80, 0x3D,
+ 0x7C, 0xB5, 0x1F, 0x3E, 0xD0, 0x73, 0xA2, 0xBD, 0xB2, 0xC0, 0xA9, 0xBD,
+ 0x82, 0xBA, 0x49, 0x3E, 0xD3, 0x40, 0x0D, 0x3F, 0x9F, 0x56, 0x19, 0x3F,
+ 0xB1, 0xEB, 0xEE, 0xBD, 0x68, 0xFB, 0xFA, 0x3E, 0xBF, 0x48, 0xC4, 0xBD,
+ 0xC3, 0x97, 0x53, 0x3F, 0x21, 0xCA, 0x09, 0x3F, 0x8A, 0x51, 0x1C, 0xBE,
+ 0x46, 0xA6, 0x58, 0x3E, 0x4D, 0xF0, 0x05, 0xBD, 0x94, 0xE0, 0x48, 0x3F,
+ 0xFE, 0xF2, 0xCD, 0xBC, 0xE5, 0xCB, 0x03, 0xBE, 0x5D, 0x0E, 0x26, 0xBC,
+ 0x3A, 0xAB, 0x4F, 0x3E, 0xD4, 0x89, 0x19, 0xBD, 0x9C, 0xF3, 0x9E, 0xBE,
+ 0x6C, 0x08, 0x4D, 0x3F, 0xD8, 0xFB, 0x96, 0x3D, 0x9C, 0x44, 0xB9, 0x3C,
+ 0xFF, 0xBF, 0x03, 0x3F, 0xA9, 0xD3, 0x24, 0x3F, 0x15, 0x78, 0x93, 0xBE,
+ 0x0D, 0x26, 0x4B, 0xBD, 0xCC, 0xC8, 0xAD, 0x3E, 0x41, 0x32, 0x16, 0x3C,
+ 0x85, 0x20, 0x64, 0x3E, 0x75, 0xE3, 0x48, 0xBE, 0x24, 0x49, 0xE4, 0x3C,
+ 0x03, 0xC6, 0x9D, 0xBE, 0xC9, 0x19, 0xC9, 0x3E, 0x19, 0x6C, 0x12, 0xBF,
+ 0x15, 0xDB, 0xF2, 0xBE, 0x44, 0x4A, 0x95, 0xBE, 0x0B, 0xF5, 0x00, 0x3F,
+ 0xD1, 0x8A, 0x2C, 0x3F, 0xF4, 0x37, 0x4A, 0x3D, 0x55, 0x29, 0x0B, 0x3F,
+ 0x8B, 0x80, 0x79, 0x3E, 0xFF, 0xFD, 0xF4, 0x3D, 0x74, 0x34, 0xAD, 0xBF,
+ 0x87, 0x24, 0x0A, 0xBE, 0xFE, 0x54, 0xC7, 0xBE, 0xBE, 0xDE, 0x51, 0x3E,
+ 0xF0, 0x03, 0x63, 0xBE, 0x47, 0x79, 0x16, 0xBE, 0x04, 0xA9, 0xC5, 0x3B,
+ 0x78, 0xA0, 0x91, 0x3E, 0x4D, 0xFC, 0x76, 0xBD, 0x10, 0x70, 0x95, 0x3E,
+ 0x7B, 0x51, 0xF3, 0xBD, 0xD5, 0xF9, 0x4A, 0x3D, 0x34, 0xDB, 0x32, 0xBF,
+ 0x2D, 0x92, 0x85, 0x3F, 0x26, 0x7A, 0xAD, 0xBC, 0x1A, 0xCA, 0x8C, 0xBE,
+ 0x90, 0xD2, 0xF6, 0xBD, 0xAB, 0x11, 0xB9, 0x3D, 0x2C, 0x40, 0xA3, 0xBF,
+ 0xEF, 0x03, 0x4B, 0x3F, 0xAF, 0x50, 0xC9, 0xBE, 0x94, 0xBD, 0xED, 0xBD,
+ 0x71, 0xED, 0x4F, 0xBF, 0xD7, 0x9F, 0x8A, 0xBF, 0x60, 0xCD, 0x31, 0x3F,
+ 0x7B, 0x7F, 0x8F, 0xBE, 0x5D, 0xB4, 0xB0, 0xBE, 0xCC, 0x4A, 0xCA, 0xBD,
+ 0x2F, 0x88, 0xB3, 0x3E, 0x9C, 0xD9, 0x7B, 0xBE, 0x6A, 0xCB, 0xA0, 0xBD,
+ 0xF4, 0xE1, 0x0D, 0xBE, 0xF6, 0x44, 0xD4, 0xBC, 0xEB, 0xD6, 0x0F, 0xBD,
+ 0x10, 0xF2, 0x29, 0x3D, 0x19, 0xE7, 0x82, 0x3D, 0xBB, 0x39, 0x93, 0x3E,
+ 0xCD, 0x1A, 0x93, 0x3B, 0xBB, 0x5A, 0x02, 0xBD, 0xEA, 0xA3, 0x64, 0xBD,
+ 0x1F, 0x0B, 0x5C, 0x3D, 0xDB, 0x4F, 0x39, 0xBE, 0x97, 0x51, 0xB8, 0xBC,
+ 0x4E, 0xF8, 0x65, 0xBC, 0xD8, 0x28, 0xB6, 0x3C, 0xA1, 0xEC, 0x07, 0xBD,
+ 0xA1, 0x5D, 0x50, 0xBD, 0x95, 0x2F, 0x8F, 0xBD, 0x25, 0x81, 0xFA, 0xBD,
+ 0xC3, 0xD2, 0x05, 0x3D, 0x3B, 0xFC, 0x22, 0x3E, 0x2A, 0xDD, 0x3D, 0x3E,
+ 0xBF, 0x7D, 0x18, 0x3C, 0x20, 0x7F, 0x41, 0x3D, 0x3A, 0x1A, 0x43, 0x3D,
+ 0x1A, 0xC4, 0x24, 0x3E, 0x28, 0xCD, 0x4F, 0x3E, 0x9C, 0xF1, 0xA3, 0x3D,
+ 0xE7, 0x0D, 0x41, 0x3D, 0x04, 0x52, 0x83, 0xBE, 0x4A, 0x21, 0x34, 0x3C,
+ 0x89, 0x2E, 0x2F, 0x3F, 0x2B, 0x67, 0xA3, 0xBD, 0xCB, 0xC1, 0x72, 0x3D,
+ 0x6A, 0x60, 0x0B, 0x3C, 0x6B, 0x9A, 0x72, 0xBB, 0xC9, 0x28, 0x34, 0x3E,
+ 0x30, 0x24, 0x1A, 0x3E, 0x4C, 0x67, 0xB9, 0x3D, 0x0A, 0x0B, 0x62, 0x3D,
+ 0x80, 0xFF, 0xA6, 0x3C, 0xCB, 0xEA, 0x9A, 0xBC, 0xFA, 0xE7, 0xC3, 0x3D,
+ 0x91, 0x5A, 0xAE, 0x3C, 0x12, 0x2F, 0xAF, 0x3C, 0x98, 0x36, 0xEA, 0xBC,
+ 0x2C, 0xCC, 0x9C, 0xBD, 0x9B, 0xDA, 0x39, 0xBE, 0x11, 0x25, 0xF3, 0xBC,
+ 0xAB, 0x6D, 0xF0, 0xBC, 0x7E, 0xFC, 0x1D, 0xBE, 0xDB, 0x41, 0xC7, 0xBA,
+ 0xFB, 0x8E, 0xDB, 0x3D, 0x79, 0x1C, 0x82, 0xBD, 0x66, 0x71, 0x2B, 0xBD,
+ 0x24, 0x15, 0x20, 0x3D, 0xB1, 0xDC, 0x30, 0xBD, 0xAA, 0xF8, 0x2E, 0x3E,
+ 0xBF, 0xCC, 0x96, 0x3E, 0x5C, 0xEC, 0x56, 0x3D, 0xE0, 0x67, 0xFD, 0xBC,
+ 0x86, 0x4C, 0x1A, 0xBE, 0x44, 0x50, 0xF1, 0xBC, 0x1D, 0x54, 0x08, 0x3D,
+ 0x1A, 0x03, 0xA7, 0x3C, 0x0A, 0x39, 0x95, 0x3C, 0x80, 0x33, 0x81, 0x3F,
+ 0x83, 0x24, 0xC7, 0x3C, 0x1D, 0x7C, 0x68, 0x3E, 0x73, 0x52, 0x5A, 0x3E,
+ 0x0A, 0xBC, 0x4D, 0xBF, 0x42, 0x51, 0x17, 0x3F, 0x4B, 0xD2, 0xE8, 0x3E,
+ 0x0D, 0x42, 0xF2, 0xBE, 0xC2, 0x65, 0x75, 0x3D, 0xEE, 0x5F, 0x11, 0x3F,
+ 0x34, 0xB6, 0xDB, 0x3E, 0xDD, 0x06, 0xFE, 0xBD, 0x18, 0x2A, 0xE0, 0x3E,
+ 0xC3, 0x67, 0xE6, 0x3E, 0x79, 0x28, 0x37, 0xBE, 0xFA, 0x9B, 0x0B, 0xBD,
+ 0xF9, 0x61, 0xA3, 0x3F, 0xA2, 0xC2, 0xAE, 0xBD, 0x23, 0x21, 0x5A, 0x3F,
+ 0xD4, 0x12, 0x50, 0xBF, 0x15, 0xCD, 0xD6, 0x3E, 0x04, 0xAF, 0xBA, 0xBE,
+ 0x4F, 0xA1, 0x1C, 0x3F, 0xAC, 0xBB, 0xDE, 0x3E, 0xD0, 0x1C, 0xF6, 0xBD,
+ 0xEE, 0x74, 0x1F, 0xBF, 0x5B, 0xAE, 0xDD, 0x3D, 0xA0, 0x17, 0xC1, 0xBF,
+ 0x5F, 0x70, 0x0A, 0xBF, 0x2C, 0xE4, 0x24, 0x3D, 0x00, 0x73, 0x85, 0xBF,
+ 0x83, 0x7D, 0x32, 0xBC, 0x7B, 0x1F, 0xDC, 0x3C, 0x4C, 0x9C, 0x15, 0xBD,
+ 0x86, 0x31, 0xC2, 0xBC, 0x40, 0xFF, 0x22, 0x3D, 0x7B, 0x9E, 0x3C, 0x3C,
+ 0x75, 0xD8, 0x95, 0xBC, 0xE6, 0x20, 0x30, 0xBA, 0x8B, 0x7D, 0xDE, 0x3C,
+ 0xC5, 0x7F, 0x63, 0xBD, 0xD8, 0x48, 0x44, 0xBD, 0xAD, 0x62, 0x1E, 0xBC,
+ 0x0D, 0x2A, 0xD1, 0x38, 0xBC, 0x16, 0x66, 0xBB, 0xD2, 0x5A, 0x9E, 0xBD,
+ 0x29, 0x8C, 0x91, 0x3D, 0x52, 0xBD, 0x19, 0xBD, 0x43, 0xDD, 0x16, 0x3C,
+ 0x3A, 0x4E, 0xF1, 0x3B, 0x7E, 0xDE, 0x9D, 0x3C, 0x38, 0x1C, 0x79, 0x3D,
+ 0xF6, 0x14, 0xF6, 0x3C, 0x53, 0xA6, 0x0D, 0x3D, 0xE5, 0xC8, 0x23, 0xBD,
+ 0x57, 0xEB, 0x8C, 0x3B, 0x86, 0xE0, 0x00, 0xBD, 0x4D, 0x3C, 0xA4, 0xBC,
+ 0x2F, 0x27, 0xE0, 0xBB, 0xF2, 0x57, 0x87, 0x3B, 0x76, 0x90, 0xF8, 0x3C,
+ 0xF9, 0xB7, 0xBB, 0xBE, 0xC8, 0xC2, 0x8F, 0xBC, 0x32, 0x66, 0x95, 0xBD,
+ 0x76, 0xDC, 0x95, 0xBC, 0x75, 0x0A, 0xA1, 0xBC, 0x93, 0x03, 0x59, 0x3D,
+ 0x37, 0xAA, 0xF7, 0x3C, 0xDE, 0x0A, 0x04, 0x3B, 0x34, 0xCC, 0xB7, 0xBC,
+ 0xC1, 0xC3, 0xF6, 0xB9, 0x61, 0x68, 0xCC, 0xBA, 0x9C, 0x53, 0x12, 0x3C,
+ 0x95, 0x2B, 0x01, 0xBC, 0xB7, 0x72, 0x48, 0x3C, 0x25, 0x9B, 0x8A, 0x3C,
+ 0xD7, 0x1D, 0x9E, 0xBB, 0x5B, 0x12, 0xD8, 0x3D, 0x88, 0x2F, 0xF1, 0x3C,
+ 0x51, 0x6D, 0x82, 0xBC, 0xB1, 0x16, 0x53, 0xBC, 0xC6, 0xFA, 0x84, 0xBB,
+ 0x26, 0x23, 0x86, 0x3C, 0x3B, 0x6C, 0x6E, 0x3D, 0x35, 0x0C, 0xA9, 0x3C,
+ 0x22, 0x86, 0x84, 0x3D, 0x77, 0x34, 0x17, 0xBD, 0xAD, 0x3F, 0x01, 0x3C,
+ 0x20, 0xB5, 0x0D, 0xBD, 0xB9, 0x66, 0xD8, 0xBB, 0x2F, 0xB7, 0x43, 0x3D,
+ 0x43, 0x7D, 0x7E, 0xBD, 0xDF, 0x4E, 0x29, 0xBD, 0xE5, 0x80, 0x00, 0x3D,
+ 0x77, 0x0F, 0x4D, 0x3D, 0x60, 0x1E, 0x2C, 0xBC, 0x1E, 0x21, 0x5B, 0xBD,
+ 0x53, 0xA9, 0x83, 0x3D, 0xA7, 0xDA, 0x92, 0xBE, 0xDA, 0xC8, 0x11, 0xBE,
+ 0xEF, 0xF4, 0x27, 0xBD, 0x67, 0x7B, 0x27, 0xBD, 0xC5, 0x20, 0x8C, 0x3C,
+ 0xCD, 0x8D, 0x6F, 0xBD, 0x9B, 0x5B, 0x0E, 0xBD, 0x67, 0x33, 0x52, 0x3E,
+ 0x67, 0x64, 0xF3, 0xBC, 0x5D, 0x8C, 0x47, 0xBB, 0x76, 0x7B, 0x77, 0x3D,
+ 0x58, 0xA2, 0x13, 0xBC, 0xF2, 0xA6, 0xD0, 0x3D, 0x65, 0xF1, 0x4D, 0x3D,
+ 0xDE, 0xAC, 0xA0, 0xBE, 0xEA, 0x1C, 0x98, 0xBA, 0xE5, 0x72, 0x89, 0xBD,
+ 0xA9, 0xD3, 0x82, 0x3D, 0xDD, 0x3E, 0x88, 0x3B, 0xB0, 0xE7, 0x30, 0xBD,
+ 0x07, 0xBD, 0x2F, 0x3D, 0xDC, 0xE1, 0xC1, 0xBD, 0xF8, 0x3C, 0x27, 0xBE,
+ 0xF5, 0x2A, 0xCC, 0x3C, 0xCC, 0xC3, 0x7B, 0xBD, 0x15, 0x10, 0xA9, 0xBE,
+ 0x5C, 0x68, 0x07, 0x3C, 0xE9, 0xCC, 0x04, 0x3F, 0xED, 0xFC, 0x90, 0xBD,
+ 0x2A, 0xD3, 0x62, 0xBD, 0xD6, 0x98, 0xD4, 0x3C, 0x4B, 0xF0, 0x37, 0xBD,
+ 0x6D, 0xA8, 0x4D, 0x3D, 0x6C, 0x96, 0x5E, 0x3C, 0xCB, 0x60, 0xAE, 0xBB,
+ 0xC1, 0x58, 0x72, 0xBC, 0x81, 0x80, 0xA2, 0x3C, 0xC9, 0xC1, 0x8F, 0xBB,
+ 0x43, 0xE8, 0x38, 0xBD, 0xDD, 0x35, 0x8C, 0xBC, 0x4D, 0x39, 0x6C, 0x3C,
+ 0xF1, 0x54, 0xF7, 0xB9, 0x4B, 0xAC, 0x95, 0xBC, 0x5A, 0x6F, 0x6C, 0xBD,
+ 0x67, 0x83, 0x5E, 0x3C, 0x0D, 0x3C, 0x18, 0xBD, 0xD9, 0x0C, 0x19, 0xBA,
+ 0x97, 0x1A, 0x63, 0x3C, 0x0F, 0x64, 0x34, 0x3D, 0x68, 0x82, 0xCF, 0xBB,
+ 0x4C, 0x93, 0x9C, 0xBB, 0x75, 0x3F, 0xB5, 0x3B, 0x14, 0xD8, 0xAB, 0xBC,
+ 0x21, 0x2C, 0xF1, 0xBA, 0x2D, 0x0D, 0xC5, 0x3C, 0x02, 0x21, 0x05, 0x3C,
+ 0x6B, 0x68, 0xBD, 0xBC, 0xFA, 0x60, 0x41, 0xBD, 0xE6, 0x2B, 0x94, 0x3C,
+ 0xC9, 0x3D, 0xAA, 0xBE, 0x15, 0x2C, 0x0B, 0x3D, 0x28, 0x36, 0x23, 0xBC,
+ 0xBE, 0x69, 0x06, 0x3F, 0x4C, 0xE9, 0x40, 0x3E, 0x7D, 0xCF, 0xC1, 0xBE,
+ 0x9C, 0xC8, 0x07, 0x3E, 0x3E, 0x7F, 0x1D, 0xBE, 0x19, 0xAB, 0x31, 0x3D,
+ 0x54, 0xD9, 0xC9, 0xBE, 0xE0, 0x30, 0x73, 0x3C, 0xC9, 0x6E, 0xB8, 0x3E,
+ 0x99, 0x99, 0xF5, 0xBE, 0x1F, 0xCF, 0x94, 0xBE, 0xB6, 0xD3, 0x2C, 0x3C,
+ 0xC7, 0x4C, 0x57, 0xBE, 0xFD, 0x9D, 0x7D, 0xBE, 0xB4, 0xF9, 0xA3, 0xBE,
+ 0x23, 0xB6, 0x3B, 0x3E, 0x9D, 0x23, 0x00, 0xBF, 0x11, 0x3D, 0x82, 0xBD,
+ 0x06, 0x3F, 0x1C, 0xBE, 0x21, 0x88, 0x47, 0xBF, 0x73, 0xB8, 0xB9, 0xBD,
+ 0x62, 0xA3, 0x52, 0xBD, 0x83, 0xA7, 0xEE, 0xBE, 0xFB, 0xC5, 0x2F, 0x3F,
+ 0x2E, 0x31, 0x1D, 0xBE, 0x0F, 0xF7, 0xDB, 0x3E, 0x2F, 0x1D, 0x9A, 0x3D,
+ 0xF9, 0xE6, 0x8D, 0x3E, 0x31, 0x23, 0x84, 0xBE, 0x0C, 0x62, 0x66, 0xBF,
+ 0xB2, 0x97, 0x0A, 0xBD, 0x4D, 0x1D, 0x90, 0x3E, 0x70, 0x99, 0x39, 0x3E,
+ 0xF8, 0x7E, 0x14, 0x3F, 0x4E, 0xA4, 0x13, 0xBD, 0xDA, 0x3B, 0xD4, 0x3E,
+ 0x2A, 0x62, 0x84, 0xBE, 0x93, 0xFD, 0x26, 0x3E, 0xD8, 0x63, 0x8C, 0xBE,
+ 0x54, 0xC2, 0x0E, 0xBF, 0x0D, 0xBF, 0x5D, 0xBD, 0x66, 0xE9, 0x80, 0x3E,
+ 0x93, 0xA1, 0x83, 0x3E, 0x10, 0x37, 0x94, 0x3A, 0xE1, 0x86, 0x5B, 0xBB,
+ 0x02, 0xBB, 0xDA, 0xBF, 0x67, 0xC0, 0x3F, 0x3F, 0xDE, 0x51, 0x7F, 0x3E,
+ 0x95, 0xF8, 0x0C, 0xBD, 0x9B, 0x69, 0x65, 0x3D, 0x77, 0x9F, 0x33, 0x3E,
+ 0x4C, 0x99, 0x65, 0x3E, 0xE8, 0x2B, 0x40, 0xBD, 0x63, 0x70, 0x36, 0x3D,
+ 0x9C, 0x5F, 0x81, 0x3E, 0xA8, 0xD9, 0xB7, 0x3E, 0xC8, 0xAF, 0x02, 0x3F,
+ 0x73, 0x8C, 0x95, 0x3E, 0x6A, 0x7C, 0xAA, 0xBD, 0xE5, 0xA5, 0x08, 0x3F,
+ 0xAE, 0x6D, 0x5D, 0xBE, 0x76, 0x3A, 0x1D, 0x3E, 0x81, 0xAE, 0x29, 0xBE,
+ 0xF1, 0x17, 0xD5, 0xBE, 0x82, 0xB9, 0x62, 0x3D, 0xA8, 0x6D, 0x48, 0x3D,
+ 0x79, 0xDB, 0x54, 0x3E, 0x8E, 0xB0, 0x96, 0x3D, 0x44, 0x55, 0x08, 0xBD,
+ 0x61, 0xDE, 0x84, 0x3C, 0x9D, 0x41, 0x2C, 0x3E, 0x73, 0x0E, 0x7A, 0xBD,
+ 0x71, 0xD7, 0x18, 0xBE, 0x1A, 0x04, 0x89, 0x3D, 0x9A, 0x26, 0xBC, 0x3D,
+ 0xAD, 0xEA, 0x03, 0x3D, 0xA1, 0xE2, 0xB6, 0x3B, 0xCB, 0xFB, 0x15, 0x3E,
+ 0x51, 0x26, 0x17, 0xBE, 0xCC, 0x40, 0x54, 0xBD, 0xA8, 0xA3, 0x37, 0x3C,
+ 0xE5, 0x70, 0xFA, 0xBC, 0xFE, 0x65, 0x6C, 0x3E, 0x49, 0x15, 0x14, 0xBD,
+ 0xBC, 0xB7, 0xAB, 0xBB, 0x44, 0x8A, 0xF4, 0xBD, 0x09, 0x5D, 0xE4, 0xBB,
+ 0x48, 0x7B, 0xD3, 0xBD, 0x6D, 0xF4, 0x0E, 0xBE, 0x60, 0x76, 0x78, 0xBE,
+ 0x51, 0xB3, 0xC8, 0xBD, 0x70, 0xFF, 0x1F, 0xBE, 0x78, 0xB6, 0x65, 0xBD,
+ 0x1C, 0xC2, 0x8C, 0x3D, 0xAA, 0x70, 0xE5, 0xBC, 0x2C, 0x17, 0x8C, 0xBB,
+ 0xDC, 0x9A, 0x7E, 0xBC, 0xA4, 0x25, 0x61, 0xBC, 0x5B, 0x92, 0x0C, 0x3D,
+ 0x52, 0x6F, 0x6A, 0xBC, 0xD5, 0x87, 0x3B, 0x3B, 0x7A, 0xA8, 0xBD, 0x3A,
+ 0x62, 0xCD, 0xA4, 0x3C, 0xA4, 0x05, 0x33, 0xBC, 0xB8, 0x3B, 0x4C, 0xBD,
+ 0x93, 0xA2, 0x04, 0xBD, 0x2F, 0x94, 0x83, 0xBD, 0x14, 0xC6, 0x09, 0xBA,
+ 0x72, 0x81, 0x3A, 0x3C, 0x93, 0x9C, 0xC6, 0xBC, 0x5D, 0xBC, 0xD5, 0x3C,
+ 0x89, 0x53, 0xBB, 0x3C, 0xF4, 0xF2, 0x07, 0x3D, 0xCD, 0x58, 0x18, 0xBB,
+ 0x6F, 0x87, 0x00, 0xBC, 0x91, 0x39, 0x06, 0x3D, 0xBD, 0xF0, 0x3E, 0x3C,
+ 0xC7, 0x42, 0x28, 0x3D, 0x9F, 0xBC, 0x03, 0x3D, 0xA4, 0xA5, 0xE5, 0xBC,
+ 0xB2, 0x63, 0x01, 0xBD, 0x0F, 0xDA, 0x0F, 0xBD, 0xB7, 0x66, 0xA2, 0x3C,
+ 0x04, 0xD8, 0x72, 0x3D, 0xD6, 0x02, 0x8C, 0x3C, 0x0B, 0xEC, 0x9D, 0xBE,
+ 0x4C, 0xE1, 0xE0, 0xBC, 0xB9, 0xF5, 0xA2, 0x3C, 0xF8, 0xBB, 0x5E, 0x3C,
+ 0x45, 0xE5, 0x15, 0xBE, 0x24, 0x4F, 0x6F, 0x3D, 0x8B, 0xF4, 0x1D, 0x3F,
+ 0x39, 0xAB, 0x79, 0xBD, 0x9A, 0x74, 0xC8, 0x3C, 0x62, 0xC3, 0xEB, 0x3D,
+ 0x98, 0x1B, 0x8C, 0xBC, 0x36, 0x68, 0x4A, 0xBC, 0x2B, 0x98, 0x1F, 0x3E,
+ 0x61, 0xA3, 0x56, 0x3E, 0xBD, 0x74, 0x66, 0xBC, 0x91, 0x5B, 0x51, 0x3E,
+ 0x9F, 0x8D, 0xAC, 0x3E, 0x27, 0xD4, 0x2A, 0xBD, 0x3C, 0xEA, 0x07, 0x3D,
+ 0xDB, 0x55, 0x24, 0x3F, 0x1E, 0x51, 0xF5, 0xBB, 0xE2, 0x33, 0xB4, 0x3E,
+ 0xAB, 0xAA, 0x3E, 0xBF, 0xF7, 0x76, 0xC0, 0xBC, 0x20, 0x6E, 0x61, 0x3E,
+ 0xE8, 0xEF, 0x13, 0xBE, 0xF9, 0x37, 0x99, 0x3F, 0xCE, 0xC7, 0x6E, 0x3E,
+ 0x0E, 0x00, 0x63, 0xBB, 0xAC, 0x1F, 0x05, 0x3E, 0x6E, 0xDB, 0x86, 0x3D,
+ 0x09, 0x87, 0x6F, 0xBD, 0xCF, 0xAA, 0xC8, 0x3E, 0xA7, 0x99, 0x25, 0x3E,
+ 0x9C, 0xC1, 0x90, 0x3E, 0x0A, 0xFE, 0x2A, 0x3E, 0xC6, 0x5B, 0xD3, 0x3E,
+ 0x85, 0x1D, 0x38, 0x3E, 0xBF, 0xB6, 0xBE, 0xBE, 0x07, 0x5F, 0xDD, 0xBC,
+ 0xA5, 0x93, 0xDA, 0xBE, 0xC8, 0x12, 0x99, 0xBE, 0x94, 0x3B, 0x96, 0x3D,
+ 0x72, 0xB6, 0xB4, 0xBC, 0x55, 0xE5, 0xD5, 0xBB, 0x03, 0x27, 0x0F, 0x3E,
+ 0x40, 0x72, 0x36, 0xBD, 0x87, 0x09, 0xC4, 0x3B, 0xC8, 0x94, 0xBC, 0x3E,
+ 0xCB, 0x2B, 0x18, 0x3F, 0x55, 0x17, 0x6A, 0xBE, 0xD6, 0xCE, 0x82, 0xBD,
+ 0x7C, 0x92, 0x24, 0xBD, 0x87, 0x56, 0x88, 0xBD, 0x07, 0x29, 0x97, 0x3E,
+ 0x0E, 0xD5, 0x3C, 0xBE, 0xE0, 0xD1, 0x10, 0xBE, 0x68, 0x65, 0x26, 0xBF,
+ 0x8A, 0x69, 0xAD, 0xBE, 0xB1, 0x7F, 0x42, 0xBD, 0x21, 0x94, 0xD2, 0xBE,
+ 0xCC, 0x7B, 0xE5, 0x3C, 0xF8, 0xCC, 0x98, 0x3E, 0x56, 0xAE, 0xE7, 0xBB,
+ 0x4A, 0x36, 0x04, 0xBC, 0xCC, 0x9B, 0x92, 0x3E, 0xEE, 0xC1, 0x96, 0x3D,
+ 0x6F, 0xA0, 0xA8, 0xBE, 0x7E, 0x0C, 0xCB, 0xBE, 0x16, 0xA9, 0x8C, 0x3F,
+ 0xF7, 0xC9, 0x73, 0xBD, 0xA3, 0xCC, 0x01, 0x3E, 0xCF, 0x64, 0xAD, 0xBC,
+ 0x5A, 0x32, 0x33, 0x3E, 0x3D, 0xC1, 0xE8, 0x3D, 0x6E, 0xED, 0x34, 0xBE,
+ 0xBB, 0xEA, 0xB5, 0xBE, 0x5C, 0xBC, 0xFC, 0xBD, 0xBA, 0xDA, 0x95, 0x3C,
+ 0x6B, 0xAE, 0x77, 0xBE, 0x24, 0x55, 0x4D, 0xBC, 0x9D, 0x63, 0x5D, 0xBF,
+ 0x7B, 0x08, 0xA4, 0x3D, 0x38, 0x91, 0x0B, 0xBF, 0xBC, 0x09, 0x7B, 0xBB,
+ 0x0F, 0xD4, 0x1F, 0x3E, 0x85, 0x75, 0x55, 0x3E, 0xB7, 0x15, 0x16, 0xBE,
+ 0x99, 0x8A, 0x88, 0xBE, 0x59, 0x25, 0xD5, 0x3D, 0xD0, 0xED, 0x6D, 0x3F,
+ 0xCF, 0x63, 0x1A, 0x3F, 0x22, 0x4C, 0x0A, 0x3F, 0xC3, 0xC8, 0xCE, 0x3E,
+ 0xBD, 0xFF, 0x79, 0xBF, 0x2F, 0x69, 0x1E, 0xBD, 0xEA, 0x94, 0xEF, 0x3E,
+ 0x6D, 0xCB, 0xD9, 0x3E, 0x77, 0x99, 0xFA, 0xBE, 0xAF, 0x84, 0xD7, 0x3E,
+ 0xE3, 0x3E, 0x62, 0xBE, 0xD4, 0xD1, 0xBC, 0xBE, 0xC5, 0x72, 0x31, 0xBF,
+ 0x2E, 0x2B, 0xF1, 0xBE, 0x19, 0x81, 0x09, 0x3E, 0x0E, 0xE3, 0x16, 0x3D,
+ 0xBF, 0x1E, 0xD0, 0x3E, 0xC9, 0xB2, 0x8E, 0x3E, 0xEA, 0x9F, 0x66, 0x3E,
+ 0xEA, 0x90, 0x76, 0x3E, 0xDD, 0x65, 0xB4, 0xBE, 0x2A, 0x0B, 0x96, 0x3E,
+ 0x57, 0xE8, 0xA3, 0xBF, 0x9B, 0x97, 0x05, 0x3E, 0xF3, 0x1C, 0x02, 0x3D,
+ 0x23, 0xAA, 0x31, 0x3F, 0x80, 0x24, 0xAA, 0xBE, 0xA5, 0xAA, 0x94, 0x3E,
+ 0xB2, 0x3F, 0xC1, 0x3E, 0x83, 0x93, 0xC3, 0x3D, 0xA6, 0xF3, 0xB3, 0xBE,
+ 0xD6, 0x80, 0xB9, 0xBC, 0xA3, 0x1B, 0x32, 0x3F, 0x08, 0x83, 0xD5, 0xBE,
+ 0x48, 0xF1, 0x16, 0xBE, 0xEC, 0x48, 0x9D, 0xBE, 0x21, 0x16, 0x9E, 0x3F,
+ 0x79, 0x66, 0xEE, 0xBE, 0xC3, 0x09, 0x85, 0xBE, 0x70, 0xCC, 0x91, 0x3D,
+ 0x04, 0xB1, 0xE0, 0xBD, 0x80, 0x14, 0x8D, 0xBD, 0xF3, 0x1D, 0xB1, 0x3C,
+ 0xFB, 0xB1, 0x6D, 0xBD, 0x72, 0xC2, 0xA4, 0x3C, 0xDD, 0x5D, 0x77, 0xBD,
+ 0xDB, 0x8E, 0xCB, 0xBC, 0x89, 0xB4, 0x92, 0x3D, 0xFF, 0x51, 0xB7, 0x3D,
+ 0x4C, 0xCD, 0xB4, 0x3D, 0xFC, 0x10, 0x13, 0x3D, 0xF7, 0x63, 0x8E, 0x3D,
+ 0xF9, 0x96, 0x93, 0x3D, 0x34, 0x2B, 0x32, 0x3C, 0xE6, 0xA0, 0x10, 0xBE,
+ 0x07, 0x0D, 0x66, 0x3E, 0x64, 0x52, 0x98, 0xBD, 0xA3, 0x8E, 0x49, 0x3D,
+ 0xCB, 0x38, 0x09, 0xBC, 0x0B, 0xB7, 0x22, 0xBE, 0x09, 0x76, 0x6A, 0x3D,
+ 0x1B, 0xA2, 0x91, 0xBD, 0xB7, 0x3B, 0x9D, 0xBD, 0xC9, 0xF0, 0x3D, 0xBE,
+ 0xE4, 0x72, 0x5F, 0xBD, 0x93, 0x90, 0x5B, 0x3D, 0x5F, 0x43, 0x85, 0xBD,
+ 0xC0, 0x75, 0xE6, 0xBD, 0xEA, 0xC4, 0xEA, 0xBD, 0x48, 0xDE, 0xAE, 0xBD,
+ 0x5F, 0xE9, 0x6D, 0xBE, 0xE1, 0x06, 0xDB, 0xBD, 0x84, 0x1B, 0x14, 0xBE,
+ 0x72, 0x7D, 0x13, 0xBE, 0x86, 0x53, 0x8A, 0x3D, 0x80, 0x6F, 0x8A, 0x3C,
+ 0x7A, 0x56, 0xA6, 0xBD, 0xBE, 0x55, 0x84, 0xBD, 0x04, 0xBE, 0xC8, 0x3D,
+ 0xA4, 0x69, 0x3F, 0xBC, 0xC2, 0x11, 0x95, 0x3C, 0xC2, 0xA0, 0xF6, 0x3D,
+ 0x7D, 0x4D, 0x89, 0x3E, 0x82, 0x4D, 0x1F, 0xBC, 0x1D, 0xFD, 0x8E, 0xBD,
+ 0xC5, 0xA6, 0x26, 0x3D, 0xD6, 0xEE, 0x30, 0x3E, 0x6D, 0x7C, 0x8E, 0xBD,
+ 0xA6, 0xC3, 0x93, 0x3D, 0x08, 0x0D, 0xDE, 0xBD, 0xA2, 0xCD, 0x1E, 0x3B,
+ 0x1D, 0x12, 0x69, 0x3C, 0xDA, 0xAF, 0x28, 0xBE, 0xB9, 0xC1, 0xCB, 0x3C,
+ 0xF7, 0xDD, 0x48, 0xBD, 0xE7, 0xC8, 0x9C, 0xBD, 0x03, 0xC2, 0x32, 0xBD,
+ 0x54, 0xC8, 0x1A, 0xBE, 0xD4, 0x46, 0x1D, 0xBE, 0xB2, 0xD2, 0x2D, 0xBD,
+ 0xAE, 0x45, 0x43, 0x3E, 0xB4, 0x8A, 0x84, 0xBE, 0xF2, 0x90, 0x9B, 0xBE,
+ 0x77, 0x00, 0x9E, 0x3D, 0x56, 0xAE, 0xFD, 0x3D, 0x1C, 0xA5, 0x8F, 0xBD,
+ 0xDA, 0xD2, 0x9C, 0x3C, 0x84, 0x00, 0xB4, 0x3E, 0xC5, 0x11, 0xA1, 0xBD,
+ 0xE4, 0x5C, 0xB8, 0x3D, 0xC2, 0xA6, 0x82, 0x3D, 0xB7, 0x13, 0x28, 0x3D,
+ 0x4F, 0x3F, 0x1F, 0xBC, 0xEC, 0x6E, 0x86, 0xBD, 0x72, 0x5F, 0xE9, 0xBD,
+ 0xE3, 0x0E, 0xF0, 0xBD, 0x84, 0x21, 0xBE, 0xBC, 0xAF, 0xB8, 0xED, 0x3A,
+ 0x1F, 0x71, 0x2D, 0x3C, 0x4A, 0x1A, 0xD6, 0x3D, 0xBE, 0x04, 0x95, 0x3C,
+ 0x32, 0xE6, 0x48, 0x3D, 0x2D, 0x41, 0x03, 0x3B, 0x8A, 0xA5, 0x17, 0x38,
+ 0xCD, 0x60, 0xC3, 0xBA, 0x04, 0x56, 0x90, 0x3C, 0x2D, 0x2B, 0xB1, 0x3D,
+ 0x60, 0x48, 0x56, 0xBD, 0x6D, 0x68, 0x2F, 0x3E, 0x5E, 0xF0, 0x3B, 0x3E,
+ 0xFE, 0x22, 0x81, 0xBD, 0xF9, 0xA5, 0x9A, 0x3D, 0x70, 0x14, 0x5C, 0xBE,
+ 0x5D, 0x80, 0x9A, 0xBC, 0xB8, 0x69, 0x7B, 0x3E, 0x5E, 0x73, 0x8F, 0xBC,
+ 0x20, 0x54, 0x56, 0xBD, 0x3F, 0x8D, 0x3B, 0xBD, 0xEC, 0xB6, 0x6C, 0x3D,
+ 0xF8, 0x7E, 0x5E, 0x3D, 0x0E, 0x98, 0xDA, 0xBD, 0x4A, 0x5C, 0x97, 0xBD,
+ 0x37, 0xAB, 0x88, 0x3C, 0xC3, 0x9E, 0x2D, 0xBD, 0x1C, 0x5F, 0x5B, 0xBB,
+ 0xA7, 0x46, 0x19, 0x3D, 0x39, 0xAB, 0x28, 0x3D, 0x74, 0x47, 0x16, 0xBD,
+ 0xA6, 0x6E, 0x03, 0x3C, 0x3C, 0x58, 0xC6, 0x3C, 0x31, 0x74, 0xD2, 0xBB,
+ 0x82, 0x3B, 0xB9, 0xB8, 0x6F, 0xB2, 0xCF, 0x3D, 0x41, 0x1F, 0x41, 0x3D,
+ 0xF5, 0x81, 0xC2, 0xBC, 0x4D, 0xFC, 0xB0, 0xBD, 0xC4, 0xF0, 0x16, 0xBD,
+ 0x17, 0x6E, 0x01, 0xBC, 0x43, 0x5D, 0x07, 0xBC, 0xB7, 0xD5, 0x25, 0x3D,
+ 0xBF, 0x56, 0x46, 0xBD, 0x50, 0xC0, 0x5E, 0xBD, 0xA2, 0xC6, 0x2F, 0x3D,
+ 0x6B, 0xAD, 0x8B, 0x3D, 0x07, 0x9B, 0x3E, 0xBC, 0xCB, 0x3B, 0xAE, 0xBC,
+ 0xE2, 0x4F, 0x1B, 0x3F, 0xA8, 0xFB, 0x28, 0x3C, 0x0D, 0x98, 0x8C, 0x3C,
+ 0x8E, 0x3B, 0xFD, 0x3B, 0xA1, 0x4D, 0xAD, 0xBD, 0xA5, 0x50, 0x03, 0x3E,
+ 0xE1, 0x98, 0x2B, 0xBD, 0xA7, 0xE2, 0x06, 0xBD, 0x1A, 0x62, 0x1C, 0x3D,
+ 0x4B, 0xDD, 0x5D, 0x3D, 0x3F, 0xD0, 0xD9, 0xBD, 0x9A, 0x42, 0xC8, 0xBD,
+ 0x44, 0x40, 0x28, 0xBD, 0xF5, 0xFB, 0xD6, 0xBD, 0x8B, 0xA7, 0xA8, 0xBC,
+ 0x02, 0x04, 0x36, 0x3D, 0xAB, 0x45, 0x7F, 0xBC, 0x95, 0x47, 0xB2, 0xBD,
+ 0x46, 0x72, 0xF4, 0x3C, 0x58, 0x93, 0x83, 0xBC, 0x4F, 0x89, 0x48, 0x3B,
+ 0x1F, 0x6E, 0xEC, 0x3D, 0x9A, 0x93, 0xE2, 0x3C, 0x69, 0x14, 0x83, 0x3D,
+ 0x08, 0x7A, 0xC9, 0x3D, 0x7A, 0x56, 0xFE, 0x3D, 0x25, 0xBA, 0xCC, 0xBD,
+ 0x3E, 0x7F, 0xD9, 0xBD, 0x1D, 0xC1, 0x17, 0xBE, 0xEA, 0x3C, 0xD3, 0xBB,
+ 0x77, 0x0C, 0xC0, 0x3A, 0xAD, 0xE1, 0x1C, 0xBD, 0x02, 0x03, 0x1E, 0xBF,
+ 0xDC, 0x7F, 0xA5, 0xBC, 0xD4, 0x2B, 0x06, 0x3E, 0x1D, 0x9E, 0x55, 0x3E,
+ 0x7B, 0x20, 0xE0, 0x3D, 0x39, 0x40, 0x3B, 0xBF, 0xFB, 0xBD, 0xD7, 0x3E,
+ 0x79, 0x6C, 0xA0, 0xBD, 0x43, 0x2F, 0x02, 0x3D, 0x63, 0xD2, 0xE6, 0xBC,
+ 0xD6, 0xFB, 0x0D, 0xBC, 0x1B, 0x21, 0x45, 0x3D, 0x27, 0xD0, 0x9D, 0x3E,
+ 0x7F, 0x51, 0xD8, 0xBD, 0x78, 0xAF, 0x51, 0x3B, 0x39, 0x33, 0xE5, 0x3E,
+ 0xC1, 0xD3, 0xA9, 0xBC, 0x58, 0xB9, 0x89, 0xBE, 0xAC, 0x37, 0x79, 0xBB,
+ 0x73, 0x36, 0x72, 0xBE, 0x42, 0x3E, 0xB6, 0x3C, 0x1D, 0x88, 0xAF, 0x3E,
+ 0x32, 0xFE, 0xDF, 0xBE, 0x87, 0x5A, 0xFF, 0xBC, 0xCD, 0xFF, 0xF7, 0xBC,
+ 0x58, 0xCC, 0x86, 0xBD, 0xC0, 0xEA, 0x01, 0xBF, 0x12, 0x3C, 0x12, 0x3E,
+ 0x05, 0x4C, 0x0E, 0x3E, 0xDA, 0x54, 0x9F, 0x3D, 0x1F, 0x78, 0x68, 0x3F,
+ 0x0A, 0x6E, 0xBE, 0x3D, 0xA7, 0x13, 0xAB, 0x3D, 0x0D, 0xD3, 0x1B, 0xBF,
+ 0x04, 0xDF, 0x8B, 0xBD, 0x6D, 0x62, 0x0E, 0x3D, 0x27, 0x7F, 0x21, 0xBE,
+ 0x1E, 0xAD, 0x01, 0x3E, 0x55, 0x84, 0xB1, 0x3C, 0x2D, 0x9B, 0xF8, 0x3B,
+ 0x9F, 0xBB, 0x8C, 0xBD, 0x0C, 0x05, 0x65, 0x3D, 0x9D, 0x8B, 0xFF, 0xBC,
+ 0x4C, 0x22, 0x18, 0xBE, 0x65, 0x5B, 0xE4, 0xBD, 0x2C, 0xF6, 0xA4, 0xBD,
+ 0xAF, 0xEB, 0xF3, 0x3C, 0xCC, 0xFF, 0x88, 0xBD, 0x8B, 0x6E, 0x35, 0x3D,
+ 0xAB, 0x45, 0x3B, 0x3D, 0xFA, 0xCD, 0x39, 0xBD, 0x47, 0xD2, 0x2C, 0xBD,
+ 0x33, 0x7D, 0x14, 0x3D, 0x0E, 0x7D, 0x93, 0x3D, 0xBD, 0xD4, 0x2C, 0x3D,
+ 0x92, 0x19, 0x2B, 0x3D, 0xC0, 0x3D, 0xD4, 0x3D, 0x88, 0x12, 0x31, 0x3D,
+ 0x2E, 0x3F, 0x3C, 0x3D, 0x8C, 0xAE, 0x4F, 0xBC, 0xBD, 0x93, 0x65, 0x3C,
+ 0xC7, 0xF2, 0x8E, 0xBC, 0xF6, 0x40, 0xDB, 0x3D, 0xFA, 0xCF, 0x0D, 0x3D,
+ 0x5E, 0x16, 0x54, 0xBE, 0xFF, 0xFC, 0x8A, 0x3D, 0xBB, 0x77, 0xAB, 0xBC,
+ 0x8C, 0xC1, 0x8C, 0xBD, 0x65, 0x24, 0xAB, 0x3C, 0x01, 0x10, 0x0D, 0xBC,
+ 0x97, 0x6F, 0x15, 0xBD, 0xE3, 0x44, 0x25, 0xBD, 0x35, 0x64, 0xB2, 0xBC,
+ 0xAB, 0x1D, 0x20, 0xBD, 0x16, 0xF6, 0xAA, 0x3D, 0x03, 0xCC, 0x89, 0x3C,
+ 0x2B, 0x2C, 0x65, 0x3D, 0xDD, 0xC4, 0x86, 0xBC, 0xF0, 0x3B, 0x9B, 0x3C,
+ 0x8B, 0x3F, 0x12, 0xBD, 0xDD, 0x82, 0x12, 0xBE, 0x15, 0xAC, 0x87, 0x3D,
+ 0x2A, 0xD7, 0x12, 0x3D, 0xE0, 0x0D, 0x42, 0x3B, 0x60, 0x72, 0xCC, 0xBA,
+ 0x92, 0x48, 0xBB, 0xBD, 0xE0, 0x77, 0xC7, 0xBD, 0x66, 0x54, 0xC4, 0x3B,
+ 0xED, 0x57, 0xBD, 0xBC, 0x02, 0x37, 0x5B, 0xBD, 0x16, 0xD4, 0x8E, 0x3D,
+ 0x98, 0x47, 0xA5, 0x3D, 0xD4, 0x53, 0x76, 0x3D, 0x78, 0x3F, 0x95, 0x3C,
+ 0x84, 0xA7, 0x5E, 0x3D, 0x09, 0xE6, 0x85, 0xBB, 0x62, 0x0F, 0x1E, 0x3E,
+ 0x8A, 0xA4, 0xA2, 0x3D, 0xDC, 0x91, 0x86, 0xBD, 0x02, 0x9D, 0x8B, 0x3E,
+ 0xE2, 0x02, 0x13, 0xBE, 0x65, 0x21, 0x93, 0xBE, 0x65, 0x6B, 0xA7, 0xBF,
+ 0x12, 0x6F, 0x04, 0x3C, 0x64, 0x43, 0x2C, 0xBE, 0xD8, 0x0D, 0x02, 0xBD,
+ 0x9F, 0x13, 0x8A, 0x3E, 0x19, 0x43, 0x76, 0x3E, 0xED, 0xF3, 0x8B, 0xBD,
+ 0x5C, 0xC1, 0x88, 0xBD, 0x55, 0x4E, 0xCF, 0xBC, 0xB5, 0x7F, 0x45, 0xBE,
+ 0x28, 0x0B, 0xF8, 0xBC, 0x4D, 0xD6, 0xAA, 0x3E, 0xE0, 0x7F, 0x36, 0xBF,
+ 0x91, 0xBF, 0xAD, 0xBE, 0xD9, 0xE5, 0x77, 0x3C, 0xF1, 0xE7, 0x80, 0x3D,
+ 0x66, 0x15, 0x32, 0xBE, 0xAE, 0x7A, 0x95, 0x3D, 0x23, 0x64, 0x5D, 0xBE,
+ 0x2C, 0x3D, 0x86, 0x3E, 0x39, 0x8A, 0x9E, 0xBE, 0x6A, 0x84, 0x4F, 0xBE,
+ 0x96, 0xB4, 0x50, 0xBE, 0x9E, 0xD3, 0x64, 0x3D, 0x52, 0x54, 0xBA, 0xBC,
+ 0x6B, 0x0D, 0x97, 0xBD, 0x45, 0xFC, 0x86, 0x3D, 0xDF, 0x8E, 0x4B, 0x3F,
+ 0x31, 0x6A, 0x1F, 0x3C, 0xD9, 0xAC, 0xFF, 0xBD, 0x59, 0x63, 0x91, 0x3D,
+ 0x8A, 0x83, 0x63, 0x3F, 0x1F, 0x42, 0x4C, 0xBE, 0xD7, 0xF0, 0x96, 0x3B,
+ 0xEC, 0x4D, 0x84, 0xBC, 0xC4, 0xB1, 0x33, 0x3D, 0x7B, 0x74, 0xC2, 0x3C,
+ 0xBD, 0xAF, 0xA7, 0x3C, 0xA7, 0xCA, 0x83, 0xBE, 0xDC, 0x73, 0xD6, 0xBD,
+ 0x59, 0x7B, 0x81, 0xBB, 0x43, 0x95, 0x2A, 0xBE, 0x93, 0xD6, 0x2D, 0x3C,
+ 0x0E, 0x2C, 0x81, 0x3E, 0xC1, 0x23, 0x63, 0xBD, 0x89, 0xF6, 0x1A, 0x3E,
+ 0xFB, 0x56, 0xB8, 0xBB, 0xD7, 0x06, 0x32, 0xBE, 0xB2, 0xC7, 0x0F, 0xBE,
+ 0xDB, 0x61, 0xE8, 0x3A, 0xA2, 0x38, 0xC7, 0x3C, 0xFA, 0x9C, 0xD3, 0x3D,
+ 0x97, 0x12, 0x3F, 0x3E, 0xFB, 0xB1, 0x02, 0x3F, 0xE0, 0xC4, 0x44, 0x3D,
+ 0xD3, 0xAE, 0x5B, 0x3D, 0x6F, 0xAA, 0x9C, 0x3E, 0xFC, 0xC6, 0x72, 0x3B,
+ 0x54, 0x02, 0xF4, 0xBE, 0x53, 0x59, 0x11, 0x3D, 0x00, 0x54, 0x3C, 0xBC,
+ 0x2C, 0xA9, 0xC9, 0xBD, 0xD6, 0xD8, 0xEE, 0x3B, 0xEE, 0x1B, 0x62, 0x3E,
+ 0xE6, 0x52, 0x7F, 0x3E, 0x28, 0x2C, 0x17, 0x3E, 0xD9, 0x52, 0x21, 0x3E,
+ 0x01, 0x13, 0x8E, 0x3D, 0x9B, 0xBD, 0x0C, 0xBE, 0xF4, 0x46, 0x89, 0x3A,
+ 0xBF, 0x30, 0x5B, 0x3C, 0xCA, 0x06, 0x21, 0xBE, 0xDF, 0xD0, 0x86, 0x3B,
+ 0xCC, 0x88, 0x65, 0x3E, 0xA3, 0x6E, 0x49, 0x3E, 0x5C, 0xA9, 0x10, 0xBE,
+ 0xE2, 0xD1, 0x1B, 0x3C, 0x82, 0x0E, 0x89, 0xBE, 0x31, 0x59, 0x4D, 0xBD,
+ 0xB4, 0x4D, 0x98, 0x3E, 0xD4, 0xC2, 0xDB, 0x3D, 0x0F, 0xC0, 0xA7, 0x3D,
+ 0x10, 0xF2, 0xA5, 0x3D, 0x84, 0x92, 0x92, 0x3E, 0x69, 0x53, 0x35, 0xBE,
+ 0x57, 0x7E, 0x2A, 0x3D, 0xDF, 0xB2, 0xB2, 0xBD, 0x81, 0x50, 0xAE, 0x3D,
+ 0x81, 0xD6, 0x4A, 0xBE, 0x2A, 0x55, 0xBF, 0x3D, 0x9C, 0x68, 0xE9, 0x3D,
+ 0x78, 0x24, 0xED, 0xBD, 0x1B, 0xE5, 0xD4, 0x3D, 0x59, 0xAF, 0xC5, 0x3C,
+ 0xCE, 0x95, 0x9C, 0x3E, 0xB6, 0x52, 0xFC, 0xBE, 0x0A, 0x42, 0xE0, 0x3E,
+ 0x0E, 0x78, 0x07, 0xBE, 0x12, 0x1D, 0x22, 0x3E, 0xEB, 0x1B, 0x35, 0xBD,
+ 0x6C, 0x16, 0xE9, 0xBE, 0xED, 0xD6, 0x8D, 0x3D, 0x45, 0xA7, 0x0F, 0xBD,
+ 0x9A, 0x9C, 0x5A, 0x3E, 0xB9, 0xF0, 0x2D, 0x3C, 0x82, 0x73, 0x9B, 0xBE,
+ 0x5E, 0x53, 0x02, 0xBF, 0x0E, 0x88, 0xCC, 0x3D, 0x71, 0xED, 0xD7, 0x3D,
+ 0xC4, 0x84, 0x0D, 0x3F, 0x65, 0xEC, 0x72, 0x3C, 0x0C, 0xEC, 0x86, 0xBB,
+ 0x77, 0x63, 0x5C, 0xBF, 0x02, 0x29, 0xCA, 0xBD, 0xAA, 0x8F, 0xB5, 0x3D,
+ 0x2C, 0xD3, 0x4A, 0xBF, 0x24, 0x15, 0xA2, 0x3F, 0x8A, 0xE2, 0xB2, 0x3D,
+ 0x93, 0x71, 0x25, 0xBD, 0xD2, 0x8C, 0x52, 0xBF, 0x67, 0xAA, 0x77, 0x3E,
+ 0xEE, 0xD6, 0x49, 0xBE, 0x3F, 0x55, 0x79, 0x3D, 0xC0, 0xDC, 0x35, 0x3D,
+ 0x29, 0x9E, 0x49, 0xBC, 0xE4, 0x59, 0x90, 0x3E, 0x98, 0x32, 0x5D, 0xBD,
+ 0x93, 0x1F, 0x37, 0xBF, 0x0C, 0x2F, 0x77, 0x3F, 0x68, 0x1C, 0xC9, 0xBB,
+ 0xD4, 0xE1, 0xC5, 0xBD, 0x2F, 0x81, 0x81, 0x3E, 0x87, 0x26, 0x57, 0x3E,
+ 0xBD, 0xCC, 0xF6, 0x39, 0x41, 0x24, 0xC9, 0x3E, 0xC4, 0x5B, 0xA8, 0x3D,
+ 0xCF, 0x65, 0x95, 0xBB, 0xA7, 0x5F, 0xDF, 0x3E, 0xED, 0xE1, 0x61, 0xBF,
+ 0x5F, 0xB2, 0x61, 0x3F, 0x80, 0x92, 0xF2, 0x3E, 0x74, 0xCD, 0x0E, 0x3F,
+ 0x5F, 0x56, 0xBE, 0x3D, 0x6B, 0x5E, 0x74, 0x3F, 0x88, 0x41, 0xB2, 0xBE,
+ 0x9C, 0xDA, 0xC4, 0xBE, 0x80, 0x46, 0x9A, 0xBD, 0xFA, 0x5B, 0x8C, 0xBE,
+ 0xA3, 0xD0, 0x0E, 0x3F, 0x4E, 0xB0, 0x99, 0x3E, 0xDF, 0x9A, 0xDE, 0xBD,
+ 0x75, 0xBC, 0x31, 0x3F, 0xAD, 0x6A, 0xCC, 0x3E, 0xAD, 0xEF, 0x50, 0xBC,
+ 0xDB, 0x5B, 0x02, 0x3E, 0x08, 0xA7, 0x1D, 0x3E, 0x18, 0x58, 0xFE, 0xBD,
+ 0xCE, 0x68, 0x07, 0xBF, 0x70, 0x72, 0x4E, 0xBE, 0x10, 0xD1, 0xC7, 0x3E,
+ 0x12, 0xB5, 0x82, 0x3E, 0x1B, 0xC1, 0xFD, 0x3D, 0xF1, 0xB4, 0x00, 0x3D,
+ 0xBA, 0x7E, 0x5C, 0xBE, 0xC3, 0xE0, 0x43, 0x3E, 0xC8, 0x2F, 0x87, 0x3C,
+ 0x67, 0xD3, 0x06, 0x3F, 0x04, 0xB5, 0x9E, 0xBE, 0x80, 0x0E, 0xB4, 0xBA,
+ 0x14, 0x31, 0x0F, 0x3F, 0x95, 0x06, 0xC3, 0x3E, 0x17, 0x81, 0x2E, 0xBF,
+ 0x68, 0x6D, 0x6D, 0xBD, 0x24, 0xB6, 0x14, 0xBF, 0xE0, 0xCA, 0x19, 0x3C,
+ 0xF9, 0xB1, 0xB7, 0xBE, 0xF3, 0x85, 0x16, 0xBF, 0x47, 0xDC, 0x3A, 0xBC,
+ 0x56, 0x9B, 0x5F, 0xBD, 0x21, 0x33, 0x5B, 0x3F, 0x47, 0xA4, 0x96, 0xBE,
+ 0xA1, 0x73, 0x60, 0xBE, 0x61, 0x52, 0x09, 0x3D, 0x06, 0x07, 0xDA, 0xBD,
+ 0xDD, 0xEE, 0xA4, 0x3E, 0x46, 0xA3, 0x6D, 0x3D, 0x4F, 0xE8, 0xE1, 0xBE,
+ 0xD3, 0xD5, 0x13, 0xBF, 0x5B, 0xD3, 0x84, 0x3D, 0x47, 0x1B, 0x46, 0xBD,
+ 0x54, 0x4B, 0x51, 0xBD, 0x46, 0xC8, 0x2A, 0x3E, 0x09, 0x71, 0xFE, 0xBA,
+ 0x56, 0xD2, 0x91, 0xBD, 0x84, 0x0F, 0xEC, 0x3B, 0xE3, 0x8A, 0xA4, 0x3D,
+ 0x6E, 0x76, 0x99, 0x3C, 0xFB, 0x40, 0x18, 0x3D, 0x91, 0x5C, 0x69, 0x3D,
+ 0xCD, 0xDF, 0x4B, 0xBC, 0x9C, 0x74, 0xB6, 0x3C, 0x9F, 0x8D, 0x8A, 0xBD,
+ 0x52, 0x87, 0x0D, 0xBE, 0x81, 0x91, 0x11, 0x3E, 0x8D, 0x8E, 0x09, 0x3D,
+ 0x0B, 0xF7, 0xB6, 0x3B, 0xA4, 0x4F, 0x31, 0xBC, 0xC3, 0x09, 0xCC, 0xBD,
+ 0x51, 0x2A, 0x76, 0xBD, 0xEE, 0xA3, 0xA0, 0xBD, 0x44, 0xAF, 0xE6, 0x3C,
+ 0x2A, 0x41, 0xBF, 0xBD, 0x4D, 0x59, 0x25, 0x3D, 0x79, 0xAE, 0x25, 0x3C,
+ 0x00, 0x28, 0xCD, 0x3B, 0x4D, 0xD9, 0x35, 0x3C, 0x95, 0x06, 0xC3, 0xBD,
+ 0xB4, 0x67, 0x96, 0xBD, 0x9C, 0x97, 0x47, 0xBE, 0xB0, 0x0A, 0x10, 0x3D,
+ 0xAE, 0x68, 0x61, 0xBD, 0x64, 0xE3, 0x99, 0xBC, 0x47, 0xEE, 0x96, 0xBD,
+ 0xCE, 0x38, 0xF0, 0x3D, 0x40, 0x85, 0x07, 0x3D, 0xB9, 0xD8, 0xF9, 0xBC,
+ 0xCA, 0xCE, 0x8C, 0xBC, 0xAF, 0x01, 0x6B, 0x3D, 0x41, 0x4A, 0x8A, 0x3C,
+ 0x83, 0xA7, 0xE0, 0xBC, 0xD9, 0xDF, 0x23, 0xBD, 0x81, 0x0B, 0xE1, 0x3C,
+ 0xE4, 0x1F, 0x14, 0x3C, 0x23, 0x07, 0x41, 0xBD, 0x37, 0x0F, 0x0B, 0xBE,
+ 0x0F, 0x4E, 0x4F, 0x3D, 0xD4, 0x15, 0xA8, 0xBC, 0x50, 0x0F, 0x1E, 0xBD,
+ 0x20, 0xEE, 0xCE, 0x3B, 0xF1, 0xED, 0x12, 0xBD, 0xA5, 0xF7, 0xA4, 0xBC,
+ 0x92, 0xE4, 0xE5, 0xBB, 0xD1, 0xF7, 0x8C, 0x3D, 0xA0, 0xE3, 0x8F, 0xBD,
+ 0x05, 0xFD, 0xAE, 0x3D, 0x2D, 0x97, 0x4B, 0x3D, 0x09, 0xE2, 0x56, 0x3D,
+ 0x82, 0xBD, 0x30, 0xBB, 0x94, 0x6E, 0xCE, 0xBD, 0x7C, 0x4A, 0x6A, 0x3D,
+ 0x98, 0x58, 0x54, 0xBE, 0xA8, 0xC1, 0x09, 0x3D, 0x53, 0x46, 0x0C, 0xBD,
+ 0x7B, 0x2C, 0x6D, 0xBC, 0xBA, 0xFE, 0x90, 0x3D, 0x7E, 0xF3, 0xAE, 0xBB,
+ 0xCF, 0xB6, 0xC4, 0x3B, 0xF4, 0x05, 0x12, 0x3D, 0x88, 0x58, 0x9C, 0x3C,
+ 0xC8, 0xA6, 0x09, 0xBD, 0xC7, 0x06, 0x91, 0xBC, 0x54, 0xC6, 0xA5, 0x3D,
+ 0x22, 0x50, 0x0C, 0x3C, 0x3B, 0x38, 0x02, 0x3D, 0xD9, 0xDA, 0xBD, 0xBC,
+ 0x0A, 0x59, 0xBC, 0x3C, 0x57, 0xA3, 0x60, 0x3D, 0x7F, 0x19, 0xBE, 0xBD,
+ 0x24, 0xAD, 0x62, 0xBC, 0x74, 0x6A, 0x89, 0xBC, 0xFE, 0x10, 0xAE, 0xBB,
+ 0xD6, 0x60, 0xD1, 0x3C, 0x39, 0xC4, 0x26, 0xBD, 0x3B, 0x29, 0x04, 0xBD,
+ 0x07, 0x39, 0xE2, 0xBC, 0x8F, 0x62, 0x80, 0x3D, 0x5E, 0xB7, 0xFF, 0xBC,
+ 0x0E, 0x53, 0x16, 0x3E, 0x3C, 0x10, 0x89, 0x3D, 0x5E, 0x27, 0x46, 0xBC,
+ 0xDA, 0x7A, 0x24, 0xBD, 0xED, 0xF5, 0x20, 0x3D, 0x26, 0x0A, 0x88, 0x3E,
+ 0x71, 0x50, 0xEE, 0xBA, 0x57, 0x78, 0x58, 0x3D, 0x9B, 0x13, 0x81, 0xBD,
+ 0x5F, 0xFE, 0x4E, 0x3D, 0x42, 0xC2, 0x7E, 0x3C, 0xD8, 0x67, 0x92, 0x3D,
+ 0x9A, 0xAC, 0x47, 0x3D, 0x17, 0x6D, 0x19, 0x3D, 0x70, 0x5B, 0x9A, 0x3C,
+ 0x2C, 0xCD, 0x52, 0x3A, 0x52, 0x3C, 0x02, 0x3E, 0x52, 0xAD, 0x83, 0x3D,
+ 0xC4, 0x60, 0xDB, 0x3C, 0xEA, 0x12, 0xCD, 0xBB, 0x1C, 0x01, 0x77, 0x3C,
+ 0x41, 0x91, 0x90, 0xBD, 0xCB, 0x1C, 0x17, 0x3D, 0x6B, 0xD5, 0x5B, 0xBD,
+ 0xB7, 0x89, 0xE2, 0xBD, 0xA7, 0xB8, 0x9C, 0xB9, 0xE4, 0xFD, 0xC5, 0x3B,
+ 0x8B, 0xC6, 0x26, 0xBC, 0xB3, 0xAB, 0x4D, 0xBD, 0xAA, 0x15, 0x18, 0xBD,
+ 0xD3, 0xC7, 0xAC, 0xBC, 0x86, 0xF4, 0x1F, 0x3C, 0xBA, 0xE2, 0x11, 0x3E,
+ 0xEE, 0x1C, 0x80, 0x3D, 0x17, 0xCC, 0x17, 0xBD, 0x8E, 0xB3, 0x59, 0xBE,
+ 0xB4, 0xA6, 0x43, 0xBD, 0x69, 0xD3, 0x94, 0x3D, 0x6E, 0xFA, 0xBE, 0x3B,
+ 0x09, 0xE5, 0x5E, 0x3C, 0x0E, 0x12, 0xDB, 0xBA, 0x75, 0x06, 0x0E, 0xBE,
+ 0xF8, 0xC4, 0x40, 0xBF, 0x7E, 0x44, 0x65, 0x3E, 0xFD, 0x19, 0x5E, 0x3D,
+ 0x38, 0x73, 0x35, 0xBC, 0x64, 0xA0, 0xBF, 0x3C, 0xA7, 0x47, 0x0B, 0x3E,
+ 0x9A, 0x74, 0xBC, 0x3C, 0x7F, 0xF6, 0x71, 0x3E, 0xA8, 0x4A, 0x97, 0xBE,
+ 0x67, 0x8E, 0xA9, 0xBB, 0x4B, 0x85, 0x94, 0x3E, 0x9F, 0x99, 0xDB, 0xBE,
+ 0x50, 0xBC, 0xB7, 0xBD, 0x6C, 0x43, 0x98, 0xBB, 0x40, 0x2B, 0x9F, 0xBE,
+ 0x9B, 0x8A, 0x16, 0xBB, 0x52, 0xF2, 0x8D, 0x3C, 0xEE, 0x1E, 0x55, 0x3F,
+ 0xB2, 0x3B, 0x3A, 0xBD, 0x1E, 0xD6, 0xB1, 0xBD, 0xED, 0xDB, 0xC6, 0x3E,
+ 0xA5, 0x05, 0x3B, 0xBF, 0x87, 0x42, 0x98, 0x3E, 0x1F, 0xF9, 0x94, 0x3E,
+ 0xD1, 0x7E, 0x4A, 0x3D, 0x05, 0xB4, 0x9A, 0x3F, 0x63, 0xC8, 0x05, 0xBD,
+ 0xC7, 0xEE, 0x60, 0xBF, 0xD2, 0xA6, 0x79, 0xBD, 0xEF, 0x9C, 0xBB, 0xBD,
+ 0xA7, 0x87, 0xE3, 0x3E, 0x14, 0xEB, 0x0E, 0x3E, 0xC8, 0x82, 0x3A, 0xBE,
+ 0x5F, 0x3B, 0x89, 0x3E, 0xD9, 0x8A, 0x65, 0x3D, 0xAB, 0x34, 0x01, 0x3D,
+ 0xD0, 0x0A, 0x67, 0x3E, 0xE3, 0x11, 0xD8, 0x3A, 0x88, 0x97, 0x26, 0xBE,
+ 0x31, 0x1C, 0xE2, 0xBE, 0x9D, 0x28, 0x39, 0xBE, 0x2E, 0x2C, 0x40, 0xBB,
+ 0x5E, 0x82, 0x85, 0xBE, 0x65, 0x17, 0xFA, 0x3D, 0x3D, 0x86, 0x81, 0x3E,
+ 0xBB, 0x37, 0x15, 0x3E, 0x19, 0xA2, 0xBF, 0x3D, 0x41, 0xD7, 0xF6, 0xBC,
+ 0xFC, 0xA2, 0x09, 0x3F, 0xED, 0x2D, 0xA5, 0x3D, 0xBA, 0x9B, 0x2C, 0x3D,
+ 0x60, 0xBA, 0x27, 0x3E, 0xA5, 0x7D, 0x02, 0xBF, 0xC4, 0xC5, 0x97, 0x3D,
+ 0x1F, 0x13, 0xCA, 0x3E, 0xF9, 0xA1, 0xC5, 0x3D, 0x1E, 0xC8, 0xB2, 0x3D,
+ 0xAF, 0x62, 0x85, 0xBD, 0x7D, 0x8A, 0x4C, 0x3E, 0xED, 0x54, 0xF6, 0x3D,
+ 0x52, 0xC8, 0x70, 0x3E, 0xCD, 0x70, 0x80, 0x3E, 0x20, 0x08, 0x16, 0x3F,
+ 0x4C, 0x44, 0x08, 0xBD, 0x9E, 0x4A, 0x5E, 0x3F, 0x90, 0x22, 0xFB, 0x3E,
+ 0xBB, 0x1C, 0xBD, 0xBE, 0xE1, 0x3F, 0x70, 0xBF, 0x6A, 0x95, 0xE1, 0xBD,
+ 0x37, 0x37, 0x9B, 0x3E, 0x0B, 0xD5, 0x27, 0xBF, 0x59, 0x13, 0x84, 0xBC,
+ 0xCE, 0xD2, 0x85, 0x3F, 0xAA, 0xF6, 0x91, 0x3E, 0x4D, 0xCC, 0xC5, 0x3E,
+ 0xDE, 0xAA, 0x7F, 0x40, 0x16, 0xA5, 0x9E, 0x3D, 0x6B, 0x67, 0x17, 0xBE,
+ 0xC2, 0x5D, 0x77, 0x3F, 0x4B, 0xE0, 0x86, 0x3E, 0x05, 0xAC, 0x70, 0x3F,
+ 0xB2, 0x60, 0x30, 0xBF, 0x97, 0xCF, 0xB3, 0x3E, 0x02, 0xF8, 0x6F, 0x3F,
+ 0xA1, 0xF5, 0x0A, 0x3E, 0x34, 0x71, 0x27, 0xBE, 0xBB, 0x6A, 0x17, 0xBF,
+ 0x4B, 0x7B, 0x84, 0xBF, 0x75, 0x32, 0x0D, 0x3E, 0xCF, 0xF8, 0x2A, 0xBF,
+ 0x01, 0xBF, 0xA2, 0x3F, 0xA5, 0x2B, 0x66, 0x3F, 0xDE, 0x97, 0x60, 0x3E,
+ 0x7B, 0x65, 0x59, 0x3F, 0xF9, 0xB8, 0xE8, 0x3A, 0x6F, 0x90, 0x51, 0x3D,
+ 0x9C, 0x36, 0xD9, 0xBD, 0x99, 0xAC, 0xF6, 0xBC, 0xE4, 0x59, 0xEE, 0x3C,
+ 0x17, 0x75, 0x0E, 0xBC, 0x37, 0xD8, 0xB8, 0xBD, 0x23, 0x1A, 0xD6, 0x3C,
+ 0xF5, 0x16, 0x36, 0x3D, 0x90, 0x28, 0x88, 0x3A, 0x98, 0xC9, 0x51, 0x3C,
+ 0xA2, 0x8E, 0x2B, 0x3C, 0x74, 0xFD, 0xC3, 0x3C, 0x4A, 0xD4, 0x03, 0xBE,
+ 0x45, 0xFF, 0x82, 0xBC, 0x40, 0x7E, 0x6E, 0x3C, 0x4B, 0x84, 0x98, 0xBA,
+ 0x24, 0x9B, 0x7A, 0xBC, 0xD6, 0xAA, 0x61, 0xBD, 0xA5, 0xCA, 0x31, 0xBD,
+ 0xEE, 0xC4, 0x25, 0xBC, 0x0B, 0x8E, 0xE4, 0xBC, 0x5A, 0x05, 0x5E, 0xBC,
+ 0x74, 0xCF, 0x9B, 0xBB, 0xC3, 0x53, 0x95, 0xBA, 0xF8, 0x11, 0xC0, 0xBB,
+ 0x4D, 0x0D, 0xE2, 0xBA, 0x52, 0x98, 0x90, 0x3D, 0x0A, 0xD6, 0x8C, 0xBC,
+ 0xF2, 0xC2, 0x83, 0x3B, 0xB1, 0x7C, 0xD0, 0xBC, 0xC9, 0x66, 0xF8, 0xBC,
+ 0xD3, 0x69, 0x92, 0x3D, 0xD4, 0xF4, 0xA8, 0xBE, 0xBC, 0xB0, 0x8C, 0xBF,
+ 0xF2, 0x05, 0x94, 0xBD, 0xD1, 0x76, 0x60, 0x3D, 0x59, 0x8F, 0x0F, 0x3E,
+ 0x5F, 0xB0, 0xAB, 0x3D, 0xB5, 0xC4, 0x24, 0x3E, 0x50, 0xC9, 0x9E, 0xBB,
+ 0x53, 0x3C, 0xEB, 0x3D, 0x67, 0xCD, 0x2D, 0xBE, 0xA7, 0x6C, 0xF4, 0x3B,
+ 0x3D, 0x2D, 0xD5, 0xBC, 0xF3, 0xB7, 0x88, 0xBD, 0x1C, 0x2A, 0x73, 0xBE,
+ 0x09, 0x25, 0xA5, 0xBC, 0x48, 0x4A, 0xA5, 0xBE, 0x21, 0x23, 0x9F, 0x3A,
+ 0x43, 0xB2, 0x17, 0x3E, 0x17, 0x4E, 0x7B, 0x3D, 0x98, 0xC8, 0xEF, 0xBB,
+ 0x72, 0x46, 0x42, 0xBD, 0x1D, 0xEE, 0x91, 0x3E, 0xEB, 0xD7, 0x9A, 0xBE,
+ 0x97, 0x48, 0x27, 0xBF, 0x4C, 0xA4, 0x9C, 0x3E, 0x36, 0x14, 0x9F, 0xBD,
+ 0xDE, 0x8D, 0x6E, 0xBE, 0x6B, 0x4C, 0x8C, 0x3D, 0xC9, 0x00, 0x01, 0xBE,
+ 0x66, 0x91, 0x23, 0x3D, 0x16, 0x75, 0x84, 0xBD, 0x80, 0x6F, 0x88, 0x3C,
+ 0xE5, 0xC2, 0x16, 0x3E, 0x68, 0x7F, 0x77, 0x3E, 0x7D, 0xE3, 0x2B, 0xBF,
+ 0x8D, 0x68, 0x0D, 0x3F, 0xA0, 0xD0, 0x35, 0xBE, 0xC5, 0x76, 0x2E, 0xBF,
+ 0xDC, 0x2B, 0xF8, 0xBC, 0xCA, 0xF0, 0x36, 0xBF, 0x86, 0xF4, 0x73, 0x3E,
+ 0x93, 0xB1, 0x3D, 0x3E, 0x88, 0xFA, 0xA5, 0x3E, 0xED, 0xF0, 0x8B, 0xBE,
+ 0x2B, 0x23, 0x8E, 0x3E, 0x27, 0x1D, 0x3D, 0x3F, 0x0A, 0x5D, 0xD2, 0x3C,
+ 0xDB, 0x36, 0xAD, 0xBE, 0xAB, 0xDD, 0xB6, 0x3E, 0x17, 0xB6, 0x78, 0xBE,
+ 0xE0, 0xE3, 0xA0, 0xBE, 0x39, 0x33, 0x3B, 0xBE, 0xAB, 0x21, 0x84, 0x3E,
+ 0xCB, 0x50, 0xDD, 0x3E, 0x74, 0xB9, 0xB7, 0x3B, 0xE0, 0xF0, 0x16, 0xBF,
+ 0x90, 0x9C, 0x53, 0x3E, 0xDB, 0xBA, 0xCA, 0x3E, 0x8A, 0xD7, 0xF7, 0xBD,
+ 0x8B, 0x36, 0x90, 0x3E, 0x30, 0x24, 0x00, 0xBF, 0x04, 0x53, 0xA5, 0x3C,
+ 0x49, 0x38, 0x91, 0x3E, 0xFA, 0x09, 0x2B, 0x3C, 0xD0, 0x7D, 0x37, 0x3D,
+ 0x96, 0x73, 0xBF, 0xBD, 0xAA, 0x57, 0x05, 0xBE, 0x78, 0x06, 0x29, 0xBD,
+ 0x79, 0xE6, 0xA9, 0x3C, 0x7A, 0x5D, 0x33, 0xBD, 0x15, 0x45, 0x93, 0x3C,
+ 0x7D, 0x90, 0xB1, 0x3D, 0xFD, 0xEF, 0xA7, 0x3D, 0x38, 0x9B, 0xAE, 0x3C,
+ 0x96, 0x8A, 0x8F, 0xBA, 0xED, 0xBF, 0xAD, 0x3D, 0xFB, 0x33, 0x3A, 0x3D,
+ 0xF5, 0xF1, 0x85, 0xBD, 0xCF, 0x48, 0x8F, 0x3D, 0x14, 0xD2, 0x32, 0x3D,
+ 0x9A, 0x37, 0x30, 0xBC, 0x38, 0x21, 0x23, 0xBD, 0x31, 0x99, 0x68, 0xBD,
+ 0x4A, 0x75, 0x24, 0xBD, 0x33, 0x9A, 0xD5, 0xBC, 0x52, 0x0D, 0x73, 0x3D,
+ 0x6C, 0x46, 0xE7, 0xBD, 0x90, 0x4B, 0x0C, 0xBE, 0x0B, 0xAD, 0xB7, 0xBD,
+ 0xE4, 0x9F, 0xC8, 0xBB, 0x42, 0xC4, 0xDC, 0x3C, 0xE6, 0x9A, 0xCF, 0xBC,
+ 0x48, 0xD8, 0x84, 0xBE, 0x09, 0x87, 0x0A, 0xBE, 0xE7, 0x99, 0xBE, 0xBB,
+ 0xE8, 0x90, 0xA0, 0xBB, 0xF5, 0xC0, 0x0E, 0xBD, 0x5F, 0x1E, 0x44, 0x3C,
+ 0x84, 0x08, 0x7B, 0x3B, 0x6E, 0xCC, 0x3A, 0xBC, 0x31, 0x01, 0x14, 0xBC,
+ 0x40, 0x6C, 0xED, 0xBC, 0x35, 0x48, 0x01, 0xBD, 0xA1, 0x76, 0x01, 0x3D,
+ 0x23, 0xF1, 0x18, 0x3D, 0x73, 0x55, 0x97, 0x3D, 0x64, 0xA8, 0xD7, 0x3C,
+ 0x7E, 0xF9, 0x1A, 0xBD, 0x68, 0xE5, 0x6B, 0x3D, 0x2B, 0x7B, 0x9C, 0xBD,
+ 0xED, 0xFF, 0xED, 0x38, 0x26, 0x1A, 0xB5, 0xBD, 0xA5, 0xDC, 0x99, 0xBA,
+ 0xB7, 0x0D, 0x1A, 0x3D, 0xD2, 0x1D, 0x97, 0xBB, 0x7A, 0xCD, 0x40, 0x3C,
+ 0xCE, 0xFF, 0x1D, 0xBD, 0x1A, 0x72, 0x70, 0x3C, 0x17, 0xCF, 0x75, 0xBB,
+ 0x5A, 0xDC, 0x03, 0xBE, 0xE2, 0x42, 0x7F, 0x3D, 0xBC, 0xD8, 0xA4, 0x3A,
+ 0x32, 0x12, 0x90, 0x3C, 0x40, 0xAB, 0xAE, 0xBD, 0x89, 0xCA, 0x8D, 0x3E,
+ 0xAE, 0x06, 0x00, 0x3E, 0xC4, 0xE3, 0x62, 0xBB, 0x95, 0x5D, 0x48, 0xBE,
+ 0x92, 0x72, 0xBB, 0x3D, 0xA3, 0xAB, 0xD9, 0xBD, 0x27, 0xD4, 0xAD, 0xBD,
+ 0x0C, 0xCD, 0x1A, 0xBD, 0x2D, 0xEF, 0xAF, 0xBD, 0xD5, 0xA2, 0x91, 0xBD,
+ 0xF6, 0x5D, 0x5F, 0x3E, 0x45, 0x78, 0x04, 0x3E, 0x22, 0x35, 0x7E, 0x3E,
+ 0xB1, 0xD7, 0x2C, 0xBD, 0xDD, 0xA9, 0x5B, 0xBD, 0x23, 0x77, 0x12, 0xBB,
+ 0xE7, 0xE6, 0xD4, 0x3C, 0x58, 0x1B, 0xE9, 0x3E, 0xB7, 0xDE, 0xA1, 0x3B,
+ 0x2A, 0xC8, 0x80, 0x3E, 0x5D, 0x3A, 0x29, 0xBC, 0xC7, 0x6A, 0x10, 0xBE,
+ 0x22, 0xD9, 0xD4, 0x3D, 0x41, 0x69, 0x36, 0xBD, 0x7C, 0x7D, 0xF1, 0xBD,
+ 0x14, 0xCB, 0x95, 0xBE, 0x7E, 0xB1, 0x76, 0x3E, 0x30, 0xDF, 0x37, 0x3E,
+ 0x9E, 0x1E, 0x1F, 0x3D, 0x70, 0x9B, 0x83, 0xBE, 0xE3, 0xB2, 0x00, 0xBE,
+ 0xC6, 0x94, 0xAC, 0xBE, 0xB0, 0x41, 0x4A, 0xBE, 0xDE, 0x3D, 0x52, 0xBC,
+ 0x65, 0x60, 0xC7, 0xBC, 0x25, 0x4F, 0x80, 0x3E, 0xD7, 0x6F, 0x5E, 0xBC,
+ 0x0F, 0xCC, 0x19, 0xBF, 0x49, 0x99, 0xB5, 0x3E, 0x2B, 0x09, 0x65, 0x3E,
+ 0x47, 0xAE, 0xCC, 0xBC, 0xA1, 0xBE, 0xA6, 0xBE, 0x29, 0x7C, 0x78, 0xBF,
+ 0x01, 0x5D, 0x09, 0xBE, 0xB3, 0x98, 0x97, 0x3F, 0xBF, 0x2D, 0xC5, 0x3D,
+ 0x86, 0xB2, 0x9A, 0x3B, 0x24, 0x8B, 0x41, 0xBE, 0xAB, 0xFD, 0x9F, 0xBF,
+ 0xA7, 0xBE, 0xB5, 0x3C, 0x61, 0x95, 0x1E, 0x3F, 0xB8, 0x99, 0xAD, 0xBE,
+ 0x8E, 0xE7, 0x6B, 0x3D, 0x0A, 0xCD, 0x47, 0x3E, 0x75, 0x92, 0x98, 0xBE,
+ 0xE7, 0x17, 0x0F, 0x3E, 0x1C, 0x59, 0xD2, 0xBC, 0x9C, 0xAC, 0xAB, 0x3D,
+ 0xB6, 0x3C, 0x02, 0x3E, 0x80, 0x1F, 0xFC, 0x3E, 0xDE, 0x11, 0xE8, 0x3E,
+ 0xAA, 0xC7, 0x25, 0xBC, 0x9B, 0x58, 0x85, 0x3D, 0xFA, 0xB8, 0xC3, 0xBE,
+ 0x77, 0x2A, 0x72, 0x3E, 0x1F, 0xBF, 0x1B, 0xBE, 0xBF, 0x2D, 0x1A, 0xBF,
+ 0xC0, 0x81, 0xE4, 0xBD, 0x2E, 0x2F, 0xA8, 0x3D, 0xF9, 0x5C, 0x14, 0x3E,
+ 0x1A, 0x47, 0xC1, 0x3A, 0x85, 0xCA, 0x65, 0xBD, 0xED, 0x26, 0x86, 0xBB,
+ 0xCE, 0x8C, 0x30, 0xBE, 0xA9, 0x15, 0xC9, 0xBE, 0x51, 0xB8, 0xF8, 0xBD,
+ 0x09, 0xF9, 0x0E, 0xBE, 0x83, 0xDB, 0xDF, 0x3E, 0x34, 0x37, 0x71, 0x3B,
+ 0xB1, 0xFE, 0x43, 0xBD, 0x3E, 0x55, 0x9E, 0x3E, 0x39, 0x8C, 0xB2, 0x3E,
+ 0x52, 0x1F, 0xB5, 0xBC, 0x82, 0x41, 0x64, 0xBC, 0x69, 0x8C, 0x0D, 0x3C,
+ 0xED, 0x6E, 0x84, 0xBE, 0x4A, 0x49, 0x91, 0x3E, 0x5B, 0x02, 0xDA, 0x3B,
+ 0x98, 0xBF, 0x34, 0x3A, 0x86, 0xC0, 0x0C, 0xBF, 0x3A, 0xDC, 0x87, 0xBD,
+ 0xAA, 0xB0, 0x0B, 0xBF, 0xB7, 0xAF, 0xC2, 0xBE, 0xE3, 0x7F, 0xBB, 0x3D,
+ 0xCD, 0xEF, 0x10, 0xBF, 0xB4, 0xEF, 0xD1, 0x3D, 0x9F, 0x85, 0x3D, 0xBF,
+ 0xA6, 0x4E, 0x7B, 0xBD, 0x1F, 0x1E, 0x6F, 0xBD, 0x64, 0x50, 0x09, 0x3C,
+ 0xA0, 0xD8, 0x32, 0x3D, 0x5E, 0xC7, 0xBF, 0xBE, 0xB6, 0xC2, 0x23, 0x3C,
+ 0x7E, 0x38, 0x9A, 0x3D, 0xDD, 0xA5, 0x63, 0xBD, 0xF6, 0xC9, 0xDA, 0xBD,
+ 0x22, 0x1F, 0xBD, 0xBE, 0xC9, 0xAA, 0x1D, 0xBD, 0xA5, 0x1A, 0xC8, 0xBE,
+ 0x4D, 0x6B, 0xD8, 0xBC, 0x73, 0xE7, 0x99, 0x3C, 0x7B, 0x42, 0x7A, 0xBE,
+ 0xC0, 0x7C, 0x03, 0x3E, 0xB6, 0xFC, 0x4B, 0x3E, 0xF2, 0x79, 0xAB, 0xBD,
+ 0x73, 0x26, 0x8C, 0x3C, 0xBF, 0x3B, 0x7E, 0x3B, 0x13, 0xF6, 0x00, 0x3E,
+ 0xA8, 0xB6, 0x83, 0x3E, 0x1E, 0xBD, 0xA6, 0xBD, 0x76, 0x76, 0x11, 0x3E,
+ 0x46, 0x0E, 0x40, 0xBC, 0x2F, 0xE3, 0x2E, 0x3F, 0xCB, 0x59, 0x42, 0x3F,
+ 0xE0, 0x22, 0xCC, 0xBD, 0x70, 0x81, 0xC6, 0xBE, 0x43, 0xDF, 0x8E, 0xBE,
+ 0x5C, 0xA7, 0x9E, 0x3B, 0x89, 0x53, 0x2A, 0x3F, 0x8D, 0x12, 0x8C, 0x3E,
+ 0x28, 0x79, 0x8E, 0xBD, 0xAD, 0x4C, 0x54, 0xBD, 0xE2, 0xC3, 0x57, 0x3D,
+ 0x2E, 0x78, 0x24, 0xBE, 0x5A, 0x41, 0x23, 0x3E, 0xC6, 0x80, 0x6E, 0xBD,
+ 0xC2, 0x3C, 0xBD, 0xBD, 0x53, 0x34, 0xB3, 0x3D, 0x11, 0xCA, 0x81, 0x3D,
+ 0x89, 0x93, 0xF5, 0xBD, 0x95, 0x9C, 0x46, 0x3D, 0xB8, 0x57, 0x9C, 0x3C,
+ 0x37, 0x1E, 0x97, 0x3D, 0x43, 0x86, 0xF1, 0xBD, 0x0C, 0xE3, 0x6D, 0xBE,
+ 0xAE, 0x99, 0x00, 0x3D, 0xCE, 0x57, 0x57, 0xBD, 0xB4, 0x0F, 0xD0, 0x3D,
+ 0x75, 0x36, 0xB9, 0xBB, 0x95, 0x2A, 0x58, 0xBD, 0x95, 0xCD, 0x5A, 0x3C,
+ 0x7F, 0xE3, 0x93, 0xBD, 0xAF, 0x5A, 0xD3, 0xBD, 0x4D, 0x7B, 0x0A, 0xBD,
+ 0xE5, 0x74, 0xE6, 0x3B, 0x72, 0x68, 0x9B, 0x3E, 0x28, 0x18, 0xE0, 0x3D,
+ 0x16, 0x52, 0xF3, 0xBD, 0x53, 0xA9, 0x6C, 0x3E, 0x02, 0x4E, 0x19, 0x3D,
+ 0x68, 0xFA, 0xC8, 0x3D, 0xFF, 0x21, 0xF5, 0x3D, 0xD2, 0x60, 0x00, 0xBD,
+ 0x49, 0xF8, 0x9F, 0x3D, 0x58, 0xA0, 0x03, 0x3E, 0x07, 0xB7, 0x05, 0xBF,
+ 0xBF, 0xF9, 0x33, 0x3F, 0x80, 0x01, 0x9A, 0xBE, 0x8F, 0xC3, 0xC5, 0x3D,
+ 0x7B, 0x71, 0x5C, 0x3E, 0xC5, 0x3C, 0x4E, 0x3E, 0x25, 0x97, 0xEB, 0xBD,
+ 0xE1, 0xD9, 0x82, 0xBF, 0x43, 0xC8, 0x0B, 0xBD, 0x9D, 0xEF, 0x21, 0xBE,
+ 0x41, 0x17, 0x11, 0xBF, 0xF4, 0x05, 0xED, 0x3E, 0xA5, 0xB1, 0xB0, 0xBD,
+ 0xAF, 0x21, 0xB1, 0xBD, 0x7B, 0x81, 0x07, 0xBF, 0xD6, 0x77, 0x0C, 0xBE,
+ 0x49, 0x47, 0x1C, 0x3F, 0x07, 0xA0, 0x40, 0x3F, 0x23, 0xCC, 0x5F, 0xBD,
+ 0xD5, 0xF6, 0x3B, 0xBA, 0x31, 0xA3, 0x92, 0xBF, 0xA0, 0xF3, 0xA3, 0x3C,
+ 0xDE, 0x0E, 0x51, 0x3D, 0x05, 0x77, 0xE6, 0x3C, 0xBB, 0xC3, 0x46, 0x3E,
+ 0x9C, 0x21, 0x49, 0xBF, 0x85, 0x93, 0xA4, 0x3E, 0xB8, 0x31, 0xC4, 0xBD,
+ 0xA5, 0x39, 0x7A, 0x3F, 0x56, 0xDF, 0x96, 0x3E, 0xFB, 0x0A, 0xB8, 0xBE,
+ 0x6F, 0xE6, 0x50, 0xBE, 0x45, 0x1B, 0x40, 0x3E, 0xA0, 0xF4, 0x7D, 0xBD,
+ 0x4D, 0xF7, 0x3A, 0xBF, 0x47, 0x8E, 0x26, 0x3D, 0x5B, 0x60, 0x7B, 0x3E,
+ 0xD1, 0x76, 0x9D, 0xBD, 0xF3, 0xEF, 0x18, 0x3E, 0xDC, 0xDE, 0x41, 0x3F,
+ 0x66, 0x37, 0xBC, 0xBE, 0x16, 0x0E, 0xFD, 0xBC, 0x55, 0x06, 0xD1, 0x3E,
+ 0x87, 0xB4, 0x0E, 0xBF, 0x9F, 0x6C, 0x9D, 0xBE, 0xFF, 0x31, 0x4A, 0x3D,
+ 0xE7, 0x39, 0x93, 0xBE, 0x28, 0xBA, 0x58, 0xBC, 0x2F, 0xAE, 0x1C, 0x3E,
+ 0x56, 0x0B, 0x2A, 0xBD, 0x90, 0x7F, 0x6D, 0x3E, 0x7E, 0x88, 0x86, 0x3E,
+ 0xC1, 0xE3, 0x73, 0xBD, 0x45, 0xA7, 0x9A, 0x3E, 0x45, 0x51, 0x46, 0xBF,
+ 0x54, 0xBE, 0x34, 0x3E, 0xC8, 0xC7, 0x93, 0xBE, 0x6E, 0xD4, 0x51, 0x3E,
+ 0xAA, 0xF0, 0x33, 0x3B, 0x06, 0x86, 0x48, 0x3F, 0xE6, 0x3D, 0xA9, 0xBC,
+ 0xE0, 0xC6, 0xCF, 0xBD, 0x26, 0x71, 0xEE, 0xBD, 0x54, 0x1C, 0x0B, 0x3E,
+ 0x38, 0xDE, 0x8E, 0x3E, 0xCB, 0xC1, 0x25, 0x3E, 0xEA, 0xBC, 0x98, 0xBC,
+ 0x76, 0xA6, 0xB2, 0xBC, 0x67, 0xC2, 0xFC, 0xBC, 0xE8, 0x04, 0xB3, 0xBD,
+ 0x96, 0x56, 0xC0, 0x3B, 0x6B, 0xF9, 0x83, 0x3E, 0x9A, 0xF1, 0x4E, 0xBD,
+ 0xDE, 0x39, 0x4D, 0xBB, 0x00, 0x5D, 0xC1, 0x3D, 0xD1, 0x8A, 0xD5, 0xBD,
+ 0xE3, 0x73, 0x6D, 0x3E, 0xE8, 0xFD, 0x8E, 0x3B, 0x37, 0x95, 0xB5, 0xBE,
+ 0x84, 0xD9, 0x26, 0x3C, 0xBB, 0xE6, 0x22, 0xBC, 0x89, 0xBD, 0x9E, 0x3D,
+ 0x32, 0x45, 0xE0, 0xBB, 0xCB, 0xDA, 0x08, 0x3D, 0x58, 0xC8, 0x28, 0xBD,
+ 0x17, 0xA5, 0x04, 0xBE, 0xFB, 0x35, 0x8B, 0x3E, 0x97, 0xA9, 0x45, 0x3D,
+ 0x0B, 0xAC, 0x55, 0xBE, 0x5B, 0x08, 0xA2, 0xBC, 0xE3, 0xC4, 0x81, 0x3D,
+ 0xAF, 0x80, 0x1F, 0x3D, 0x8F, 0x3C, 0x08, 0xBE, 0x1A, 0x82, 0x09, 0xBE,
+ 0xE1, 0xC5, 0x9A, 0x3A, 0x64, 0x6C, 0xAE, 0x3C, 0xB9, 0x6B, 0xFE, 0xBE,
+ 0xCE, 0x6F, 0xC0, 0xBA, 0xE6, 0x0F, 0x07, 0xBD, 0x45, 0x66, 0x36, 0xBC,
+ 0x37, 0xA7, 0x5A, 0xBD, 0xF5, 0xF7, 0x5C, 0x3D, 0x4D, 0xDB, 0x6F, 0x3D,
+ 0x6B, 0x47, 0xD3, 0x3D, 0x5A, 0x5B, 0xCB, 0xBC, 0x8F, 0x18, 0x11, 0xBB,
+ 0x55, 0x53, 0x05, 0x3D, 0x4D, 0xFB, 0x7A, 0x3C, 0x7F, 0xD1, 0x9B, 0xBD,
+ 0xB6, 0x5F, 0x82, 0x3D, 0xA3, 0x82, 0x93, 0x3D, 0x8B, 0x88, 0x68, 0x3B,
+ 0x47, 0x86, 0xEB, 0x3B, 0x0D, 0xD5, 0x14, 0xBE, 0x47, 0xB5, 0xD3, 0xBC,
+ 0x6A, 0xA4, 0x64, 0x3D, 0x17, 0x5A, 0x30, 0xBD, 0x4E, 0x4C, 0x26, 0x3D,
+ 0x67, 0x5E, 0x2C, 0xBE, 0x78, 0xED, 0xC7, 0x3D, 0x0A, 0xE3, 0xF8, 0xBC,
+ 0x8F, 0x56, 0x9E, 0xBE, 0x5E, 0x7C, 0x9B, 0xBC, 0xD3, 0x22, 0x85, 0x3E,
+ 0x43, 0x75, 0x00, 0x3D, 0x94, 0x92, 0xA5, 0x3B, 0x80, 0xF1, 0x6C, 0x3D,
+ 0x61, 0x55, 0x1C, 0x3F, 0xC8, 0x5D, 0xB4, 0xBE, 0xD5, 0xB4, 0xB1, 0x3E,
+ 0x45, 0xFB, 0x26, 0xBE, 0xA1, 0x1B, 0x51, 0x3E, 0xAE, 0xFA, 0x02, 0x3D,
+ 0x6D, 0x75, 0xC3, 0x3C, 0x3E, 0xEC, 0x0A, 0xBE, 0x26, 0xD7, 0x8F, 0x3E,
+ 0x29, 0x3E, 0xE4, 0x3B, 0x77, 0x87, 0x50, 0xBD, 0x01, 0x62, 0x1A, 0xBD,
+ 0x49, 0x9B, 0xB7, 0x3E, 0x37, 0x2A, 0xF4, 0x3D, 0x88, 0xA4, 0x06, 0xBE,
+ 0xDF, 0x1E, 0x32, 0xBC, 0x65, 0x75, 0xA7, 0xBC, 0x8D, 0x0A, 0x21, 0xBD,
+ 0x22, 0x80, 0x55, 0xBE, 0x89, 0x0F, 0x33, 0x3E, 0x4F, 0xC2, 0xFC, 0xBD,
+ 0xE0, 0xFB, 0x8E, 0xBE, 0x54, 0xEB, 0x50, 0x3D, 0xF8, 0xF3, 0x29, 0xBE,
+ 0x9B, 0x0B, 0x74, 0xBC, 0x39, 0x77, 0x00, 0x3F, 0xB5, 0x5E, 0x83, 0x3F,
+ 0xB8, 0xF0, 0x92, 0xBC, 0xBF, 0x12, 0x5C, 0x3E, 0xAA, 0x3E, 0xCC, 0xBC,
+ 0x0A, 0xEC, 0xD6, 0xBE, 0x73, 0xEB, 0xAA, 0xBC, 0xDA, 0x5B, 0x06, 0x3D,
+ 0xBB, 0x86, 0x41, 0x3D, 0xC5, 0xFB, 0x2C, 0x3D, 0x8B, 0x1B, 0x36, 0xBC,
+ 0x0D, 0xCF, 0x88, 0x3C, 0xD1, 0x30, 0x72, 0x3C, 0x1D, 0xBE, 0x73, 0xBB,
+ 0x58, 0xA9, 0x5F, 0x3D, 0x28, 0xE6, 0xDA, 0x3C, 0x01, 0xA0, 0x50, 0x3D,
+ 0x53, 0x65, 0x0D, 0xBC, 0x9D, 0x5B, 0xDF, 0xBC, 0x9D, 0xE8, 0x49, 0x3D,
+ 0x95, 0x4A, 0x7E, 0xBC, 0x14, 0xD1, 0xB9, 0x3B, 0x26, 0x33, 0x33, 0xBD,
+ 0xE1, 0xBD, 0x0F, 0x3C, 0xED, 0x89, 0x23, 0xBC, 0x37, 0x48, 0xC0, 0xBC,
+ 0xB6, 0x89, 0xD2, 0xBC, 0x78, 0x04, 0x38, 0xBD, 0xB8, 0xB9, 0x0C, 0xBD,
+ 0xC8, 0x46, 0x1C, 0x3D, 0x0C, 0x81, 0x8D, 0x3D, 0x51, 0x66, 0x84, 0x3D,
+ 0x5B, 0xB3, 0x3C, 0xBC, 0xC5, 0xCD, 0x30, 0x3C, 0xAF, 0x06, 0xAD, 0xBC,
+ 0xE7, 0x03, 0xDF, 0x3E, 0x96, 0xD2, 0x8A, 0x3D, 0xD6, 0xF0, 0xDB, 0x3C,
+ 0x15, 0xD7, 0x2B, 0x3E, 0x62, 0x6F, 0x29, 0x3F, 0x9C, 0x65, 0xA2, 0xBF,
+ 0x04, 0xEF, 0xD9, 0xBE, 0x02, 0xFE, 0xC8, 0xBD, 0xA9, 0x2F, 0x87, 0x3D,
+ 0x14, 0x87, 0xDA, 0xBD, 0x81, 0x33, 0xE0, 0xBD, 0xB8, 0xFC, 0x89, 0x3E,
+ 0x47, 0x27, 0x9E, 0x3F, 0x09, 0x82, 0xD8, 0x3D, 0x42, 0x40, 0x01, 0xBC,
+ 0x64, 0x26, 0x0A, 0x3E, 0x16, 0x7F, 0x2B, 0x3E, 0xA3, 0xAA, 0xA7, 0x3D,
+ 0xFB, 0x5A, 0x7E, 0x3D, 0x71, 0x33, 0xFE, 0xBE, 0xA1, 0xA9, 0xE7, 0xBC,
+ 0xE0, 0x98, 0xA6, 0xBE, 0xC1, 0x9E, 0x27, 0xBE, 0x51, 0x7B, 0xD0, 0xBD,
+ 0x42, 0xC6, 0x1C, 0x3E, 0xB7, 0xAF, 0x9B, 0xBE, 0xB3, 0xF7, 0x29, 0x3F,
+ 0xB7, 0x5A, 0xCA, 0xBE, 0x8F, 0x3D, 0x11, 0xBE, 0x09, 0xD3, 0x5A, 0xBE,
+ 0x55, 0x2D, 0x86, 0xBD, 0x99, 0x32, 0xAE, 0xBD, 0x74, 0x6C, 0x90, 0x3D,
+ 0x8F, 0xE2, 0x87, 0x3D, 0x0D, 0x01, 0xE1, 0x3D, 0xA9, 0xA9, 0xE5, 0xBA,
+ 0x6D, 0x07, 0x30, 0x3C, 0x95, 0xC3, 0xCD, 0x3C, 0x0E, 0xBA, 0x28, 0x3D,
+ 0x82, 0xD4, 0xFB, 0x3C, 0x7A, 0x47, 0x41, 0x3D, 0x70, 0xA9, 0x0A, 0x3D,
+ 0x5E, 0x8C, 0x49, 0x3C, 0xD6, 0x5B, 0xC2, 0xBC, 0xD9, 0x8B, 0x3F, 0xBD,
+ 0x54, 0xCC, 0xC3, 0xBD, 0x22, 0xA3, 0x61, 0x3B, 0x7A, 0x0B, 0x17, 0x3C,
+ 0x87, 0xA8, 0xB6, 0x3D, 0xF6, 0x82, 0xFB, 0x3D, 0x99, 0x96, 0x2C, 0xBD,
+ 0x9C, 0x7B, 0x16, 0xBC, 0x6E, 0x8D, 0x16, 0xBC, 0xD1, 0x9B, 0xDA, 0xBC,
+ 0xD7, 0x5E, 0x31, 0xBC, 0x39, 0x8D, 0x2E, 0x3C, 0x27, 0x7D, 0xC2, 0x3D,
+ 0x03, 0xF9, 0x22, 0x3D, 0xE2, 0x39, 0x1B, 0x3D, 0x35, 0x5B, 0x60, 0x3E,
+ 0x8A, 0x62, 0x27, 0x3D, 0x69, 0x4D, 0xB8, 0xB9, 0xAD, 0x62, 0x4D, 0xBC,
+ 0xE1, 0xED, 0x9E, 0x3B, 0x0F, 0x38, 0x8B, 0xBC, 0x38, 0xB5, 0x38, 0x3D,
+ 0x97, 0xBF, 0x97, 0x3C, 0xFA, 0x12, 0x20, 0xBF, 0x96, 0xAE, 0xF4, 0xBE,
+ 0x25, 0xF7, 0x93, 0x3F, 0x07, 0x9D, 0x09, 0x3F, 0xA1, 0x27, 0xCF, 0x3D,
+ 0xC9, 0x22, 0xAA, 0xBC, 0x4D, 0x7D, 0x15, 0xBE, 0xB2, 0xFA, 0x59, 0xBE,
+ 0x8C, 0x49, 0x39, 0xBE, 0x3E, 0x2F, 0x85, 0xBF, 0x67, 0x66, 0xC3, 0x3C,
+ 0xB9, 0xDB, 0xA3, 0x3C, 0xE4, 0xD0, 0xA6, 0xBE, 0x9A, 0x7B, 0xAA, 0xBE,
+ 0x65, 0x01, 0x63, 0xBE, 0x96, 0x83, 0x9F, 0xBD, 0x21, 0xC4, 0x17, 0x3F,
+ 0xF1, 0x58, 0xFE, 0x3C, 0x4D, 0x46, 0xE6, 0xBE, 0xFD, 0x8F, 0x2B, 0xBE,
+ 0xFA, 0xD4, 0x75, 0x3D, 0x0F, 0xE9, 0xED, 0x3C, 0x23, 0x58, 0x2B, 0xBF,
+ 0x57, 0xCA, 0x18, 0x3F, 0x90, 0xD2, 0x02, 0x3E, 0x59, 0xCD, 0x50, 0xBE,
+ 0x0E, 0x8B, 0x46, 0x3E, 0x07, 0xA0, 0x94, 0xBE, 0x32, 0x0E, 0x9A, 0x3D,
+ 0x45, 0x2F, 0x1E, 0xBF, 0x77, 0x33, 0xFE, 0x3D, 0xB8, 0xE9, 0xF0, 0x3D,
+ 0x13, 0xFA, 0x1F, 0x3E, 0x99, 0x45, 0x6E, 0xBE, 0x98, 0x01, 0x61, 0xBF,
+ 0x0C, 0x50, 0x25, 0xBF, 0x39, 0xDF, 0x3B, 0x3E, 0x3F, 0x1B, 0xD7, 0xBD,
+ 0xF6, 0x4D, 0x0E, 0xBE, 0x78, 0xE8, 0x41, 0x3C, 0xFA, 0x64, 0xA8, 0xBE,
+ 0x8D, 0xC9, 0xE1, 0xBD, 0x44, 0x21, 0xA2, 0xBE, 0xDA, 0xF1, 0xDD, 0x3B,
+ 0x27, 0x54, 0x48, 0x3F, 0x14, 0x6A, 0x00, 0x3E, 0xD8, 0x2F, 0x4A, 0x3F,
+ 0x08, 0x48, 0x81, 0x3E, 0x58, 0x4D, 0x73, 0x3F, 0x1D, 0xEA, 0x80, 0xBB,
+ 0x3E, 0x89, 0x4B, 0x3D, 0x92, 0x25, 0x48, 0xBF, 0x94, 0xFC, 0x25, 0xBE,
+ 0xBF, 0x7D, 0x06, 0x3E, 0x0A, 0xD2, 0x46, 0xBE, 0xD6, 0xA5, 0xB7, 0x3F,
+ 0x1F, 0x3D, 0xFD, 0xBE, 0x9C, 0xC9, 0xF7, 0xBD, 0x5D, 0xB5, 0xC2, 0xBC,
+ 0x47, 0x97, 0x91, 0xBE, 0x04, 0x5F, 0x84, 0x3D, 0xF4, 0x33, 0x58, 0xBF,
+ 0xDF, 0x20, 0xCA, 0x3E, 0x9F, 0xBC, 0x0E, 0x3E, 0x97, 0x50, 0xEF, 0xBE,
+ 0x63, 0x4E, 0x98, 0x3E, 0x56, 0xCF, 0xB2, 0x3D, 0x98, 0xA0, 0x97, 0xBD,
+ 0x25, 0xE6, 0xBC, 0xBD, 0x9D, 0x08, 0x85, 0x3E, 0x50, 0xE9, 0x8C, 0x3E,
+ 0xE8, 0x25, 0x62, 0xBD, 0xC8, 0x6E, 0x03, 0x3E, 0xBF, 0x97, 0x89, 0xBE,
+ 0x1F, 0x99, 0xC6, 0x3E, 0x6E, 0x34, 0xE8, 0xBD, 0x10, 0xFE, 0xEB, 0x3B,
+ 0x6A, 0x41, 0x38, 0x3F, 0x0D, 0x68, 0x44, 0x3E, 0x62, 0xAA, 0x13, 0x3D,
+ 0xF8, 0x8B, 0x34, 0xBF, 0x71, 0x0F, 0x30, 0x3D, 0xD7, 0x38, 0x38, 0xBD,
+ 0x67, 0xCB, 0xE1, 0x3E, 0xF4, 0x79, 0xEA, 0x3D, 0xBE, 0xFA, 0x39, 0xBE,
+ 0x61, 0xFA, 0xA8, 0x3D, 0x9A, 0x76, 0x11, 0x3F, 0x08, 0xE3, 0xBE, 0x3E,
+ 0x09, 0x74, 0x11, 0xBC, 0x30, 0x8C, 0xCB, 0xBD, 0xC2, 0x4F, 0x24, 0x3C,
+ 0xDC, 0xD9, 0x8E, 0x3E, 0x42, 0x64, 0x15, 0xBE, 0x56, 0x5C, 0x0C, 0x3F,
+ 0x7A, 0xF5, 0xB4, 0x3E, 0xC3, 0x47, 0x51, 0x3C, 0xBF, 0xC4, 0x8F, 0xBB,
+ 0x59, 0xCD, 0xAF, 0xBD, 0xE6, 0x10, 0x6F, 0xBE, 0x91, 0x55, 0x96, 0xBD,
+ 0xB2, 0xA5, 0x5F, 0x3E, 0x05, 0x0A, 0x9A, 0x3E, 0xBB, 0x23, 0x1B, 0xBE,
+ 0xC9, 0x86, 0x0E, 0xBE, 0x4C, 0xEF, 0x5D, 0x3E, 0x03, 0xFC, 0x34, 0xBE,
+ 0x46, 0x6E, 0xAE, 0x3B, 0x3C, 0x5F, 0xE3, 0xBE, 0xEF, 0xB6, 0x8D, 0xBE,
+ 0x1E, 0x98, 0xC6, 0xBE, 0x83, 0xE2, 0xAF, 0x3D, 0x60, 0x22, 0x60, 0xBE,
+ 0xA8, 0x89, 0xE3, 0xBC, 0x9E, 0xF0, 0x44, 0xBE, 0xF7, 0xF6, 0x55, 0xBE,
+ 0xED, 0x12, 0x2C, 0xBC, 0x74, 0x44, 0xCA, 0x3D, 0x03, 0x65, 0x38, 0x3D,
+ 0x0E, 0xF8, 0x09, 0x3E, 0x2F, 0x65, 0xE1, 0xBC, 0x49, 0x72, 0xA5, 0xBE,
+ 0xA6, 0xAE, 0xDC, 0x3E, 0x81, 0x79, 0x66, 0x3F, 0xE4, 0xC4, 0xF5, 0x3D,
+ 0xB4, 0xD9, 0x1F, 0xBF, 0x75, 0x2E, 0x40, 0x3F, 0xE9, 0x44, 0xDF, 0x3D,
+ 0x82, 0xF2, 0xDB, 0xBE, 0xA4, 0x00, 0xF9, 0x3C, 0xE5, 0x9F, 0xAA, 0xBC,
+ 0x80, 0x64, 0x1C, 0x3F, 0xA2, 0x81, 0x2C, 0x3D, 0xC5, 0x52, 0xA4, 0xBE,
+ 0x27, 0x53, 0xA2, 0xBB, 0x64, 0xC9, 0x47, 0x3F, 0x1F, 0x94, 0x84, 0xBE,
+ 0xBA, 0x66, 0x10, 0xBE, 0x20, 0x66, 0xE2, 0x3E, 0x26, 0xC2, 0xAF, 0x3D,
+ 0x2E, 0x8B, 0xC5, 0x3E, 0xA4, 0xD3, 0x13, 0x3F, 0xDF, 0xC7, 0x9D, 0xBD,
+ 0x73, 0x3C, 0x09, 0xBF, 0x73, 0xBF, 0x4C, 0x3E, 0x69, 0x3D, 0x5E, 0x3E,
+ 0x58, 0xC5, 0x20, 0xBF, 0x28, 0xE5, 0x04, 0x3F, 0x9C, 0xFC, 0x0C, 0xBE,
+ 0xB7, 0x5E, 0x49, 0xBE, 0x32, 0x6D, 0xB8, 0x3D, 0xBB, 0x14, 0xB8, 0x3E,
+ 0xD5, 0x0A, 0x2F, 0x3F, 0xF3, 0xD3, 0x24, 0xBE, 0x8C, 0x19, 0x10, 0xBE,
+ 0x05, 0xCB, 0x98, 0xBE, 0x1B, 0x00, 0xB7, 0x3D, 0xDA, 0x0B, 0x62, 0x3D,
+ 0x60, 0xC9, 0xBB, 0xBD, 0xCD, 0x8C, 0xF8, 0xBE, 0x01, 0x59, 0xB5, 0x3E,
+ 0xF8, 0x11, 0x68, 0xBC, 0xD8, 0x63, 0x38, 0xBD, 0xF1, 0xC4, 0x5F, 0xBF,
+ 0x6C, 0xB5, 0x84, 0xBE, 0x64, 0x40, 0x64, 0xBE, 0xC8, 0x73, 0x24, 0xBE,
+ 0x9A, 0x87, 0x03, 0x3D, 0xFC, 0xA2, 0x7E, 0x3E, 0x9E, 0xB8, 0x3E, 0xBE,
+ 0x93, 0x4E, 0xD8, 0x3E, 0x20, 0x8F, 0x22, 0xBC, 0x14, 0xDD, 0x03, 0x3F,
+ 0x4B, 0x8F, 0xAC, 0xBE, 0xCB, 0x46, 0x23, 0x3E, 0x26, 0x32, 0xA2, 0xBC,
+ 0x55, 0x4C, 0x67, 0xBE, 0x67, 0x2E, 0x66, 0x3B, 0x94, 0x5C, 0x31, 0x3E,
+ 0xA1, 0x61, 0x0B, 0x3D, 0x92, 0x1A, 0x9F, 0x3D, 0xB6, 0x42, 0x6F, 0xBB,
+ 0x43, 0x60, 0x0C, 0x3E, 0x8C, 0xF1, 0x66, 0x3D, 0xCE, 0xD7, 0xAA, 0xBE,
+ 0xCD, 0x74, 0xAF, 0xBE, 0xAB, 0x88, 0x26, 0xBD, 0xDB, 0x10, 0xCC, 0x3E,
+ 0x54, 0x46, 0x3D, 0xBE, 0x9D, 0xB0, 0x63, 0x3F, 0x14, 0xA2, 0x1A, 0xBE,
+ 0x23, 0x1D, 0x0C, 0x3E, 0x65, 0xBF, 0x47, 0x3F, 0x10, 0x1B, 0xEB, 0xBD,
+ 0xB2, 0x2B, 0x9B, 0x3F, 0x83, 0x78, 0x45, 0x3F, 0x9F, 0x37, 0xFB, 0x3E,
+ 0x13, 0xA6, 0xA9, 0x3F, 0x71, 0xFD, 0x26, 0x3E, 0x31, 0x02, 0xB9, 0x3E,
+ 0xCF, 0xB9, 0x4A, 0x3E, 0x58, 0xB3, 0x25, 0x3E, 0x37, 0xF5, 0xB9, 0x3D,
+ 0x12, 0x7B, 0x33, 0xBD, 0x8C, 0xDC, 0x7E, 0xBF, 0x34, 0xB9, 0xDF, 0xBF,
+ 0xAB, 0x70, 0xD5, 0xBF, 0xD7, 0x70, 0x22, 0xBF, 0xFC, 0x59, 0x8A, 0xBE,
+ 0xB6, 0x23, 0x93, 0xBD, 0x18, 0xB6, 0xA1, 0x3B, 0xB1, 0x2F, 0x12, 0x3E,
+ 0xCB, 0x99, 0x03, 0x3E, 0xD8, 0x58, 0xF1, 0xBD, 0x2A, 0x0C, 0x3C, 0xBF,
+ 0x71, 0x8E, 0x90, 0xBF, 0x5B, 0x88, 0xDF, 0xBD, 0xC1, 0xE8, 0x62, 0x3F,
+ 0x82, 0xAE, 0x7A, 0x3E, 0xF9, 0x89, 0x5C, 0xBF, 0xDD, 0x59, 0x59, 0xBE,
+ 0xF7, 0x00, 0x25, 0xBE, 0x12, 0xE4, 0x9F, 0x3E, 0x89, 0xB5, 0xFD, 0x3E,
+ 0x15, 0xDF, 0x43, 0x3F, 0x35, 0xF5, 0x17, 0xBE, 0x31, 0x77, 0xE9, 0x3E,
+ 0xDC, 0x17, 0xF7, 0xBE, 0xE3, 0xCE, 0xAB, 0xBE, 0x0D, 0x2A, 0x58, 0x3E,
+ 0xAE, 0x0E, 0x5E, 0x3E, 0x2B, 0xF1, 0x8A, 0xBE, 0xB8, 0x1D, 0xA3, 0xBE,
+ 0xF6, 0x32, 0x74, 0x3E, 0x30, 0x2B, 0x27, 0xBB, 0x1C, 0xDC, 0xB9, 0x3D,
+ 0x68, 0xB1, 0xD2, 0x3E, 0xC0, 0x34, 0x33, 0xBF, 0xCF, 0x17, 0x31, 0xBE,
+ 0x3E, 0x09, 0xC4, 0x3D, 0x00, 0x44, 0x9A, 0xBE, 0x6F, 0x73, 0xD2, 0x3D,
+ 0xB7, 0x0E, 0x03, 0xBF, 0xF6, 0xCE, 0xFB, 0x3E, 0xCA, 0x93, 0xB2, 0xBE,
+ 0xF1, 0x15, 0x09, 0x3E, 0x64, 0xAD, 0x06, 0x3D, 0x6F, 0x63, 0x10, 0x3E,
+ 0xC2, 0x4A, 0x92, 0xBE, 0xC8, 0x98, 0x31, 0x3E, 0xB5, 0xD5, 0x86, 0xBE,
+ 0xBC, 0x51, 0x8A, 0xBE, 0x05, 0x36, 0x34, 0xBE, 0x9C, 0xE0, 0x87, 0x3F,
+ 0x50, 0x0D, 0x31, 0xBE, 0xA8, 0xA0, 0xD8, 0xBD, 0x3E, 0xCB, 0x1C, 0x3E,
+ 0x26, 0xF5, 0x07, 0x3E, 0xCF, 0x5B, 0x65, 0x3F, 0xE6, 0x0E, 0x9C, 0xBE,
+ 0x22, 0x29, 0x08, 0x3F, 0x78, 0x5F, 0x04, 0xBE, 0x36, 0x46, 0x1C, 0xBF,
+ 0x7B, 0x3F, 0x12, 0x3E, 0x9D, 0x5D, 0xE8, 0xBE, 0x6B, 0xB9, 0x1F, 0xBE,
+ 0xA3, 0xF3, 0x83, 0x3E, 0x95, 0x18, 0xE0, 0x3D, 0x86, 0x94, 0x87, 0xBE,
+ 0x1A, 0xB6, 0x2A, 0x3F, 0xE0, 0x0D, 0x68, 0xBE, 0x3C, 0x71, 0xB1, 0x3E,
+ 0x88, 0x36, 0xE5, 0x3E, 0xC6, 0x65, 0xDE, 0xBC, 0x78, 0x6F, 0x33, 0x3F,
+ 0x12, 0x5C, 0x2C, 0xBE, 0x15, 0x91, 0xC3, 0xBD, 0x9B, 0x01, 0x6A, 0xBF,
+ 0x72, 0xCB, 0x35, 0x3B, 0x08, 0x22, 0xAC, 0xBE, 0xD6, 0x2B, 0x04, 0xBF,
+ 0xB0, 0x9E, 0x21, 0xBE, 0xB8, 0x63, 0xB7, 0x3F, 0x9A, 0x7E, 0x03, 0x3F,
+ 0xBA, 0x41, 0x00, 0x3E, 0xF6, 0x87, 0x8E, 0xBF, 0xB5, 0x02, 0x90, 0xBE,
+ 0xB5, 0x9F, 0x3B, 0x3D, 0xEB, 0x4D, 0xCC, 0x3F, 0xDC, 0x28, 0xCC, 0x3E,
+ 0x54, 0x6B, 0xDB, 0x3E, 0x12, 0xDF, 0x99, 0x3E, 0x50, 0xEE, 0x40, 0xBE,
+ 0xA8, 0xAB, 0x19, 0x3F, 0xA5, 0xAA, 0xA1, 0xBD, 0x52, 0x1B, 0x0F, 0xBF,
+ 0xC1, 0x54, 0x09, 0x3F, 0x92, 0x2F, 0x3F, 0xBD, 0xA2, 0x4F, 0x03, 0x3F,
+ 0xE7, 0xD1, 0xB0, 0xBE, 0x3E, 0x64, 0x0D, 0x3F, 0x6D, 0x18, 0xF3, 0xBF,
+ 0xBE, 0x41, 0x2E, 0x3F, 0x4F, 0x86, 0x12, 0x3F, 0xC7, 0xB9, 0xD9, 0x3E,
+ 0xE6, 0x1D, 0x82, 0xBE, 0x57, 0x9C, 0xA0, 0x3F, 0x31, 0xFF, 0x21, 0xBF,
+ 0xA1, 0x90, 0x01, 0x3F, 0xE3, 0x5D, 0xDE, 0x3D, 0x04, 0x7E, 0x31, 0x3F,
+ 0x13, 0xFB, 0xAD, 0x3E, 0x36, 0x9F, 0x0D, 0xBF, 0xAF, 0x3D, 0x22, 0x3F,
+ 0xA0, 0x95, 0x43, 0xBD, 0x34, 0xA0, 0x9B, 0x3E, 0x80, 0x61, 0x01, 0xBF,
+ 0xC7, 0xCB, 0x40, 0xBD, 0xFD, 0x79, 0x5F, 0x3E, 0x64, 0x01, 0x9F, 0x3E,
+ 0xB4, 0xA5, 0xE2, 0x3D, 0xEE, 0x50, 0x95, 0x3D, 0xF5, 0xEB, 0x65, 0xBD,
+ 0x60, 0xBC, 0x15, 0x3E, 0xAB, 0xF1, 0x4A, 0xBD, 0xF6, 0x2D, 0xAB, 0xBC,
+ 0x14, 0x79, 0xF3, 0x3D, 0xE8, 0xC2, 0xA6, 0xBD, 0xD8, 0xDA, 0x1E, 0x3E,
+ 0x27, 0xCA, 0x90, 0x3E, 0xC9, 0x4E, 0x26, 0x3D, 0xBA, 0x47, 0x8F, 0x3D,
+ 0x5D, 0xF4, 0x88, 0xBC, 0x8C, 0x4E, 0xF6, 0xBD, 0x89, 0x3E, 0xC8, 0x3D,
+ 0x31, 0x8C, 0xB5, 0x3D, 0xAF, 0xFE, 0x4C, 0xBE, 0x0B, 0x62, 0x21, 0x3B,
+ 0x0F, 0x6E, 0x77, 0x3D, 0xE9, 0x35, 0x62, 0x3D, 0x20, 0xFC, 0x99, 0x3B,
+ 0x4A, 0x2E, 0x9B, 0xBD, 0xC2, 0x28, 0x1B, 0xBE, 0xBE, 0x01, 0xBA, 0xBC,
+ 0xC6, 0x0E, 0x88, 0xBD, 0x7D, 0x68, 0x39, 0xBE, 0xF4, 0xB4, 0x66, 0x3D,
+ 0x9D, 0xBE, 0x95, 0x3E, 0xB9, 0xC8, 0x49, 0xBD, 0xDD, 0xC5, 0x34, 0x3B,
+ 0xB9, 0xDF, 0x4A, 0xBE, 0x22, 0x7E, 0x3B, 0xBE, 0xE0, 0x96, 0x93, 0xBD,
+ 0xC3, 0x91, 0xB3, 0x3D, 0xE0, 0x21, 0xBD, 0xBD, 0x35, 0xA3, 0xF7, 0xBD,
+ 0x15, 0xE7, 0x03, 0xBD, 0x18, 0x94, 0x39, 0xBD, 0x47, 0xE9, 0x4C, 0xBB,
+ 0x15, 0x2A, 0x08, 0xBC, 0xA1, 0x8C, 0xDE, 0x3C, 0xA4, 0x4B, 0x3C, 0x3D,
+ 0xF0, 0x6C, 0xCA, 0xBC, 0x75, 0xCC, 0x06, 0x3D, 0x5A, 0x80, 0xAB, 0x3D,
+ 0x85, 0x34, 0x03, 0xBD, 0x3F, 0xA8, 0x80, 0x3D, 0xE2, 0x55, 0xA2, 0x3D,
+ 0x00, 0xE8, 0xEE, 0x3D, 0x6E, 0x14, 0xB8, 0x3B, 0x06, 0xB0, 0x35, 0xBE,
+ 0xA9, 0x01, 0x41, 0x3D, 0x69, 0xDF, 0x21, 0x3D, 0x6C, 0xF6, 0x11, 0xBE,
+ 0x52, 0xF5, 0x28, 0x3D, 0x01, 0x2B, 0x8E, 0xBE, 0xE0, 0xD2, 0x8F, 0xBE,
+ 0xE3, 0x33, 0xE6, 0xBC, 0x8A, 0x07, 0x10, 0x3D, 0xAF, 0x84, 0xF1, 0x3D,
+ 0xD6, 0x74, 0xD0, 0xBD, 0x88, 0x0E, 0xF3, 0x3E, 0x7A, 0xA6, 0xD2, 0xBD,
+ 0xAD, 0x50, 0x32, 0xBE, 0x93, 0x7F, 0x38, 0x3F, 0x65, 0xF4, 0x48, 0x3E,
+ 0x43, 0x65, 0xF1, 0xBD, 0xA5, 0x16, 0x22, 0xBE, 0xD3, 0x3E, 0x11, 0x3F,
+ 0x64, 0x7C, 0x88, 0xBE, 0x3B, 0xE6, 0x82, 0x3F, 0xED, 0x5E, 0x5E, 0xBF,
+ 0x05, 0xEB, 0x2F, 0x3F, 0xC4, 0xA9, 0x22, 0xBE, 0x8D, 0x04, 0x1C, 0x3F,
+ 0x93, 0x82, 0x33, 0x3C, 0x83, 0x03, 0x42, 0xBE, 0x14, 0xDE, 0xC9, 0xBF,
+ 0x93, 0x0A, 0x3A, 0xBF, 0x24, 0xF8, 0xDA, 0x3E, 0xB1, 0x8D, 0xC9, 0xBF,
+ 0x83, 0xC1, 0x0E, 0xBD, 0xE8, 0xDA, 0xAF, 0x3F, 0xBE, 0x0B, 0x52, 0x3D,
+ 0x05, 0xBC, 0xFA, 0x3E, 0x38, 0x7A, 0xDC, 0xBD, 0xB2, 0xF8, 0x94, 0x3E,
+ 0x6C, 0xFA, 0xB7, 0x3E, 0xBE, 0x6B, 0x04, 0xBD, 0x5D, 0x00, 0x20, 0x3E,
+ 0x18, 0x1A, 0x6E, 0x3F, 0xAE, 0x95, 0x5C, 0x3F, 0x33, 0x38, 0xC6, 0xBE,
+ 0x24, 0xAD, 0x76, 0x3E, 0xDD, 0x81, 0x03, 0x3F, 0xF1, 0x7F, 0x0F, 0x3F,
+ 0xCA, 0xBF, 0x2B, 0xBD, 0x1C, 0xEF, 0xE9, 0x3C, 0xFA, 0x90, 0x74, 0x3D,
+ 0x7D, 0x06, 0x97, 0x3B, 0xC2, 0x06, 0xB8, 0xBC, 0xF5, 0x6A, 0x05, 0x3D,
+ 0x4C, 0x91, 0x2C, 0x3C, 0x0C, 0xC4, 0x90, 0x3C, 0x00, 0xF5, 0xC6, 0x3C,
+ 0x51, 0x1D, 0xEB, 0x3C, 0x90, 0x18, 0xED, 0x3B, 0xBD, 0xE4, 0x8A, 0xBA,
+ 0xAC, 0xF9, 0xDA, 0xBC, 0xF3, 0xCB, 0xDF, 0xBC, 0x1B, 0xAB, 0x73, 0xBC,
+ 0x52, 0x8B, 0xA4, 0x3C, 0x82, 0x2D, 0x56, 0xBD, 0xF4, 0x14, 0x30, 0xBC,
+ 0xE1, 0x15, 0xB5, 0x3C, 0xC4, 0x48, 0x5A, 0x3C, 0x16, 0x36, 0xF4, 0x3C,
+ 0x86, 0x5B, 0x05, 0xBD, 0x95, 0x5F, 0x2B, 0xBD, 0x22, 0x07, 0xE1, 0x3D,
+ 0x9B, 0xDB, 0x44, 0x3D, 0x78, 0x2B, 0x1E, 0xBB, 0x75, 0x13, 0x77, 0x3C,
+ 0xDF, 0x5B, 0x2F, 0x3D, 0xB1, 0x80, 0x27, 0x3C, 0xE7, 0x92, 0xE8, 0x3E,
+ 0x22, 0xAC, 0xB2, 0x3C, 0xC3, 0x7E, 0x0A, 0x3D, 0x88, 0xCD, 0x91, 0x3D,
+ 0xB3, 0x1C, 0x04, 0x3C, 0xBF, 0x30, 0xC8, 0x3D, 0x4C, 0x9D, 0x9D, 0x3B,
+ 0x21, 0x91, 0x77, 0xBC, 0x42, 0x38, 0x24, 0xBC, 0x56, 0xBD, 0xE6, 0xBA,
+ 0x5C, 0xC6, 0x86, 0xBC, 0x40, 0x73, 0xFB, 0xBB, 0xDD, 0xE2, 0x07, 0x3D,
+ 0xDB, 0x7D, 0x5B, 0x3C, 0x3B, 0x27, 0x01, 0xBD, 0xA4, 0x8F, 0xC1, 0x3C,
+ 0x10, 0x06, 0x03, 0xBE, 0x13, 0xEF, 0x8B, 0xB8, 0x09, 0xA3, 0x10, 0x3D,
+ 0xEF, 0x0F, 0x30, 0xBC, 0xF9, 0x55, 0x51, 0x3C, 0x2E, 0x4F, 0x4B, 0x3D,
+ 0xEB, 0x0B, 0x77, 0xBC, 0x2A, 0x2D, 0x77, 0x3B, 0x35, 0x7A, 0x14, 0x3C,
+ 0x34, 0xEC, 0x35, 0x3D, 0xD3, 0x28, 0x06, 0xBD, 0x48, 0x69, 0x2D, 0xBC,
+ 0x77, 0x6A, 0xCD, 0xBC, 0x29, 0x87, 0x3F, 0x3C, 0xDB, 0xDD, 0xCB, 0x3C,
+ 0xA4, 0xD1, 0x59, 0x3D, 0x6D, 0x28, 0x35, 0xBE, 0x46, 0xA2, 0xBA, 0xBD,
+ 0xD7, 0xEC, 0x22, 0x3B, 0x3A, 0xB3, 0x01, 0xBB, 0x42, 0x12, 0x22, 0xBD,
+ 0xAC, 0x79, 0x07, 0xBE, 0xA2, 0x90, 0xE8, 0x3D, 0x4B, 0x60, 0xE7, 0x3D,
+ 0xD7, 0x1E, 0x91, 0x3D, 0x38, 0xEA, 0xED, 0x3C, 0x2B, 0x18, 0xA7, 0x3D,
+ 0xD8, 0x2F, 0x2F, 0xBD, 0x17, 0xEF, 0x07, 0xBC, 0x4F, 0x69, 0xDB, 0x3B,
+ 0xD5, 0x7E, 0x4B, 0x3B, 0x7E, 0x72, 0xC9, 0x3D, 0x22, 0x7F, 0x30, 0xBD,
+ 0xE8, 0x61, 0xE3, 0xBE, 0xD0, 0xEE, 0x2C, 0xBD, 0x2B, 0x82, 0x61, 0xBB,
+ 0x07, 0x84, 0xF4, 0xBB, 0xC1, 0xD8, 0x33, 0x3D, 0x61, 0x58, 0x3B, 0x3E,
+ 0xF1, 0x51, 0x16, 0x3D, 0xEE, 0xF8, 0x4A, 0xBD, 0x83, 0x26, 0xB3, 0x3E,
+ 0xD7, 0xC5, 0xE0, 0xBE, 0x39, 0x5F, 0xB0, 0x3D, 0x13, 0x4F, 0x8C, 0x3E,
+ 0x5A, 0x01, 0xD3, 0xBD, 0x92, 0x89, 0x81, 0x3E, 0xE1, 0x96, 0x44, 0x3D,
+ 0x7E, 0x19, 0xAD, 0x3E, 0xE9, 0xF1, 0xCE, 0xBC, 0x37, 0xF4, 0x80, 0x3C,
+ 0x9C, 0x20, 0xBF, 0xBC, 0xEA, 0x4C, 0x44, 0x3D, 0x43, 0x93, 0x56, 0xBD,
+ 0x7C, 0x8B, 0x23, 0xBD, 0x11, 0x01, 0xA0, 0xBC, 0x65, 0x9C, 0x84, 0x3C,
+ 0xB8, 0xF5, 0xEE, 0xBB, 0xD2, 0xD4, 0x56, 0x3C, 0x6F, 0xF5, 0x79, 0x3D,
+ 0x43, 0x24, 0xDC, 0x3C, 0x6D, 0x03, 0x8C, 0xBC, 0x6B, 0xEA, 0xA5, 0x3B,
+ 0x66, 0x25, 0xA3, 0xBA, 0x6B, 0x13, 0x89, 0x3D, 0x6E, 0x3D, 0x71, 0xBB,
+ 0x60, 0x2B, 0x2B, 0x3D, 0x10, 0x09, 0x4F, 0x3C, 0x4A, 0xC5, 0x41, 0xBC,
+ 0xD9, 0x21, 0xED, 0xBC, 0x29, 0x99, 0xFA, 0xBC, 0x78, 0x4C, 0xAC, 0xBB,
+ 0x4E, 0x7E, 0x2D, 0xBC, 0xE8, 0x4B, 0x5E, 0xBC, 0x1C, 0x06, 0x89, 0x3C,
+ 0x2D, 0xAA, 0x0B, 0xBC, 0x7E, 0x7C, 0xD1, 0x3B, 0x11, 0x5C, 0xBA, 0x3C,
+ 0xD9, 0x97, 0x18, 0x3D, 0xA5, 0x36, 0x16, 0xBD, 0x76, 0x03, 0x07, 0x3E,
+ 0x84, 0xC0, 0x8D, 0xBC, 0x8A, 0x32, 0x6F, 0x3C, 0x2A, 0x23, 0x23, 0xBF,
+ 0xDF, 0xF2, 0xD4, 0xBE, 0xAF, 0x55, 0xD7, 0x3E, 0x2C, 0xE0, 0xB3, 0xBE,
+ 0xCC, 0x62, 0x15, 0xBF, 0xA5, 0x7E, 0x85, 0x3D, 0x70, 0x4B, 0xE4, 0x3D,
+ 0x2E, 0xA0, 0x4A, 0xBE, 0x40, 0x57, 0x0F, 0xBC, 0x6D, 0x3F, 0x69, 0xBD,
+ 0x75, 0xC1, 0xB8, 0xBC, 0x4F, 0x73, 0x36, 0xBE, 0x96, 0x40, 0x9F, 0xBE,
+ 0x78, 0xBE, 0x1A, 0xBF, 0x2A, 0x4B, 0x98, 0xBC, 0x71, 0x39, 0x03, 0xBF,
+ 0x7F, 0xC4, 0x0D, 0x3F, 0x21, 0x8E, 0x1A, 0xBE, 0x8B, 0x6E, 0x48, 0xBF,
+ 0x11, 0x94, 0x25, 0x3F, 0x34, 0x48, 0x0A, 0xBE, 0x4A, 0x7B, 0xC1, 0xBD,
+ 0x7B, 0xBF, 0x9A, 0xBE, 0x12, 0x63, 0xBA, 0x3D, 0xD6, 0xAC, 0xE0, 0x3E,
+ 0x19, 0xF5, 0x06, 0xBF, 0x94, 0x59, 0x1B, 0xBF, 0xC4, 0x59, 0xDA, 0xBE,
+ 0x66, 0x52, 0xB5, 0xBE, 0xBE, 0x3E, 0x16, 0xBE, 0x75, 0x8B, 0x05, 0x3E,
+ 0x4E, 0xF4, 0xCE, 0xBE, 0xE2, 0x2C, 0xF3, 0x3E, 0xC4, 0x1B, 0x05, 0xBF,
+ 0xAF, 0xE8, 0x25, 0xBF, 0x4F, 0x93, 0x51, 0x3D, 0xD7, 0xAA, 0xBE, 0x3E,
+ 0x0F, 0xFE, 0x9F, 0x3E, 0x3E, 0x56, 0x08, 0xBF, 0x84, 0xBC, 0x8C, 0x3D,
+ 0x45, 0x81, 0x8E, 0x3E, 0xEB, 0x33, 0x53, 0xBF, 0x2B, 0x5E, 0xB1, 0x3E,
+ 0xF1, 0x11, 0x66, 0xBE, 0xF0, 0xFB, 0xA6, 0x3E, 0x3D, 0xAF, 0xC3, 0xBF,
+ 0xFA, 0x09, 0xF1, 0x3E, 0xF8, 0xE8, 0xBD, 0x3E, 0x63, 0x44, 0x20, 0x3D,
+ 0xD2, 0xF6, 0x47, 0xBD, 0x18, 0xCA, 0x13, 0x3F, 0x15, 0xCE, 0x78, 0x3E,
+ 0x4C, 0xF8, 0x63, 0x3D, 0x19, 0xC5, 0xA1, 0xBC, 0x64, 0xD3, 0xBB, 0x3E,
+ 0x72, 0x07, 0xE0, 0xBE, 0xCD, 0x42, 0x1B, 0xBE, 0xB7, 0xD5, 0x15, 0x3F,
+ 0x03, 0xAA, 0x11, 0xBE, 0x31, 0x35, 0xBA, 0x3E, 0x4C, 0x13, 0xBC, 0xBE,
+ 0xB2, 0xA5, 0x08, 0x3F, 0x92, 0xEA, 0x2B, 0x3E, 0xC3, 0x6F, 0x98, 0xBE,
+ 0xE0, 0x6D, 0xFC, 0xBB, 0x3F, 0x54, 0x4D, 0x3C, 0x60, 0x07, 0x69, 0xBE,
+ 0xF0, 0xE8, 0xC7, 0xBE, 0x7B, 0x33, 0xA1, 0xBD, 0xE9, 0x2D, 0x48, 0x3D,
+ 0x58, 0xC1, 0xBA, 0xBD, 0xAA, 0x04, 0x27, 0x3E, 0x42, 0x3B, 0x02, 0x3E,
+ 0x7D, 0xCF, 0x8F, 0xBD, 0x29, 0xA4, 0x75, 0x3C, 0x3A, 0x42, 0x03, 0xBD,
+ 0x6F, 0x96, 0x6B, 0xBD, 0x8B, 0x2C, 0x92, 0x3E, 0x2A, 0x0B, 0xAF, 0xBD,
+ 0xE1, 0xA7, 0xAD, 0x3D, 0x5A, 0x64, 0x05, 0xBD, 0x49, 0x0E, 0xCE, 0x3B,
+ 0xF3, 0x25, 0xCB, 0xBD, 0xAA, 0x37, 0xA5, 0xBD, 0x40, 0x8B, 0x8B, 0xBD,
+ 0x47, 0x56, 0x89, 0x3D, 0x82, 0x8E, 0x4C, 0xBE, 0x74, 0xF5, 0xE0, 0x3D,
+ 0x5E, 0x18, 0x6D, 0x3D, 0x90, 0xE8, 0x16, 0x3E, 0xD4, 0x8F, 0xC9, 0xBD,
+ 0xAF, 0x56, 0xF4, 0xBD, 0xC9, 0x67, 0x33, 0x3D, 0xAF, 0x73, 0xE6, 0xBE,
+ 0xBC, 0x55, 0xA6, 0x3E, 0x6C, 0x65, 0x99, 0x3B, 0x8D, 0xB8, 0x41, 0xBC,
+ 0x85, 0x92, 0x4B, 0x3B, 0x97, 0xB9, 0xA6, 0xBD, 0x28, 0x6F, 0xBA, 0x3D,
+ 0x57, 0xEF, 0x94, 0xBC, 0xDF, 0x8C, 0x3B, 0x3B, 0x3C, 0xD7, 0xB6, 0x3C,
+ 0x00, 0xA1, 0x07, 0x3C, 0xDA, 0x0A, 0xF4, 0x3B, 0x8D, 0xF3, 0x0D, 0xBC,
+ 0x23, 0x64, 0x04, 0x3D, 0xAA, 0xC8, 0x8B, 0xBC, 0x3B, 0xAD, 0xD8, 0x3B,
+ 0x67, 0xA7, 0x55, 0xBC, 0x60, 0x45, 0xA3, 0x3C, 0x39, 0x16, 0x30, 0xBC,
+ 0xAB, 0x72, 0x3B, 0xBA, 0x93, 0x93, 0x0E, 0x3C, 0x88, 0x66, 0xA8, 0xBB,
+ 0xD0, 0xF6, 0xC5, 0x3C, 0x35, 0xEC, 0xB8, 0x3C, 0x32, 0x5C, 0x94, 0x3B,
+ 0x60, 0x84, 0xAD, 0xBD, 0x12, 0xC6, 0xDB, 0x3D, 0xC1, 0xCD, 0x3F, 0x3D,
+ 0xCC, 0xC1, 0x6A, 0xBC, 0xBA, 0x7C, 0x47, 0x3D, 0xBB, 0x79, 0x06, 0x3D,
+ 0x60, 0xE8, 0x49, 0x3A, 0x70, 0xAB, 0x4D, 0x3D, 0x78, 0xE1, 0x1F, 0x3C,
+ 0x0C, 0xF7, 0xEB, 0xBC, 0x7D, 0xE5, 0xC9, 0x3E, 0xA7, 0xA3, 0x2B, 0x3D,
+ 0x0D, 0xA3, 0xA0, 0xBE, 0xE3, 0x06, 0x85, 0xBE, 0x52, 0xE6, 0x8D, 0xBE,
+ 0x1F, 0x26, 0x3F, 0xBE, 0xE8, 0x4D, 0xD6, 0x3D, 0x5F, 0x2A, 0x9E, 0x3D,
+ 0xF2, 0x8D, 0x5A, 0x3C, 0x0B, 0x08, 0x07, 0x3E, 0x62, 0xB6, 0xE2, 0x3E,
+ 0x77, 0x1E, 0x2C, 0xBB, 0xB3, 0x3F, 0x47, 0xBE, 0x7C, 0x28, 0x50, 0xBE,
+ 0xD4, 0xB4, 0xF3, 0xBE, 0x92, 0x0C, 0x11, 0x3E, 0x42, 0x50, 0x9C, 0xBD,
+ 0x8D, 0x64, 0x86, 0x3B, 0x9C, 0xAD, 0xF1, 0x3D, 0x76, 0x6B, 0x8D, 0xBE,
+ 0xD1, 0x84, 0xCF, 0x3C, 0xB3, 0x80, 0x5A, 0x3E, 0x5A, 0xAF, 0xFD, 0xBE,
+ 0x59, 0x9B, 0x2C, 0x3F, 0x8B, 0x37, 0xDD, 0xBE, 0xC7, 0xC3, 0xBE, 0xBE,
+ 0x2D, 0x56, 0xA9, 0x3D, 0x91, 0x56, 0x11, 0x3F, 0x8E, 0x65, 0x19, 0xBE,
+ 0xAB, 0x57, 0x8F, 0x3F, 0x96, 0x6B, 0x90, 0x3D, 0x82, 0xF9, 0x8C, 0x3E,
+ 0x4E, 0xBB, 0x4A, 0x3E, 0x25, 0x47, 0x19, 0x3E, 0xE9, 0x3D, 0xBF, 0x3E,
+ 0x00, 0xC6, 0x67, 0x3E, 0x74, 0xEF, 0x20, 0x3E, 0x99, 0x57, 0xAA, 0x3E,
+ 0x13, 0xB1, 0x3B, 0xBE, 0xED, 0xD8, 0x6B, 0x3D, 0xD4, 0xB5, 0x24, 0xBE,
+ 0xF9, 0x84, 0xB3, 0xBC, 0xD3, 0x6A, 0x51, 0xBF, 0x0D, 0xFE, 0xC1, 0xBC,
+ 0x26, 0xB3, 0xC3, 0xBE, 0x99, 0x07, 0x9F, 0x3E, 0x61, 0x23, 0x92, 0x3E,
+ 0xDB, 0x79, 0x15, 0x3E, 0x69, 0xD1, 0x6D, 0xBD, 0xB5, 0xED, 0xC7, 0x3C,
+ 0xD9, 0xC8, 0x56, 0xBE, 0xCA, 0x43, 0x3B, 0xBE, 0x55, 0x32, 0x5B, 0x3D,
+ 0x46, 0x71, 0x0F, 0xBE, 0x2F, 0xC5, 0x18, 0x3F, 0x26, 0x9D, 0x39, 0xBF,
+ 0x0D, 0xBA, 0x7E, 0xBF, 0x33, 0x74, 0x5D, 0x3D, 0xAD, 0xF2, 0x95, 0xBD,
+ 0x7A, 0x3E, 0x9D, 0xBE, 0xCA, 0x2F, 0xCB, 0x3D, 0xCB, 0x33, 0xC1, 0xBD,
+ 0x9C, 0x7D, 0x64, 0x3F, 0x25, 0x70, 0x13, 0xBE, 0x8C, 0xD6, 0x18, 0xBD,
+ 0x78, 0x46, 0x97, 0xBE, 0x34, 0x7F, 0x20, 0xBF, 0xEC, 0xA4, 0x0F, 0xBE,
+ 0xB2, 0x14, 0xC9, 0x3D, 0xB9, 0x40, 0x18, 0xBE, 0x01, 0xA3, 0x05, 0xBE,
+ 0x9B, 0xE6, 0x08, 0x3F, 0x6C, 0xAC, 0xAA, 0xBE, 0x82, 0x45, 0xE7, 0x3E,
+ 0xF2, 0x06, 0xFB, 0xBE, 0x31, 0x08, 0x3A, 0x3C, 0xD4, 0xDB, 0xAF, 0x3E,
+ 0xE3, 0xD2, 0xCA, 0x3D, 0x61, 0xFC, 0xBE, 0xBD, 0x9D, 0xE9, 0xCF, 0xBE,
+ 0x1B, 0xB3, 0x37, 0x3F, 0xED, 0xBC, 0x1F, 0x3C, 0x7A, 0x1C, 0x6E, 0x3E,
+ 0x38, 0x78, 0xA1, 0x3E, 0x57, 0x4B, 0xD7, 0xBD, 0x58, 0xFA, 0x65, 0xBE,
+ 0x69, 0xDE, 0xA2, 0xBE, 0xAB, 0xFE, 0x60, 0x3F, 0x98, 0x0A, 0x36, 0xBE,
+ 0x96, 0xCD, 0x33, 0x3E, 0xBB, 0xF3, 0x2C, 0x3F, 0x5F, 0xE1, 0xA6, 0xBE,
+ 0x7C, 0xC2, 0xB0, 0x3E, 0x40, 0x7A, 0xB3, 0x3E, 0x15, 0x99, 0x1C, 0x3F,
+ 0xD9, 0x7F, 0x87, 0xBE, 0x7E, 0xA7, 0xC8, 0xBE, 0x2D, 0x37, 0x12, 0x3F,
+ 0x94, 0xF7, 0x3C, 0x3F, 0xB9, 0xB9, 0x4C, 0x3D, 0xFA, 0xB4, 0x18, 0x3F,
+ 0x00, 0xFD, 0xD7, 0xBC, 0x2C, 0x30, 0x45, 0x3F, 0x24, 0x89, 0x01, 0xBF,
+ 0x21, 0x31, 0xA6, 0xBE, 0x91, 0xE6, 0xDC, 0x3E, 0x6F, 0x35, 0xB0, 0xBE,
+ 0x16, 0x27, 0xE3, 0x3E, 0x7C, 0x7B, 0xB1, 0x3E, 0x36, 0x69, 0x37, 0x3F,
+ 0x02, 0x59, 0xA7, 0x3E, 0x1B, 0xB4, 0x4F, 0x3F, 0xB0, 0xBD, 0xF5, 0x3C,
+ 0xCA, 0xAA, 0x9D, 0x3E, 0x5B, 0x06, 0xA9, 0xBE, 0xE1, 0x61, 0xDC, 0xBE,
+ 0x28, 0x9C, 0x07, 0x3D, 0x2D, 0x91, 0xD3, 0x3E, 0x12, 0x7D, 0x43, 0x3E,
+ 0x0C, 0x7C, 0x87, 0xBE, 0xCD, 0x35, 0xB5, 0x3E, 0x3E, 0xBC, 0x3B, 0xBD,
+ 0x6A, 0xD2, 0x4A, 0x3F, 0xF0, 0x91, 0x5F, 0xBE, 0xB5, 0xC5, 0x45, 0x3F,
+ 0x79, 0x2E, 0x21, 0x3F, 0xDD, 0x40, 0x32, 0xBD, 0x81, 0x60, 0x3D, 0x3E,
+ 0x0D, 0x3D, 0x8F, 0x3D, 0x32, 0x85, 0x93, 0xBC, 0x1A, 0x3B, 0xAA, 0x3D,
+ 0x04, 0x74, 0x3F, 0xBD, 0x03, 0x29, 0x3D, 0x3C, 0x21, 0xEF, 0xAB, 0x3C,
+ 0xBD, 0x6B, 0x2D, 0xBE, 0xA5, 0x69, 0xB4, 0xBC, 0x47, 0xC7, 0x2D, 0xBE,
+ 0xD9, 0x5C, 0xF9, 0xBD, 0x00, 0xDB, 0x54, 0xBC, 0x56, 0x3A, 0x00, 0xBE,
+ 0x0C, 0xD4, 0xFB, 0xBD, 0xE3, 0x81, 0x90, 0x3E, 0x93, 0xC6, 0xF0, 0xBD,
+ 0x62, 0x66, 0x90, 0xB9, 0x16, 0xDD, 0xA6, 0xBC, 0x4F, 0xCD, 0xF9, 0x3A,
+ 0x15, 0x06, 0x85, 0x3E, 0x78, 0xD0, 0x7F, 0xBD, 0xB5, 0x35, 0x5A, 0x3D,
+ 0x18, 0xA9, 0xBD, 0xBD, 0xA5, 0x15, 0x27, 0x3E, 0x67, 0xE6, 0x19, 0x39,
+ 0x19, 0xF8, 0x74, 0x3D, 0xCB, 0x5A, 0x8C, 0x3E, 0x7A, 0x77, 0xDE, 0xBD,
+ 0x1E, 0xF7, 0xB7, 0xBB, 0x1F, 0x3F, 0x8A, 0x3D, 0x20, 0xC5, 0x34, 0x3F,
+ 0xC6, 0xF1, 0x80, 0x3E, 0xEB, 0xC6, 0x90, 0x3E, 0x6E, 0x17, 0xE8, 0xBD,
+ 0x7A, 0x3D, 0xF3, 0xBD, 0x2A, 0x56, 0xBD, 0xBD, 0x00, 0xDC, 0x12, 0xBE,
+ 0x50, 0x40, 0x89, 0xBD, 0x5A, 0xBF, 0x90, 0xBD, 0x5E, 0x96, 0xB5, 0xBC,
+ 0x1B, 0x35, 0x8A, 0x3D, 0xD6, 0x60, 0x2B, 0x3D, 0x06, 0x81, 0x3D, 0xBD,
+ 0x77, 0x73, 0x5A, 0xBD, 0x90, 0xB4, 0x8F, 0x3D, 0x66, 0x96, 0x46, 0x3D,
+ 0xB1, 0x1B, 0x16, 0x3F, 0x6C, 0x64, 0x8C, 0x3D, 0x1E, 0x5C, 0x30, 0x3E,
+ 0x11, 0xB3, 0xBC, 0xBC, 0x6E, 0xFC, 0xE4, 0xBC, 0x63, 0x9D, 0x66, 0xBE,
+ 0x89, 0xBE, 0x39, 0xBC, 0x19, 0x9D, 0x69, 0xBC, 0x83, 0x6B, 0x85, 0x3D,
+ 0x57, 0xE1, 0x4F, 0x3E, 0xC1, 0xA5, 0x81, 0xBE, 0x7C, 0x07, 0x10, 0xBE,
+ 0x85, 0x2D, 0x54, 0x3E, 0xDB, 0xB4, 0xC7, 0x3B, 0x04, 0x44, 0x44, 0x3C,
+ 0xDC, 0x8A, 0x03, 0x3E, 0x1B, 0xF4, 0x99, 0x3D, 0x09, 0x60, 0x3E, 0x3E,
+ 0x8C, 0xEC, 0x0C, 0xBE, 0x2E, 0x4F, 0x82, 0x3E, 0x88, 0x26, 0xD1, 0x3B,
+ 0xD0, 0x3F, 0xB0, 0x3C, 0x18, 0xC6, 0x6B, 0x3E, 0xC4, 0x5D, 0x0F, 0xBD,
+ 0x13, 0x38, 0x4C, 0xBD, 0x28, 0xB1, 0x8F, 0x3D, 0xA2, 0x16, 0xA7, 0xBD,
+ 0x23, 0xC2, 0x24, 0xBC, 0x01, 0x33, 0xA2, 0x3B, 0x2E, 0xF7, 0xE8, 0x3D,
+ 0x4B, 0xF4, 0x95, 0x3C, 0x3B, 0x35, 0x88, 0xBB, 0xEC, 0xFF, 0x9C, 0x3D,
+ 0xE8, 0xC3, 0xE8, 0xBD, 0xCC, 0x54, 0xA6, 0x3C, 0xB5, 0x09, 0xA4, 0xBD,
+ 0xDE, 0xB9, 0xDF, 0xBA, 0x45, 0xA0, 0x7E, 0x3E, 0x65, 0xA9, 0x33, 0x3E,
+ 0x04, 0x5D, 0xA2, 0x3C, 0xC0, 0xC5, 0xD9, 0xBD, 0xEE, 0x85, 0x97, 0xBD,
+ 0x8A, 0x28, 0x22, 0x3D, 0xC1, 0xF0, 0x84, 0x3A, 0xFB, 0xF6, 0x17, 0x3D,
+ 0x93, 0x64, 0xDB, 0x3B, 0x2B, 0xD6, 0x9C, 0x3D, 0xBA, 0x9C, 0xC6, 0x3B,
+ 0x16, 0xF2, 0x0D, 0xBF, 0x67, 0xD8, 0xE4, 0xBD, 0xF2, 0xF4, 0x2F, 0xBD,
+ 0x4C, 0xC5, 0xDD, 0x3D, 0x69, 0x22, 0x9C, 0xBD, 0x76, 0xB6, 0x5C, 0x3D,
+ 0x46, 0x82, 0xC3, 0x3D, 0x10, 0xCE, 0x17, 0x3D, 0xCB, 0xCE, 0xD9, 0xBC,
+ 0xA2, 0x75, 0x37, 0x3D, 0x88, 0xC3, 0x30, 0xBD, 0x07, 0xF5, 0xA6, 0xBD,
+ 0x43, 0x83, 0xB8, 0xBD, 0xC8, 0x91, 0xA0, 0x3C, 0xB0, 0x2E, 0x56, 0x3C,
+ 0x15, 0x3C, 0x00, 0x3A, 0x49, 0x19, 0xB7, 0x3C, 0xDC, 0xAE, 0xD4, 0xBC,
+ 0xFB, 0x7C, 0x51, 0xBD, 0x37, 0x23, 0x19, 0x3D, 0x40, 0x68, 0x9A, 0x3C,
+ 0x81, 0x0F, 0x29, 0x3D, 0xF1, 0x9E, 0x73, 0xBD, 0x19, 0x25, 0x30, 0xBC,
+ 0xBC, 0xD0, 0xCA, 0x3D, 0x91, 0xAB, 0xAC, 0x3D, 0x7F, 0xF4, 0xE4, 0xBC,
+ 0x32, 0x11, 0x90, 0x3C, 0x9B, 0x37, 0x03, 0xBD, 0x10, 0xB0, 0x85, 0xBC,
+ 0xB3, 0x32, 0x9E, 0xBD, 0xA4, 0x84, 0x42, 0x3B, 0x6C, 0xD4, 0x2C, 0xBF,
+ 0xC1, 0xAB, 0xB3, 0xBC, 0x7E, 0xFD, 0x5D, 0xBB, 0x44, 0xDE, 0x16, 0xBD,
+ 0xC6, 0x5C, 0xE1, 0x3D, 0x20, 0x3E, 0xDF, 0xBD, 0xA8, 0xD8, 0xFA, 0x3D,
+ 0x78, 0xF3, 0xE8, 0xBC, 0xF7, 0x42, 0x2E, 0xBD, 0xE1, 0x89, 0xDC, 0x3C,
+ 0x6C, 0x18, 0x08, 0x3E, 0x64, 0xB8, 0x1E, 0xBD, 0x8D, 0x2A, 0x2E, 0xBD,
+ 0x4C, 0x73, 0x07, 0x3E, 0x4C, 0x9F, 0x5C, 0x3D, 0x06, 0x60, 0xB8, 0xBC,
+ 0x5E, 0xEA, 0x3E, 0x3E, 0x58, 0x53, 0xD4, 0x3D, 0x8D, 0xBE, 0x1B, 0xBD,
+ 0xCA, 0xAD, 0xDE, 0x3C, 0x45, 0x19, 0x54, 0xBC, 0x37, 0x56, 0x1D, 0xBE,
+ 0xA3, 0xFC, 0x20, 0x3E, 0xD1, 0xB9, 0x53, 0xBD, 0x35, 0x26, 0xFC, 0x3C,
+ 0x67, 0xC2, 0xA3, 0xBE, 0x73, 0x1E, 0x85, 0x3E, 0xA1, 0x36, 0x61, 0x3E,
+ 0xFC, 0xD7, 0xDF, 0xBB, 0x23, 0xB4, 0x5E, 0x3D, 0x61, 0x3D, 0xC5, 0xBC,
+ 0x74, 0xB7, 0x85, 0x3D, 0x79, 0x91, 0x5A, 0x3F, 0x9A, 0xE2, 0x20, 0x3D,
+ 0x23, 0x3C, 0xE1, 0xBD, 0xDF, 0x3A, 0x55, 0xBE, 0x1E, 0x69, 0x96, 0xBE,
+ 0x04, 0x4B, 0xD2, 0xBE, 0xE6, 0x2A, 0x49, 0xBF, 0x33, 0x07, 0x37, 0xBE,
+ 0x99, 0x54, 0x85, 0xBD, 0x63, 0x06, 0xAF, 0xBC, 0xAF, 0x4E, 0xB3, 0x3D,
+ 0x76, 0xA3, 0xDF, 0xBD, 0x49, 0x9D, 0xE4, 0x3D, 0xA5, 0x44, 0xC4, 0x3E,
+ 0x6D, 0xCF, 0x13, 0x3A, 0xDE, 0x41, 0xFA, 0xBE, 0x32, 0xFD, 0x9D, 0x3E,
+ 0x9E, 0x08, 0xBE, 0x3E, 0xD3, 0x3F, 0x5C, 0x3E, 0x07, 0x0F, 0xD9, 0x3E,
+ 0xFC, 0x70, 0x1F, 0x3D, 0x7E, 0x24, 0x7D, 0xBD, 0xB5, 0xDE, 0xCD, 0x3E,
+ 0x32, 0x93, 0x20, 0xBD, 0x4A, 0x2F, 0x3A, 0x3E, 0xE1, 0x57, 0x9C, 0x3E,
+ 0x0E, 0xB6, 0xB9, 0xBD, 0x9B, 0x01, 0xB2, 0xBE, 0xFD, 0x9C, 0x7D, 0xBE,
+ 0x20, 0x1D, 0xBE, 0xBE, 0x1A, 0xD5, 0x67, 0x3F, 0x52, 0xC0, 0x8D, 0xBC,
+ 0xD7, 0x32, 0x8A, 0x3D, 0xA3, 0x3B, 0xD3, 0x3E, 0x3B, 0x41, 0x9E, 0x3D,
+ 0xE4, 0x68, 0xA7, 0xBB, 0x00, 0xEC, 0x97, 0x3E, 0x7D, 0x40, 0x57, 0xBE,
+ 0xBE, 0x8C, 0x81, 0x3D, 0x56, 0x90, 0x73, 0xBC, 0x90, 0xAA, 0x02, 0x3E,
+ 0xEA, 0xEE, 0xB5, 0xBC, 0xC8, 0xAD, 0xD9, 0x3D, 0xD7, 0xDA, 0xDE, 0x3D,
+ 0x00, 0x30, 0x4C, 0x3C, 0xA0, 0xC0, 0x9E, 0x3D, 0xCF, 0x2F, 0x21, 0x3C,
+ 0x31, 0x1D, 0xDD, 0x3C, 0x95, 0x2B, 0x19, 0x3D, 0x27, 0xC9, 0x90, 0x3B,
+ 0x26, 0x43, 0x8C, 0xBC, 0x2F, 0x68, 0x5C, 0x3D, 0xCA, 0x7C, 0x12, 0xBD,
+ 0x14, 0x60, 0x26, 0x3C, 0xE0, 0xB5, 0x8E, 0x3D, 0x6A, 0x64, 0xC9, 0xBC,
+ 0x3D, 0x36, 0x8E, 0xBD, 0x53, 0x6A, 0x58, 0xBE, 0xA4, 0x81, 0x45, 0x3E,
+ 0x9F, 0x5E, 0x8F, 0x3D, 0x0B, 0x21, 0x87, 0xBD, 0x0B, 0xF9, 0xF6, 0x3C,
+ 0xF2, 0x74, 0x84, 0x3D, 0x51, 0x30, 0x97, 0xBC, 0x5F, 0x9B, 0x30, 0x3F,
+ 0xE5, 0x3F, 0x37, 0xBD, 0x86, 0xC6, 0x8C, 0xBC, 0x8D, 0x4D, 0xD4, 0x3D,
+ 0x6E, 0xC4, 0x89, 0xBB, 0x04, 0xE0, 0x2B, 0x3D, 0xD1, 0x75, 0x89, 0x3C,
+ 0x0B, 0x74, 0x40, 0x3D, 0x15, 0x01, 0x9B, 0x3C, 0x95, 0xD1, 0xE6, 0xBC,
+ 0x27, 0x7D, 0x73, 0xBD, 0xAB, 0x52, 0x3C, 0x3D, 0xB3, 0x39, 0x4F, 0xBD,
+ 0xFD, 0xCA, 0xB8, 0x3B, 0xE4, 0xCD, 0xE4, 0xBC, 0xB8, 0xBF, 0x0D, 0x3D,
+ 0x4A, 0xD1, 0xBE, 0xBC, 0xC8, 0x89, 0x60, 0xBD, 0x32, 0x51, 0x1E, 0xBC,
+ 0x68, 0x5C, 0x30, 0x3D, 0xE9, 0x39, 0xD4, 0x3A, 0x4C, 0xA7, 0xA6, 0x3D,
+ 0x1A, 0x61, 0xD2, 0xBC, 0xA6, 0x4F, 0x6A, 0xBC, 0xC5, 0x5E, 0xAF, 0x3B,
+ 0xB9, 0xE8, 0x0A, 0x3E, 0x9C, 0xF9, 0x0D, 0xBE, 0x1B, 0xDD, 0x92, 0xBD,
+ 0x16, 0x19, 0x22, 0x3C, 0xD4, 0x23, 0x07, 0xBB, 0xFE, 0x86, 0x07, 0x3D,
+ 0xA8, 0xCB, 0xD4, 0xBC, 0x84, 0x91, 0x42, 0x3E, 0x3D, 0x1D, 0xC2, 0xBC,
+ 0x3C, 0x70, 0xA3, 0x3D, 0x56, 0x61, 0x8D, 0xBE, 0x68, 0x57, 0xFF, 0x3E,
+ 0xDB, 0x77, 0x7D, 0x3D, 0xC2, 0xF9, 0xC1, 0x3E, 0x9A, 0xC4, 0xF7, 0xBD,
+ 0x76, 0x7C, 0xC5, 0x3C, 0x19, 0x24, 0x8E, 0xBE, 0xB3, 0xB5, 0xFA, 0x3E,
+ 0xC0, 0x4B, 0xFD, 0xBD, 0xC7, 0x98, 0x14, 0x3F, 0xE9, 0x3C, 0x1B, 0xBF,
+ 0x3B, 0x52, 0x04, 0x3D, 0x19, 0xBA, 0xA2, 0xBE, 0x6C, 0xE1, 0x99, 0x3F,
+ 0xB9, 0x82, 0x44, 0xBF, 0xF3, 0xF2, 0x33, 0x3F, 0xF3, 0xC4, 0x48, 0xBF,
+ 0x9A, 0x80, 0x9C, 0xBC, 0x91, 0x44, 0xB3, 0x3E, 0xA3, 0x2B, 0x17, 0xBE,
+ 0x73, 0xA1, 0x61, 0x3C, 0xAA, 0xF6, 0x7A, 0xBE, 0x62, 0x8E, 0x40, 0x3E,
+ 0x66, 0x0D, 0xBD, 0x3D, 0xBD, 0x90, 0x0D, 0x3F, 0xC8, 0xA8, 0x6A, 0x3E,
+ 0xA2, 0xAE, 0xEB, 0x3D, 0x46, 0x1B, 0x01, 0xBE, 0xAC, 0xC2, 0x15, 0x3E,
+ 0x7A, 0x81, 0xB0, 0x3E, 0x6E, 0xD6, 0x89, 0x3E, 0xBD, 0x7E, 0x1C, 0x3D,
+ 0xFA, 0x8F, 0xA8, 0xBD, 0x79, 0xB1, 0xF5, 0xBD, 0x23, 0x29, 0x0C, 0xBF,
+ 0x75, 0xAF, 0xB6, 0x3E, 0xEA, 0x88, 0x76, 0xBD, 0x98, 0xE9, 0xDB, 0x3C,
+ 0x52, 0x42, 0x19, 0xBE, 0xA6, 0x9C, 0xF2, 0x3E, 0xD2, 0xDE, 0xFF, 0x3D,
+ 0xC5, 0xCB, 0x55, 0x3E, 0x0B, 0x92, 0x30, 0xBE, 0x7E, 0x81, 0x4F, 0x3C,
+ 0x68, 0x07, 0xF8, 0x3C, 0x10, 0xB2, 0xCB, 0xBE, 0x4A, 0x71, 0xEF, 0xBE,
+ 0xD4, 0x5C, 0xDB, 0xBD, 0x02, 0x8E, 0x82, 0x3E, 0x67, 0xB0, 0x92, 0x3C,
+ 0xBA, 0x2C, 0x1A, 0x3E, 0xA4, 0xFF, 0xA9, 0x3A, 0xDD, 0x4C, 0xDF, 0x3C,
+ 0xA4, 0xCA, 0x8C, 0xBD, 0x1A, 0x2F, 0xB6, 0xBD, 0xC8, 0x4E, 0x23, 0x3F,
+ 0xA3, 0xCF, 0x48, 0x3E, 0x5A, 0x0F, 0x72, 0x3E, 0x9F, 0xEF, 0x86, 0x3E,
+ 0x87, 0x0A, 0x83, 0xBC, 0x4F, 0x35, 0x23, 0xBE, 0x7B, 0x71, 0x5D, 0x3E,
+ 0x8E, 0x75, 0xCC, 0x3E, 0xCC, 0xA4, 0xC0, 0x3D, 0xB5, 0x8B, 0x9C, 0x3E,
+ 0xAB, 0xC9, 0x46, 0xBD, 0x02, 0xAD, 0xAE, 0xBE, 0x1E, 0x00, 0x8F, 0xBE,
+ 0x10, 0x27, 0x0B, 0x3C, 0x50, 0x9A, 0x3E, 0xBE, 0x9F, 0x4A, 0x89, 0x3E,
+ 0x45, 0xAB, 0x2C, 0x3E, 0x17, 0x40, 0xB7, 0x3D, 0xAD, 0xE4, 0x2F, 0x3E,
+ 0x00, 0xC1, 0x29, 0x3E, 0x9B, 0xBB, 0x1C, 0x3E, 0x2B, 0x8B, 0x81, 0xBD,
+ 0x85, 0x00, 0x73, 0x3F, 0x47, 0xA8, 0x03, 0x3E, 0xA8, 0x3A, 0x4B, 0x3D,
+ 0x0B, 0x77, 0x6E, 0xBD, 0x0B, 0xC5, 0xE3, 0x3D, 0x32, 0x8E, 0xD5, 0x3A,
+ 0x33, 0xF2, 0x25, 0xBC, 0xE2, 0xFE, 0xA3, 0xBD, 0x9E, 0xB5, 0x1B, 0x3E,
+ 0xAF, 0x00, 0xC6, 0xBE, 0xFF, 0x01, 0x3B, 0x3D, 0x1E, 0x45, 0x74, 0xBE,
+ 0xAC, 0x6B, 0x6B, 0xBE, 0xCE, 0xB0, 0xAB, 0x3D, 0xCD, 0xDA, 0x03, 0xBE,
+ 0x30, 0xBE, 0x6D, 0x3E, 0x63, 0x7F, 0x03, 0xBE, 0xB5, 0x51, 0x88, 0x3C,
+ 0xD4, 0x15, 0x48, 0x3D, 0x0D, 0xC9, 0x6E, 0xBD, 0x64, 0x6A, 0x8C, 0x3E,
+ 0xD9, 0x97, 0xCB, 0xBE, 0x01, 0x10, 0xCF, 0xBE, 0xEF, 0x90, 0xDE, 0xBE,
+ 0x7E, 0xF8, 0xFB, 0x3C, 0x82, 0x24, 0x81, 0x3A, 0xDC, 0x9B, 0x27, 0xBF,
+ 0x5A, 0x86, 0x21, 0x3E, 0x81, 0x1A, 0xE7, 0xBE, 0x28, 0x7E, 0x01, 0xBF,
+ 0x20, 0x05, 0xF8, 0xBC, 0xAE, 0xD8, 0x0E, 0x3F, 0x12, 0x70, 0xD7, 0xBE,
+ 0x7C, 0xDD, 0xC2, 0x3E, 0x73, 0xB7, 0x73, 0x3E, 0xE2, 0xD6, 0x9B, 0xBE,
+ 0xEB, 0x33, 0x9D, 0xBC, 0xA7, 0x68, 0x96, 0x3E, 0xBE, 0x84, 0x94, 0xBD,
+ 0x18, 0xCC, 0xAE, 0x3C, 0xE7, 0xF9, 0x15, 0x3F, 0x12, 0x21, 0x9C, 0x3E,
+ 0x3D, 0x7A, 0xBD, 0x3F, 0x75, 0x00, 0x25, 0xBE, 0xFD, 0xAC, 0x31, 0xBD,
+ 0x5C, 0x31, 0x34, 0xBF, 0xB5, 0x55, 0x49, 0xBF, 0xDA, 0xD4, 0x4E, 0xBE,
+ 0x3E, 0xA3, 0xF3, 0x3E, 0x23, 0xA5, 0x70, 0xBF, 0x10, 0x8D, 0x62, 0x3E,
+ 0xCE, 0x80, 0xC2, 0x3D, 0x6E, 0xB9, 0x3E, 0xBE, 0x29, 0x0F, 0x17, 0x3F,
+ 0x68, 0x41, 0x05, 0x3E, 0xA0, 0xC6, 0xC1, 0xBE, 0x6D, 0xE1, 0xFA, 0xBD,
+ 0x84, 0x91, 0xC0, 0xBE, 0x0B, 0xF5, 0x8F, 0xBD, 0x7E, 0x3C, 0xD8, 0xBD,
+ 0x6C, 0xFD, 0x88, 0x3E, 0xC2, 0x7C, 0x15, 0xBD, 0xE6, 0x49, 0x9B, 0xBC,
+ 0xFA, 0xB4, 0x33, 0xBE, 0x4E, 0xF7, 0xAE, 0xBD, 0xFA, 0x98, 0x5E, 0xBE,
+ 0x3D, 0x11, 0x57, 0xBD, 0x88, 0xEE, 0x82, 0xBD, 0xE3, 0x18, 0x0B, 0xBD,
+ 0x09, 0x06, 0x89, 0x3D, 0x03, 0x12, 0x90, 0x3C, 0x75, 0x2D, 0x93, 0x3E,
+ 0x36, 0x35, 0xE9, 0x3D, 0xEF, 0xFA, 0xBB, 0xBE, 0xC8, 0x3A, 0xAC, 0xBE,
+ 0x50, 0x48, 0x15, 0xBF, 0xFA, 0xD6, 0xA6, 0x3D, 0xDE, 0x95, 0xD9, 0x3E,
+ 0x19, 0x19, 0x2F, 0xBF, 0xDE, 0x4E, 0xAA, 0xBD, 0xB2, 0x23, 0x02, 0xBE,
+ 0x27, 0x96, 0x01, 0xBF, 0x56, 0xA1, 0x49, 0xBD, 0xD0, 0xCB, 0x4D, 0xBE,
+ 0xE4, 0x79, 0xD4, 0x3D, 0x0A, 0x95, 0xBE, 0x3E, 0x6C, 0x56, 0xAF, 0xBE,
+ 0x4A, 0xCF, 0x7F, 0xBE, 0xBC, 0x42, 0x79, 0xBD, 0xA3, 0x2C, 0x56, 0x3E,
+ 0xE0, 0x94, 0x9C, 0x3D, 0xA0, 0x14, 0xB6, 0xBD, 0x97, 0xEC, 0x54, 0x3F,
+ 0x43, 0x13, 0x39, 0x3E, 0xF9, 0x97, 0x24, 0xBC, 0x32, 0x96, 0x22, 0xBD,
+ 0x6A, 0x05, 0xC3, 0x3E, 0xC3, 0x82, 0x85, 0x3D, 0xD3, 0x30, 0x79, 0xBD,
+ 0x26, 0xB6, 0xE5, 0x3E, 0xC8, 0x3F, 0x5A, 0xBC, 0x42, 0x46, 0x42, 0xBE,
+ 0x12, 0xBA, 0xEA, 0xBE, 0x65, 0x61, 0x25, 0xBD, 0x1F, 0x5D, 0x8E, 0x3E,
+ 0xEE, 0x65, 0x05, 0xBF, 0x98, 0x05, 0xC7, 0x3F, 0x0A, 0xAD, 0x2A, 0xBF,
+ 0x4D, 0xE0, 0x1A, 0xBE, 0xF8, 0xF7, 0xD0, 0x3D, 0xDD, 0x54, 0x13, 0xBF,
+ 0x6F, 0x09, 0xAF, 0xBD, 0xFC, 0xC7, 0x08, 0xBF, 0x3E, 0x73, 0x76, 0xBE,
+ 0xF7, 0x3F, 0x2C, 0x3E, 0xEE, 0xFB, 0x17, 0x3E, 0x81, 0xC4, 0xD8, 0x3D,
+ 0x82, 0x1A, 0xE3, 0xBD, 0x57, 0x3F, 0x21, 0xBD, 0x9B, 0x03, 0x89, 0x3D,
+ 0x0E, 0xC6, 0x05, 0x3B, 0x12, 0xE5, 0xAC, 0xBD, 0x0C, 0xA4, 0x81, 0x3B,
+ 0xE1, 0xB5, 0x01, 0xBE, 0xDC, 0xE7, 0x01, 0xBE, 0x7B, 0xD9, 0x54, 0x3D,
+ 0x12, 0x85, 0x0D, 0xBD, 0x62, 0xEE, 0xD7, 0x3B, 0x0F, 0xBF, 0xC0, 0xBC,
+ 0x5F, 0x09, 0x14, 0xBE, 0xE4, 0xF3, 0x2B, 0xBD, 0xBA, 0xD3, 0x27, 0x3E,
+ 0x55, 0xD0, 0x01, 0x3C, 0x1F, 0x49, 0x0F, 0x3E, 0x18, 0x7A, 0x59, 0x3B,
+ 0x0C, 0xC8, 0xA1, 0xBB, 0x73, 0xD7, 0x34, 0xBC, 0xD0, 0xFD, 0x0D, 0x3E,
+ 0x2E, 0xD2, 0x9A, 0xBD, 0x74, 0x6B, 0x41, 0x3D, 0x80, 0x89, 0x40, 0x3D,
+ 0xA5, 0x3A, 0xA4, 0xBD, 0xC5, 0x94, 0x09, 0xBC, 0x31, 0x71, 0x46, 0x3D,
+ 0xFC, 0xC1, 0x2F, 0x3E, 0x30, 0x14, 0xDB, 0xBA, 0x5E, 0x0E, 0x12, 0x3A,
+ 0xA0, 0x8C, 0xA9, 0x3D, 0xC2, 0x4D, 0xEE, 0x3D, 0xA6, 0x1A, 0xA1, 0xBD,
+ 0xD5, 0x0F, 0x83, 0xBD, 0x63, 0x02, 0x5A, 0x3C, 0x25, 0xF7, 0x83, 0xBB,
+ 0xFE, 0x91, 0x7E, 0xBD, 0x38, 0xC2, 0x34, 0xBA, 0x87, 0x59, 0x8C, 0x3D,
+ 0xFA, 0x28, 0x6E, 0xBB, 0xA1, 0x55, 0xD1, 0x3B, 0x7B, 0x93, 0xB7, 0xBC,
+ 0xA6, 0xDD, 0x1E, 0x3C, 0xB2, 0xCA, 0x08, 0x3D, 0x2C, 0x08, 0x97, 0xBD,
+ 0x0C, 0x2E, 0x26, 0x3C, 0x13, 0x28, 0xD6, 0x3D, 0xC0, 0x32, 0x97, 0xBB,
+ 0xEF, 0xA8, 0x89, 0x3D, 0x42, 0x5B, 0x2E, 0xBD, 0xB0, 0xEF, 0xFC, 0xBB,
+ 0x94, 0x96, 0xAB, 0xBD, 0xF5, 0x5E, 0x42, 0x3D, 0xDD, 0xFE, 0x85, 0xBD,
+ 0x3A, 0x18, 0x95, 0xBC, 0x5A, 0x42, 0x89, 0xBB, 0xBA, 0xA7, 0x5F, 0xBD,
+ 0xBB, 0x32, 0x01, 0x3D, 0x90, 0x0A, 0x05, 0xBD, 0xF5, 0xC0, 0x2A, 0x3E,
+ 0x1F, 0xE7, 0x1B, 0xBD, 0xC7, 0x60, 0x43, 0xBD, 0x6F, 0xFD, 0x53, 0x3D,
+ 0xA5, 0x35, 0xBE, 0xBD, 0x50, 0x8B, 0x11, 0x3C, 0x60, 0x0A, 0x33, 0xBD,
+ 0x02, 0xA1, 0x8D, 0xBC, 0x5C, 0xB1, 0x93, 0xBC, 0x67, 0x42, 0x3B, 0x3D,
+ 0x53, 0xF8, 0xD3, 0xBC, 0x1A, 0x8B, 0x44, 0xBD, 0xF5, 0x15, 0xB9, 0x3C,
+ 0x14, 0xDA, 0x3D, 0xBD, 0x8D, 0xD4, 0xDE, 0x3C, 0xCB, 0xD4, 0x55, 0x3C,
+ 0x20, 0x42, 0x23, 0x3E, 0x44, 0x0D, 0x02, 0x3D, 0x80, 0x30, 0x0A, 0x3D,
+ 0x55, 0x4F, 0xB5, 0xBC, 0x0A, 0xE0, 0xB2, 0x3C, 0x10, 0x57, 0x72, 0xBD,
+ 0x6E, 0x6C, 0xBC, 0xBC, 0xA8, 0xAB, 0x25, 0xBC, 0x7E, 0x93, 0x83, 0xB6,
+ 0x76, 0xE2, 0x0D, 0x3B, 0x2E, 0x4B, 0xE0, 0xBD, 0xA4, 0xFF, 0x0F, 0xBE,
+ 0x60, 0xA6, 0x46, 0xBD, 0x24, 0xAD, 0xFC, 0xBB, 0x57, 0xF5, 0x06, 0xBD,
+ 0x7A, 0x1A, 0xE9, 0xBC, 0x32, 0xEA, 0x1A, 0xBF, 0x5A, 0x97, 0x38, 0xBD,
+ 0xC5, 0x0E, 0x93, 0xBC, 0x10, 0x3B, 0xD9, 0x3D, 0x00, 0x40, 0xAB, 0xBD,
+ 0x32, 0x04, 0x51, 0xBC, 0x55, 0x16, 0xED, 0xBD, 0xB9, 0x1D, 0xA8, 0x3C,
+ 0xD4, 0x2B, 0xE4, 0xBC, 0x4A, 0x8E, 0x77, 0x3B, 0x02, 0x06, 0xD1, 0xBC,
+ 0x1D, 0xF3, 0x46, 0xBD, 0xFB, 0x99, 0x09, 0x3D, 0x1B, 0x47, 0xF4, 0x3B,
+ 0xE0, 0x8A, 0xB3, 0x3B, 0x45, 0x8D, 0x7B, 0xBB, 0x2B, 0x4B, 0x97, 0x3E,
+ 0x9D, 0xF0, 0x48, 0xBD, 0xE5, 0xF4, 0xE9, 0x3D, 0x1C, 0x53, 0xE5, 0x3C,
+ 0x3D, 0xD0, 0x8A, 0x3C, 0x92, 0x2D, 0x90, 0x3C, 0xC2, 0x72, 0xDC, 0xBC,
+ 0xB8, 0x6C, 0x87, 0xBC, 0x06, 0xEB, 0x7F, 0xBC, 0xB9, 0x66, 0xDB, 0x3D,
+ 0xA7, 0x66, 0x5F, 0xBE, 0x4E, 0x3B, 0x2B, 0xBE, 0xF9, 0x19, 0x28, 0x3C,
+ 0x51, 0x0D, 0x59, 0xBC, 0xEF, 0xE8, 0xFF, 0x3B, 0xB7, 0x05, 0x22, 0xBC,
+ 0x34, 0x3B, 0x8C, 0x3D, 0x45, 0x4A, 0x8C, 0xBB, 0xC3, 0xCC, 0x95, 0xBB,
+ 0x32, 0x33, 0x9B, 0xBE, 0xF5, 0x5A, 0x8B, 0xBE, 0x69, 0xFA, 0x89, 0x3E,
+ 0xFD, 0x19, 0x2C, 0x3F, 0x56, 0x5A, 0xBD, 0x3C, 0x83, 0xA1, 0xB8, 0xB9,
+ 0x72, 0xBD, 0x1E, 0x3D, 0x24, 0x15, 0x08, 0x3D, 0x5C, 0xFA, 0x7E, 0x3C,
+ 0x33, 0x8C, 0xF9, 0x3D, 0xDC, 0xC0, 0xD8, 0x3E, 0xF6, 0x9B, 0x77, 0x3B,
+ 0x08, 0x69, 0x18, 0x3F, 0x98, 0x33, 0xD2, 0xBE, 0x33, 0xD9, 0x21, 0xBF,
+ 0xEF, 0xF9, 0xEE, 0xBB, 0x79, 0x2A, 0xD0, 0x3F, 0x14, 0x51, 0x19, 0x3C,
+ 0xA0, 0x90, 0x0A, 0xBE, 0x15, 0x5E, 0xC8, 0xBE, 0xD8, 0x4F, 0x51, 0x3D,
+ 0xF2, 0xAA, 0xDC, 0x3D, 0xAF, 0x5D, 0x87, 0xBE, 0x3D, 0x26, 0xA6, 0x3E,
+ 0x3F, 0x9E, 0xA2, 0xBE, 0xFE, 0x30, 0x2C, 0x3E, 0x27, 0xBD, 0xF2, 0xBD,
+ 0xA9, 0xD7, 0x8E, 0xBF, 0x8B, 0x6D, 0x02, 0xBD, 0x9C, 0x44, 0xEE, 0x3E,
+ 0xCF, 0x83, 0xA9, 0xBF, 0x10, 0x0C, 0x3C, 0x3E, 0x97, 0xBE, 0x20, 0xBF,
+ 0xF6, 0xB3, 0xC1, 0xBE, 0x8D, 0x40, 0x2B, 0x3F, 0xB2, 0x51, 0xB9, 0x3E,
+ 0x0E, 0x90, 0x80, 0x3D, 0x0F, 0x99, 0x43, 0x3D, 0x9B, 0xFF, 0x72, 0x3D,
+ 0xDE, 0x52, 0xA4, 0x3D, 0x31, 0x22, 0x91, 0x3E, 0x0D, 0x96, 0x2B, 0xBE,
+ 0x5B, 0x8A, 0x92, 0x3D, 0x0F, 0x2E, 0x4F, 0x3C, 0xBC, 0xB5, 0x4B, 0x3E,
+ 0x44, 0x35, 0x34, 0xBF, 0x2C, 0x7B, 0xF5, 0xBD, 0xB5, 0xD2, 0xF5, 0x3C,
+ 0x45, 0x48, 0xEB, 0xBE, 0x33, 0x33, 0x04, 0x3B, 0xC1, 0x21, 0xFE, 0xBE,
+ 0x78, 0xEF, 0xD5, 0x3C, 0xF1, 0xF9, 0x7A, 0x3D, 0x5D, 0x10, 0xA9, 0xBE,
+ 0x45, 0x61, 0x5D, 0x3F, 0x79, 0xAA, 0xC5, 0xBE, 0x9E, 0xD0, 0x31, 0xBE,
+ 0xED, 0xE9, 0x77, 0xBE, 0xB4, 0x91, 0xC9, 0xBD, 0x40, 0x76, 0x57, 0xBB,
+ 0x36, 0x2E, 0x03, 0xBE, 0x43, 0x35, 0x30, 0xBF, 0x74, 0x60, 0xFF, 0xBE,
+ 0xD7, 0x0A, 0xAB, 0xBE, 0x90, 0x6F, 0x2D, 0x3F, 0xA7, 0x5C, 0x76, 0x3F,
+ 0x3C, 0x6B, 0xB3, 0xBE, 0xF9, 0x6C, 0xA1, 0xBD, 0x98, 0x52, 0xB7, 0x3E,
+ 0x4B, 0x3D, 0x0F, 0xBE, 0xC0, 0x6B, 0x26, 0xBE, 0xC6, 0x5A, 0x49, 0xBE,
+ 0x4B, 0xDD, 0x8D, 0x3D, 0x1E, 0x21, 0xC9, 0x3E, 0x86, 0x74, 0x18, 0xBD,
+ 0xBD, 0x78, 0x71, 0x3E, 0x4F, 0xF7, 0x3E, 0xBF, 0x1C, 0x5B, 0x68, 0xBF,
+ 0x0F, 0x9E, 0xDB, 0x3E, 0xD7, 0xED, 0xEA, 0x3C, 0x56, 0x2C, 0x16, 0xBE,
+ 0x91, 0x92, 0xB2, 0x3E, 0x33, 0xDD, 0x3F, 0x3F, 0x91, 0x6E, 0x23, 0x3F,
+ 0x3F, 0xDD, 0x0D, 0x3E, 0x84, 0x6E, 0x8C, 0xBF, 0x65, 0x57, 0x73, 0xBD,
+ 0xD9, 0x60, 0xAC, 0xBF, 0x90, 0x95, 0xC3, 0x3D, 0x1E, 0x95, 0x0F, 0x3F,
+ 0xB1, 0x23, 0x35, 0x3F, 0xA6, 0xD9, 0x8F, 0xBE, 0x28, 0xAD, 0xDA, 0xBE,
+ 0xB7, 0xCA, 0xBC, 0xBE, 0xF5, 0x4F, 0xFB, 0x3E, 0x0E, 0x62, 0x49, 0xBF,
+ 0x9B, 0x4E, 0x2A, 0xBD, 0x60, 0xB0, 0xA0, 0xBD, 0xDF, 0xD8, 0x0A, 0x3D,
+ 0x03, 0x8F, 0x91, 0x3B, 0x9A, 0xC2, 0x2A, 0x3C, 0xFD, 0x8B, 0xF5, 0xBB,
+ 0x2E, 0x5E, 0x13, 0x3D, 0x8D, 0x68, 0x53, 0xBD, 0x22, 0x5A, 0x9A, 0x3C,
+ 0x48, 0xEF, 0xAE, 0x3B, 0x07, 0xB3, 0xA9, 0xBD, 0x18, 0x78, 0xB7, 0xBC,
+ 0x93, 0xDE, 0x27, 0xBC, 0x24, 0x68, 0xBD, 0x3D, 0x31, 0xBB, 0xDD, 0x3C,
+ 0x5A, 0xB7, 0x52, 0x3B, 0x9E, 0x3A, 0x28, 0xBD, 0x70, 0x7E, 0xF8, 0x3C,
+ 0xB0, 0xFB, 0x9E, 0x3B, 0xD2, 0x55, 0x67, 0xBC, 0xB6, 0x76, 0x20, 0x3D,
+ 0xB4, 0x24, 0x2A, 0xBC, 0x17, 0x84, 0xF7, 0x3D, 0x35, 0x66, 0x6C, 0xBD,
+ 0xC1, 0x96, 0x88, 0xBC, 0x93, 0x2F, 0xEA, 0x3C, 0xCD, 0x27, 0x5E, 0x3C,
+ 0xC8, 0x97, 0x93, 0xBD, 0xFE, 0xE0, 0x32, 0xBC, 0xEB, 0x4A, 0x17, 0xBE,
+ 0x98, 0x6F, 0x07, 0x3D, 0x6C, 0xA5, 0x89, 0x3D, 0x0A, 0xB7, 0x72, 0x3D,
+ 0x5F, 0x04, 0x9D, 0x3D, 0x2E, 0x6E, 0x02, 0x3D, 0x75, 0x37, 0xD1, 0xBE,
+ 0xF2, 0xA6, 0x1A, 0x3E, 0x35, 0x3F, 0x07, 0xBD, 0xB8, 0x32, 0x81, 0x3D,
+ 0x9A, 0xB2, 0x26, 0x3E, 0xD3, 0x7B, 0x48, 0x3B, 0x0A, 0x96, 0x69, 0xBE,
+ 0x1E, 0x58, 0xF3, 0x3D, 0x62, 0x40, 0x72, 0xBC, 0x5C, 0x28, 0x3B, 0x3C,
+ 0xD9, 0x0F, 0x51, 0x3E, 0x43, 0xDF, 0x83, 0x3E, 0x7B, 0x2E, 0x12, 0x3D,
+ 0x1B, 0x0E, 0x2D, 0xBE, 0x8F, 0x94, 0x65, 0xBB, 0x85, 0x35, 0xA3, 0x3D,
+ 0x1A, 0xAF, 0x01, 0x3F, 0x26, 0xF5, 0x7D, 0x3C, 0x50, 0x09, 0x02, 0xBD,
+ 0x5F, 0xD5, 0xE2, 0x3E, 0x1D, 0x72, 0x41, 0x3C, 0x83, 0x99, 0xA2, 0x3F,
+ 0xCC, 0xC1, 0x10, 0x3D, 0x74, 0xF0, 0xF6, 0x3D, 0x1E, 0x98, 0x20, 0xBE,
+ 0x9F, 0xD7, 0x34, 0x3D, 0xB1, 0x07, 0x01, 0x3F, 0xC8, 0x9B, 0xB2, 0x3D,
+ 0x70, 0x84, 0xC4, 0xBD, 0x96, 0x19, 0x1A, 0x3F, 0x62, 0x6E, 0x3A, 0xBF,
+ 0xD5, 0xBF, 0x0A, 0xBF, 0x85, 0xB4, 0x4B, 0xBE, 0x53, 0x24, 0x26, 0xBF,
+ 0x27, 0xE7, 0x5C, 0x3D, 0xC2, 0x55, 0x66, 0x3E, 0x2C, 0xCB, 0xC0, 0xBC,
+ 0x2C, 0xB8, 0x1E, 0x3F, 0x11, 0xBE, 0x9B, 0xBE, 0x61, 0x7C, 0x62, 0x3F,
+ 0x34, 0xC9, 0x93, 0xBE, 0xE8, 0x23, 0x54, 0x3D, 0x49, 0x9C, 0x20, 0xBF,
+ 0xC2, 0xD0, 0xFC, 0xBE, 0x6D, 0x53, 0xEB, 0xBE, 0x29, 0xBE, 0x9F, 0x3E,
+ 0xBA, 0xA2, 0x4C, 0xBE, 0xD0, 0x4B, 0x59, 0x3F, 0x2C, 0xF7, 0xBE, 0x3C,
+ 0x4D, 0xC4, 0x32, 0x3F, 0xBE, 0x75, 0x9C, 0x3D, 0x07, 0x75, 0xFE, 0xBC,
+ 0x41, 0xF4, 0x77, 0x3E, 0xCC, 0xB6, 0xF5, 0xBD, 0xEF, 0xC6, 0x35, 0x3D,
+ 0x6D, 0xA1, 0xEC, 0xBE, 0xAF, 0x71, 0x22, 0x3E, 0xC5, 0xDF, 0x20, 0xBF,
+ 0x49, 0x01, 0x7D, 0xBD, 0x05, 0x99, 0xD6, 0x3E, 0x90, 0xC7, 0xF7, 0x3E,
+ 0x68, 0x5E, 0x47, 0xBD, 0x1C, 0xC6, 0x48, 0xBD, 0xA3, 0x7B, 0xB6, 0x3C,
+ 0xBE, 0x7F, 0xE4, 0x3D, 0x94, 0x2E, 0x5F, 0x3C, 0x0F, 0xAC, 0xD6, 0xBB,
+ 0x75, 0xED, 0xE1, 0x3C, 0x11, 0x65, 0x67, 0xBD, 0x2A, 0x29, 0x2B, 0xBE,
+ 0x7D, 0x66, 0x18, 0xBD, 0x13, 0xD9, 0xB7, 0xBD, 0xBE, 0x64, 0x05, 0xBC,
+ 0x89, 0x97, 0x7B, 0xBD, 0x17, 0x0F, 0x15, 0x3E, 0x3C, 0x74, 0x48, 0x3D,
+ 0x0F, 0xC7, 0x03, 0xBD, 0x89, 0x22, 0xDF, 0xBC, 0xD1, 0xD3, 0x22, 0x3C,
+ 0x74, 0xD9, 0xAB, 0xBC, 0x4C, 0x35, 0x00, 0x3C, 0xBB, 0x8D, 0x67, 0x3D,
+ 0xD8, 0xCA, 0xC7, 0x3C, 0xA2, 0xD9, 0x80, 0x3D, 0x52, 0x1B, 0x5F, 0x3D,
+ 0x20, 0x5A, 0x47, 0x3E, 0xEC, 0x0B, 0x04, 0x3E, 0x65, 0x2A, 0x41, 0x3B,
+ 0x08, 0x81, 0x97, 0xBD, 0x86, 0x30, 0x8C, 0x3D, 0x96, 0x16, 0xCC, 0x3E,
+ 0x51, 0xB0, 0x18, 0x3E, 0xB8, 0xA6, 0x64, 0x3D, 0xB0, 0xCB, 0xBD, 0x3C,
+ 0x13, 0x42, 0x7B, 0x3C, 0x3B, 0x72, 0x14, 0x3C, 0x79, 0xC0, 0xCD, 0xBD,
+ 0x4A, 0x99, 0xB7, 0xBC, 0xA4, 0xFA, 0xA5, 0xBC, 0xA7, 0x9F, 0xAB, 0xBB,
+ 0xD3, 0xA9, 0x2C, 0x3D, 0x51, 0x3F, 0x3B, 0x3D, 0xDA, 0xE5, 0x8A, 0x3D,
+ 0x86, 0x9D, 0x65, 0xBD, 0xAB, 0x8B, 0x06, 0xBD, 0x22, 0xB9, 0x86, 0x3D,
+ 0x95, 0x32, 0x30, 0xBD, 0x0C, 0x41, 0x02, 0x3D, 0xF2, 0xAE, 0xDA, 0x3C,
+ 0x9A, 0x79, 0xFE, 0x3C, 0x1F, 0x4B, 0xB4, 0x3C, 0x60, 0x25, 0x62, 0xBD,
+ 0xB0, 0x19, 0xED, 0xBC, 0xA9, 0xD4, 0xE5, 0xBC, 0x6D, 0xCC, 0x87, 0x3D,
+ 0x3B, 0x0E, 0x95, 0x3D, 0x2E, 0x54, 0xF7, 0xBD, 0x14, 0x38, 0x7F, 0xBD,
+ 0x73, 0xA6, 0xBB, 0xBD, 0xAD, 0x07, 0x07, 0x3D, 0xA5, 0x26, 0x16, 0xBD,
+ 0xE4, 0xDF, 0x9D, 0x3C, 0xD5, 0x65, 0x8B, 0xBE, 0xD8, 0x4C, 0xA9, 0xBD,
+ 0xA1, 0xB0, 0x19, 0xBD, 0x53, 0x0E, 0x41, 0xBC, 0x20, 0xF7, 0x43, 0xBE,
+ 0x95, 0x0E, 0xBA, 0x3E, 0xC5, 0x73, 0x83, 0xBC, 0x1B, 0x4B, 0xBC, 0xBC,
+ 0x7F, 0xF2, 0xB1, 0x3E, 0x47, 0x0B, 0xC5, 0xBD, 0xE0, 0x79, 0x62, 0xBE,
+ 0x42, 0xD7, 0x19, 0xBD, 0x8D, 0xCD, 0x30, 0xBE, 0x67, 0x0A, 0x4E, 0xBD,
+ 0x05, 0x15, 0x87, 0xBD, 0x28, 0x92, 0xB7, 0x3D, 0xCD, 0x52, 0xD8, 0x3D,
+ 0x05, 0x58, 0xA4, 0xBE, 0xD1, 0x81, 0xAB, 0x3E, 0xC0, 0x23, 0x4D, 0xBE,
+ 0xDD, 0xF4, 0x88, 0xBD, 0x1A, 0x75, 0x90, 0x3E, 0x61, 0x50, 0xB5, 0xBE,
+ 0x5B, 0x03, 0xC3, 0x3C, 0x5A, 0xA8, 0xE0, 0xBD, 0xC3, 0x17, 0xBC, 0x3E,
+ 0x07, 0xD0, 0x3C, 0xBE, 0x73, 0x3A, 0x8F, 0xBE, 0x86, 0xE7, 0x8D, 0x3D,
+ 0xD0, 0xD7, 0x0B, 0x3E, 0x2A, 0x8F, 0x15, 0x3E, 0x63, 0x7A, 0xBB, 0xBD,
+ 0x2C, 0x35, 0xEE, 0x3E, 0x8C, 0x2F, 0xEE, 0x3C, 0xC4, 0xDF, 0xDA, 0xBD,
+ 0xCA, 0x67, 0xE0, 0x3D, 0x4D, 0x2A, 0x57, 0xBF, 0x4C, 0xE3, 0xE0, 0xBE,
+ 0xFD, 0xB8, 0x27, 0xBE, 0xF4, 0x62, 0x3E, 0xBE, 0xF5, 0x3C, 0xA9, 0xBD,
+ 0x4F, 0xB3, 0x64, 0xBF, 0x58, 0xA1, 0x0C, 0xBF, 0x5E, 0xA0, 0xC2, 0xBE,
+ 0x89, 0x7B, 0x07, 0xBE, 0x77, 0x10, 0x80, 0x3E, 0x8E, 0x19, 0x82, 0x3C,
+ 0x53, 0x64, 0xD8, 0x3E, 0x85, 0xB0, 0x54, 0xBF, 0xF2, 0xF7, 0x95, 0x3F,
+ 0x84, 0xA9, 0x75, 0xBF, 0x05, 0x02, 0xB3, 0xBE, 0xED, 0x4A, 0xEE, 0xBC,
+ 0x83, 0xFB, 0x04, 0xBF, 0x8F, 0xC6, 0x83, 0xBD, 0xC7, 0x9E, 0x36, 0xBD,
+ 0xEE, 0x5A, 0x32, 0x3E, 0x9E, 0x08, 0x25, 0x3F, 0xC4, 0xE3, 0x85, 0x3E,
+ 0x41, 0x9C, 0x02, 0x3F, 0xEB, 0xBB, 0xC6, 0xBE, 0xAA, 0x6C, 0x32, 0xBF,
+ 0xA9, 0x7B, 0x9C, 0x3E, 0x2A, 0x67, 0x9F, 0xBD, 0x9B, 0x92, 0x8E, 0xBD,
+ 0xE5, 0x01, 0x85, 0xBE, 0x4C, 0x72, 0xFB, 0xBE, 0xFD, 0x01, 0x0E, 0xBF,
+ 0x85, 0xFC, 0xB4, 0x3E, 0xC5, 0x57, 0x49, 0x3F, 0xE1, 0x28, 0x97, 0xBE,
+ 0x07, 0x4E, 0x7F, 0x3D, 0xBA, 0xF8, 0x9C, 0xBD, 0x22, 0xB7, 0xE0, 0x3C,
+ 0xF4, 0x1C, 0x53, 0xBC, 0x18, 0xA6, 0x42, 0x3D, 0x18, 0x3E, 0x74, 0x3E,
+ 0xEB, 0xFC, 0x48, 0x3E, 0x51, 0x1C, 0xCC, 0xBC, 0x63, 0xFF, 0x85, 0xBE,
+ 0xB6, 0xAE, 0x8E, 0x3E, 0x80, 0x10, 0xF1, 0x3D, 0x26, 0x20, 0xA1, 0xBA,
+ 0xA9, 0x3A, 0x10, 0xBF, 0x79, 0xCC, 0x35, 0xB9, 0xB8, 0xD5, 0x10, 0xBF,
+ 0xEF, 0xCD, 0xB8, 0xBD, 0xB9, 0x9B, 0xCD, 0x3C, 0x56, 0x28, 0x8B, 0xBD,
+ 0xBA, 0x2D, 0x03, 0xBE, 0xB8, 0x96, 0x47, 0xBF, 0x38, 0x5A, 0xB1, 0xBD,
+ 0x6A, 0x95, 0x02, 0xBE, 0x2B, 0x47, 0x06, 0xBE, 0x61, 0x12, 0x21, 0x3F,
+ 0xAC, 0xD0, 0xE1, 0x3D, 0xD3, 0x31, 0x11, 0xBF, 0xB5, 0xC4, 0x19, 0x3F,
+ 0x71, 0x86, 0x90, 0xBC, 0xE4, 0xD4, 0xC7, 0x3E, 0x4F, 0x7D, 0x45, 0x3A,
+ 0x72, 0x0A, 0xF2, 0xBD, 0xB1, 0x95, 0x82, 0x3D, 0x50, 0x33, 0x29, 0xBE,
+ 0x9C, 0xCC, 0x12, 0xBD, 0xBE, 0x8D, 0xFB, 0xBD, 0x8B, 0xAA, 0xDB, 0xBE,
+ 0x42, 0x07, 0x7E, 0x3E, 0x38, 0x86, 0x07, 0x3E, 0x18, 0xCF, 0x33, 0xBE,
+ 0xB5, 0x68, 0x47, 0xBB, 0x01, 0x57, 0x09, 0x3E, 0x3C, 0xAC, 0x12, 0xBE,
+ 0x29, 0xDF, 0x4A, 0xBE, 0x87, 0xA3, 0x0E, 0x3E, 0xC2, 0xE2, 0x96, 0xBE,
+ 0x37, 0xB0, 0xF2, 0xBB, 0x90, 0x14, 0xAA, 0x3D, 0x4B, 0x7A, 0x66, 0xBE,
+ 0xCE, 0x2D, 0xB4, 0xBB, 0x15, 0xFF, 0xC2, 0x3E, 0x81, 0x91, 0x5F, 0xBE,
+ 0xF7, 0x0D, 0x29, 0x3F, 0x6D, 0x18, 0x78, 0x3E, 0xCC, 0xA1, 0xC4, 0xBD,
+ 0x49, 0x92, 0x78, 0xBF, 0xC7, 0x17, 0x6F, 0xBD, 0x47, 0x54, 0x77, 0x3D,
+ 0x00, 0xD1, 0x92, 0xBF, 0xA5, 0x87, 0x17, 0xBE, 0x13, 0x1D, 0xDE, 0x3B,
+ 0xAB, 0x3F, 0x90, 0x3B, 0xC9, 0xF3, 0x0E, 0xBD, 0x1E, 0xE0, 0x1E, 0xBE,
+ 0xCA, 0x90, 0x50, 0xBE, 0x96, 0xA6, 0x52, 0xBC, 0xA2, 0x5F, 0xF1, 0x3D,
+ 0xC3, 0x05, 0x0E, 0xBE, 0x25, 0x43, 0xB2, 0x3C, 0x42, 0xF8, 0xF2, 0x3D,
+ 0x06, 0x6A, 0xEC, 0xBD, 0xE0, 0xE7, 0xB7, 0x3C, 0x57, 0x50, 0x9C, 0xBD,
+ 0xB5, 0xB9, 0x7D, 0x3C, 0x83, 0x18, 0x5B, 0x3E, 0xC8, 0x9E, 0x53, 0x3D,
+ 0x03, 0x96, 0xE8, 0xBC, 0xE3, 0x7D, 0x71, 0xBC, 0x62, 0x17, 0xE4, 0x3C,
+ 0x3E, 0x86, 0x3B, 0xBD, 0x21, 0xED, 0x3E, 0xBE, 0xA2, 0xD1, 0x2C, 0x3C,
+ 0x0D, 0x19, 0x1E, 0xBD, 0x4A, 0x7D, 0xE2, 0xBD, 0xF0, 0x58, 0xE2, 0xBB,
+ 0x5A, 0x55, 0x97, 0xBE, 0x2E, 0xF7, 0x8F, 0xBC, 0x43, 0x49, 0x7A, 0x3C,
+ 0x3A, 0xF6, 0xFB, 0x3C, 0xE7, 0x8F, 0x47, 0x3D, 0x65, 0xB8, 0x3E, 0x3B,
+ 0xEB, 0xB6, 0x9B, 0x3C, 0x9F, 0xD2, 0x48, 0x3E, 0x05, 0xA0, 0x89, 0xBE,
+ 0xF8, 0xBA, 0x03, 0xBE, 0xF8, 0x8A, 0x5D, 0x3E, 0xBC, 0xDE, 0x56, 0x3E,
+ 0x1C, 0x3E, 0xB4, 0x3E, 0xE2, 0x0A, 0xCA, 0xBE, 0xEA, 0x10, 0x10, 0x3F,
+ 0x90, 0x8A, 0xB0, 0xBD, 0x48, 0x71, 0xC2, 0x3E, 0xDF, 0x5F, 0x8C, 0xBD,
+ 0x17, 0x3D, 0xC7, 0xBD, 0x51, 0x1D, 0x37, 0x3E, 0xBF, 0x12, 0xB4, 0xBE,
+ 0x8E, 0x0A, 0xB6, 0x3F, 0x92, 0x45, 0xD1, 0x3C, 0xF5, 0xDA, 0x74, 0xBE,
+ 0x82, 0x27, 0x39, 0xBD, 0x22, 0x93, 0x9B, 0x3D, 0x38, 0xB1, 0x9C, 0x3D,
+ 0x5E, 0x90, 0x72, 0xBE, 0x80, 0x0E, 0x89, 0x3E, 0x52, 0x74, 0x24, 0x3E,
+ 0xC5, 0xC0, 0x72, 0xBF, 0x1E, 0x6F, 0x71, 0x3F, 0x7A, 0xC1, 0x16, 0xBD,
+ 0x6B, 0x50, 0xE8, 0xBE, 0x2D, 0x82, 0x66, 0xBE, 0x59, 0xA9, 0xBE, 0x3D,
+ 0x61, 0x0A, 0xC9, 0x3E, 0x81, 0xB4, 0x6F, 0xBE, 0xD4, 0x75, 0x2A, 0x3F,
+ 0x7E, 0xF2, 0xAD, 0x3E, 0x80, 0x43, 0x25, 0xBE, 0x9D, 0xBB, 0x6E, 0xBE,
+ 0x55, 0x44, 0xFE, 0x3E, 0x76, 0x9B, 0xB4, 0xBE, 0x83, 0xC1, 0xFF, 0x3D,
+ 0x39, 0x74, 0xA6, 0xBC, 0x13, 0x90, 0x1D, 0xBE, 0xAE, 0x4B, 0x23, 0x3E,
+ 0x6D, 0x6F, 0xB5, 0x3D, 0x0F, 0xF3, 0xEC, 0xBE, 0xBC, 0x8E, 0xF2, 0x3D,
+ 0x0F, 0x9F, 0x35, 0x3D, 0x0F, 0x33, 0xDC, 0xBE, 0x03, 0xF1, 0xD3, 0xBD,
+ 0x08, 0x79, 0x5D, 0x3E, 0xBC, 0x40, 0x38, 0xBE, 0x12, 0x89, 0xB1, 0xBC,
+ 0xEF, 0xEE, 0x77, 0x3A, 0xB9, 0x26, 0xB4, 0x3D, 0x8C, 0x59, 0xB0, 0x3E,
+ 0x20, 0x9E, 0x9A, 0xBC, 0x49, 0x13, 0xAE, 0xBE, 0x2D, 0x4A, 0xE3, 0x3E,
+ 0x20, 0xD3, 0x42, 0xBD, 0x3A, 0x47, 0x8E, 0x3F, 0x76, 0x33, 0x2E, 0xBD,
+ 0x89, 0xFC, 0xD0, 0x3E, 0xB8, 0x31, 0xCB, 0xBE, 0x40, 0xB4, 0x4E, 0x3C,
+ 0xA2, 0x51, 0x17, 0xBF, 0x9E, 0x6B, 0x09, 0xBF, 0x63, 0xE2, 0x90, 0x3D,
+ 0xE7, 0xE6, 0x96, 0xBD, 0x93, 0x7D, 0x72, 0x3C, 0xD5, 0xC6, 0xF1, 0xBE,
+ 0xD0, 0x6D, 0xD6, 0x3D, 0x44, 0x65, 0x81, 0xBD, 0x63, 0xEA, 0x19, 0x3E,
+ 0x20, 0x72, 0xA9, 0x3D, 0xDE, 0xCA, 0xEF, 0x3E, 0x64, 0x94, 0x97, 0x3C,
+ 0xB4, 0xDA, 0xA8, 0x3E, 0xA8, 0x51, 0xBC, 0x3D, 0x93, 0x44, 0x70, 0xBC,
+ 0xC7, 0x96, 0x5F, 0x3E, 0x7C, 0x6E, 0x2B, 0xBE, 0xFE, 0x11, 0x9B, 0xBD,
+ 0x1A, 0x78, 0xD1, 0x3D, 0x42, 0x21, 0x31, 0x3F, 0xD9, 0xE1, 0x66, 0x3C,
+ 0x8D, 0x30, 0x18, 0xBE, 0x8C, 0x72, 0x41, 0xBF, 0x67, 0xEC, 0x22, 0x3C,
+ 0xB6, 0x04, 0x4E, 0xBD, 0x69, 0x01, 0x63, 0xBE, 0xFD, 0x2B, 0xFF, 0xBD,
+ 0xDB, 0x1E, 0xBB, 0xBF, 0x2F, 0x4B, 0x05, 0x3D, 0x6D, 0x6E, 0xE3, 0x3E,
+ 0x54, 0xED, 0xD8, 0xBD, 0x30, 0x73, 0x06, 0xBE, 0x85, 0x9E, 0x13, 0xBF,
+ 0x79, 0x9C, 0xBF, 0x3D, 0x01, 0x26, 0xFE, 0x3D, 0xBE, 0x4C, 0x53, 0x3D,
+ 0x37, 0x62, 0x9A, 0x3D, 0x95, 0x32, 0x04, 0x3F, 0xBC, 0x80, 0x3E, 0xBE,
+ 0x94, 0xDF, 0xB8, 0x3D, 0x0E, 0x31, 0xD9, 0x3C, 0x75, 0x4A, 0xA6, 0x3C,
+ 0x11, 0xA5, 0x1C, 0xBE, 0x77, 0xFC, 0x9A, 0xBD, 0x5F, 0x10, 0x15, 0xBD,
+ 0x8F, 0xE7, 0x9D, 0x3B, 0xA0, 0xF4, 0x3D, 0xBC, 0x6E, 0xDB, 0x0E, 0xBB,
+ 0x67, 0x6B, 0x48, 0x3C, 0x7E, 0xCE, 0x80, 0xBD, 0x80, 0xC0, 0x33, 0xBD,
+ 0xAB, 0x3B, 0x66, 0xBE, 0xB4, 0x55, 0x0F, 0xBC, 0xD6, 0x0D, 0x04, 0x3C,
+ 0x37, 0x9E, 0x52, 0x3E, 0x4F, 0x17, 0xA7, 0x3C, 0x4B, 0xDC, 0x26, 0xBD,
+ 0x9A, 0xF7, 0xCF, 0x3E, 0xD3, 0xEC, 0x03, 0xBE, 0xA0, 0xC0, 0x9E, 0x3C,
+ 0x7E, 0x7C, 0x00, 0x3E, 0x19, 0x6F, 0xE2, 0x3D, 0x89, 0x69, 0x9C, 0xBC,
+ 0x04, 0xC6, 0xF5, 0x3C, 0x1B, 0xCD, 0xA0, 0xBE, 0xDB, 0xEB, 0xA1, 0xBE,
+ 0x03, 0x6B, 0x70, 0xBD, 0x12, 0xC2, 0xD1, 0xBE, 0x18, 0xEC, 0xF2, 0xBE,
+ 0xE6, 0x53, 0x78, 0x3F, 0x95, 0x8F, 0x5D, 0xBF, 0x11, 0xF6, 0x09, 0x3E,
+ 0x6D, 0x75, 0xA5, 0x3C, 0x37, 0xBE, 0x85, 0x3E, 0xFD, 0x0F, 0xA1, 0x3E,
+ 0xE6, 0xF8, 0x70, 0x3E, 0x59, 0xF8, 0x09, 0x3E, 0xBA, 0x5C, 0xCC, 0xBE,
+ 0x77, 0x20, 0x1D, 0x3E, 0x57, 0xEB, 0xD5, 0xBE, 0x17, 0x02, 0x7E, 0x3F,
+ 0xD6, 0x89, 0xA8, 0xBE, 0x00, 0x34, 0x67, 0x3E, 0xAD, 0x6D, 0xD0, 0xBE,
+ 0x90, 0x92, 0xFE, 0x3B, 0x22, 0x67, 0xB9, 0xBE, 0xC5, 0x55, 0x36, 0xBF,
+ 0xA5, 0xB1, 0xB6, 0xBD, 0xB0, 0x2E, 0xD8, 0x3E, 0xB8, 0x53, 0x14, 0xBE,
+ 0xCC, 0x45, 0xBD, 0xBC, 0x63, 0xB6, 0x29, 0xBF, 0x00, 0x65, 0x3A, 0xBE,
+ 0x7F, 0xCF, 0x0A, 0xBF, 0x76, 0xA1, 0x21, 0xBF, 0x3B, 0x49, 0xD1, 0xBD,
+ 0xAC, 0xA2, 0x3A, 0xBF, 0x15, 0xB7, 0x74, 0x3E, 0x8D, 0x66, 0x0E, 0x3F,
+ 0x1F, 0x46, 0x80, 0x3D, 0xFB, 0x2F, 0x02, 0x3B, 0xE0, 0x28, 0x35, 0xBD,
+ 0xF2, 0xBD, 0xDD, 0xBD, 0x89, 0xC3, 0xBD, 0x3C, 0x74, 0x44, 0x13, 0xBD,
+ 0x30, 0x65, 0x17, 0xBD, 0x94, 0x64, 0xC8, 0xBB, 0x4A, 0xC9, 0x1F, 0xBD,
+ 0xBF, 0xFA, 0x9C, 0xBC, 0x10, 0x52, 0x16, 0xBB, 0xCC, 0xAC, 0x09, 0x3D,
+ 0x8B, 0xE7, 0x0F, 0x3D, 0x78, 0xEF, 0x06, 0xBE, 0x95, 0x6D, 0x09, 0xBD,
+ 0x2D, 0xFA, 0x8D, 0xBA, 0x70, 0x70, 0x5D, 0x3D, 0xF9, 0x5F, 0xA8, 0xBC,
+ 0xEB, 0x80, 0xF1, 0x3B, 0xBE, 0x9A, 0x12, 0xBD, 0xF3, 0x34, 0x29, 0xBD,
+ 0x91, 0x38, 0xE1, 0x3C, 0xFF, 0x02, 0xAB, 0x3D, 0x34, 0xAA, 0x12, 0xBE,
+ 0xEA, 0x23, 0xF2, 0xBD, 0xD6, 0xB0, 0x39, 0xBD, 0x82, 0xA0, 0x19, 0xBD,
+ 0xD0, 0x7A, 0xE6, 0xBB, 0xCD, 0x8F, 0xFE, 0xBC, 0x26, 0x67, 0x17, 0xBF,
+ 0xE1, 0xFD, 0xC3, 0xBD, 0x29, 0x48, 0x8F, 0xBC, 0x86, 0x89, 0x43, 0x3E,
+ 0x0A, 0x18, 0x3F, 0x3C, 0x91, 0x4D, 0x25, 0x3F, 0xCE, 0x47, 0x5F, 0xBF,
+ 0x04, 0x9B, 0x3E, 0x3E, 0x12, 0x1A, 0x18, 0x3E, 0x96, 0x93, 0xBB, 0xBD,
+ 0x92, 0xA9, 0xAF, 0x3D, 0x34, 0x75, 0x10, 0xBD, 0x3C, 0x9D, 0x24, 0xBF,
+ 0xB1, 0xAD, 0x16, 0x3C, 0x1B, 0x95, 0xB0, 0x3C, 0x21, 0x86, 0x21, 0xBD,
+ 0xBD, 0xB0, 0xF3, 0x3B, 0x7F, 0x96, 0x27, 0xBE, 0x05, 0xFF, 0x13, 0x3E,
+ 0x87, 0xDE, 0x54, 0xBD, 0x92, 0x91, 0x96, 0x3C, 0xB3, 0x05, 0x62, 0xBE,
+ 0xEF, 0xF9, 0x65, 0x3F, 0x15, 0x3E, 0xCC, 0xBD, 0xA0, 0xD7, 0xAE, 0x3D,
+ 0x2D, 0xB5, 0xFA, 0x3E, 0xDD, 0x8B, 0x17, 0xBF, 0x7D, 0xD5, 0x4D, 0x3C,
+ 0xF5, 0x97, 0xA4, 0x3E, 0x7B, 0xF7, 0xE7, 0x3C, 0xDF, 0x39, 0x43, 0xBF,
+ 0x4D, 0xDD, 0x8F, 0x3C, 0x74, 0xF4, 0x34, 0xBE, 0xD4, 0x4B, 0x9B, 0xBF,
+ 0x12, 0x78, 0xFF, 0x3C, 0x0A, 0x1D, 0x52, 0x3D, 0x89, 0xE5, 0xF3, 0x3C,
+ 0x89, 0x4B, 0xEB, 0x3A, 0x87, 0x01, 0x4E, 0x3D, 0xD0, 0xB0, 0x18, 0xBC,
+ 0xB2, 0xAF, 0xB2, 0xBC, 0xD3, 0xE8, 0xD6, 0xBB, 0x2D, 0x39, 0x43, 0xBD,
+ 0xDB, 0x41, 0x9B, 0xBC, 0xA6, 0x6B, 0xD4, 0xBA, 0xA5, 0x2B, 0xEA, 0x3D,
+ 0x9B, 0x25, 0x8C, 0xBC, 0x93, 0xB0, 0xC4, 0x3A, 0x52, 0xB3, 0xAC, 0xBD,
+ 0x0D, 0x9E, 0xA6, 0xBD, 0x59, 0x27, 0xE0, 0x3C, 0xDA, 0x90, 0xCF, 0xBC,
+ 0xC9, 0x7E, 0x03, 0x3C, 0xDD, 0x1C, 0xAA, 0x3D, 0x57, 0xC0, 0xAC, 0x3D,
+ 0x4B, 0x7B, 0xE7, 0xBC, 0x3B, 0xC8, 0x7F, 0xBD, 0x0C, 0xF8, 0xCD, 0xBD,
+ 0x4D, 0x91, 0x07, 0xBD, 0xBD, 0x47, 0xE5, 0xBC, 0x43, 0xEA, 0x40, 0xBB,
+ 0x1E, 0x61, 0x15, 0xBC, 0x22, 0x81, 0x81, 0x3D, 0x8E, 0xAF, 0x02, 0x3D,
+ 0x57, 0x95, 0x1C, 0x3E, 0xB2, 0x15, 0x28, 0xBD, 0x7D, 0x14, 0x39, 0xBD,
+ 0xDC, 0xDE, 0x09, 0xBF, 0xEE, 0xF9, 0x73, 0xBE, 0xE8, 0x47, 0xFE, 0xBE,
+ 0x6D, 0xA0, 0x80, 0x3E, 0x4F, 0x29, 0x1F, 0xBD, 0x84, 0xC6, 0x0D, 0x3D,
+ 0xC4, 0x62, 0x00, 0x3E, 0xE1, 0xC9, 0xA1, 0x3D, 0xBE, 0x7B, 0x46, 0x3D,
+ 0xB3, 0xF9, 0x8A, 0x3F, 0xC1, 0xED, 0x80, 0xBE, 0xBC, 0x1E, 0x35, 0xBC,
+ 0xB7, 0x3E, 0x81, 0x3E, 0x9D, 0xCD, 0x31, 0x3E, 0x10, 0x50, 0x63, 0x3F,
+ 0xA6, 0xDB, 0xB2, 0xBE, 0xF5, 0xA0, 0x3B, 0xBF, 0x6B, 0x6B, 0x67, 0xBB,
+ 0x20, 0xE2, 0x08, 0x3E, 0xF0, 0x69, 0x5D, 0x3E, 0xEF, 0xFC, 0xCD, 0x3D,
+ 0x97, 0xE3, 0x67, 0xBE, 0x57, 0x9C, 0xEB, 0x3D, 0xEF, 0x25, 0x42, 0xBD,
+ 0xCB, 0x4E, 0x0D, 0xBF, 0x59, 0xBA, 0x2A, 0xBE, 0x6F, 0x9F, 0x89, 0xBD,
+ 0x2A, 0xB3, 0x1D, 0x3F, 0xEB, 0x97, 0x10, 0x3D, 0x2B, 0x03, 0x04, 0x3F,
+ 0x9A, 0x16, 0x99, 0x3F, 0xDC, 0xFD, 0x94, 0xBE, 0x93, 0x7E, 0x4F, 0x3E,
+ 0xF2, 0x1A, 0x6B, 0x3D, 0x39, 0x35, 0x4E, 0x3D, 0xB3, 0x29, 0x47, 0x3E,
+ 0xEE, 0x91, 0xED, 0xBC, 0x88, 0x33, 0xB7, 0x3D, 0xD2, 0x57, 0x6D, 0x3F,
+ 0x48, 0xBF, 0x90, 0xBD, 0x9B, 0x72, 0x90, 0x3D, 0xBB, 0x70, 0xB9, 0xBE,
+ 0x51, 0x3D, 0x1F, 0x3E, 0xFC, 0xC3, 0x94, 0x3A, 0x2C, 0xBD, 0x78, 0xBE,
+ 0x5A, 0x34, 0x3C, 0xBF, 0xB1, 0x32, 0xBF, 0xBE, 0xA2, 0xFF, 0x6C, 0x3D,
+ 0x9C, 0x52, 0x7F, 0xBE, 0x1B, 0x2B, 0x85, 0xBD, 0xFF, 0xF2, 0xE0, 0x3E,
+ 0xED, 0xDC, 0x91, 0x3F, 0xA5, 0xE0, 0xF1, 0x3D, 0x07, 0x31, 0x67, 0x3D,
+ 0x6A, 0xC8, 0xF5, 0x3D, 0xF9, 0x54, 0x28, 0x3F, 0x53, 0xD0, 0xBD, 0x3F,
+ 0x9B, 0x5D, 0x42, 0x3E, 0x73, 0x53, 0xA0, 0x3E, 0x96, 0x14, 0x1B, 0xBF,
+ 0x6C, 0xA3, 0x8B, 0xBE, 0xCA, 0x5B, 0x83, 0xBE, 0xB4, 0xDA, 0x1C, 0xBF,
+ 0xE1, 0x50, 0x89, 0xBE, 0x2A, 0x93, 0x77, 0xBE, 0x2C, 0x12, 0x97, 0xBE,
+ 0xA6, 0x56, 0x43, 0xBE, 0xBD, 0xB9, 0x48, 0xBE, 0x34, 0xA5, 0x46, 0xBE,
+ 0xDB, 0xE2, 0x27, 0xBF, 0x6C, 0x3C, 0x1F, 0xBF, 0x10, 0x64, 0x7D, 0x3E,
+ 0xB9, 0xB0, 0xD7, 0xBE, 0xD3, 0x7C, 0x26, 0xBD, 0xB4, 0x9E, 0x2B, 0x3E,
+ 0x30, 0x9C, 0x9B, 0x3E, 0xB6, 0xEB, 0x94, 0x3F, 0x67, 0xDF, 0x19, 0x40,
+ 0x90, 0x57, 0xED, 0x3E, 0xD6, 0xF9, 0x27, 0xBF, 0xA0, 0x16, 0x54, 0x3F,
+ 0xC2, 0xEB, 0x92, 0x3E, 0x37, 0x2B, 0xFD, 0x3E, 0x89, 0x5B, 0xAE, 0xBE,
+ 0x6B, 0x17, 0xD7, 0x3D, 0xBA, 0xD1, 0x87, 0x3D, 0xB8, 0x80, 0xB8, 0xBE,
+ 0xE0, 0x65, 0xF4, 0x3E, 0x06, 0xBA, 0x7E, 0xBE, 0x18, 0x37, 0xCF, 0xBE,
+ 0x52, 0x26, 0x88, 0xBD, 0x88, 0x89, 0x37, 0xBE, 0x44, 0xE5, 0x0E, 0x3F,
+ 0x05, 0xCD, 0x87, 0xBB, 0x1C, 0x19, 0x8B, 0xBF, 0xE5, 0x8B, 0xFD, 0x3E,
+ 0x8B, 0x48, 0xFF, 0x3D, 0x51, 0x75, 0x8D, 0x3D, 0x23, 0x7A, 0x9C, 0xBE,
+ 0xDE, 0xB8, 0x97, 0xBE, 0x9A, 0x42, 0xC8, 0xBB, 0xBC, 0x92, 0xB1, 0xBD,
+ 0xAE, 0x98, 0x48, 0xBD, 0x37, 0x1A, 0x8E, 0xBC, 0x4F, 0x7D, 0x98, 0x3E,
+ 0x02, 0x86, 0xC1, 0xBE, 0x3C, 0x20, 0x90, 0x3D, 0xAE, 0x57, 0x7D, 0x3D,
+ 0xE3, 0x4F, 0x3D, 0x3E, 0x44, 0x5E, 0x86, 0x3E, 0xD6, 0xA8, 0xDC, 0x3D,
+ 0xA8, 0x13, 0x83, 0xBE, 0x2F, 0x84, 0x82, 0x3E, 0x66, 0xF8, 0x16, 0x3E,
+ 0x4B, 0x84, 0xDC, 0xBD, 0x0E, 0xAC, 0xD8, 0x3D, 0xD3, 0xEA, 0xB7, 0xBD,
+ 0x2F, 0x07, 0xAF, 0x3D, 0xF5, 0x88, 0xD8, 0xBE, 0xAC, 0x5B, 0x8D, 0x3E,
+ 0xF4, 0x8A, 0x8B, 0x3E, 0x09, 0x5C, 0x7F, 0x3E, 0x74, 0x88, 0xEB, 0xBE,
+ 0xE8, 0xA3, 0x38, 0xBF, 0xAE, 0xEB, 0x0E, 0x3D, 0xBD, 0x30, 0xA8, 0x3E,
+ 0x2D, 0xD5, 0x0B, 0xBE, 0x3A, 0xB2, 0x63, 0x3E, 0xD7, 0x21, 0x73, 0x3F,
+ 0x60, 0x17, 0xF3, 0xBC, 0x4D, 0x36, 0x72, 0xBE, 0xED, 0xA9, 0x9B, 0x3E,
+ 0xE4, 0x5A, 0xF0, 0xBE, 0x74, 0x57, 0x0C, 0x3F, 0x6D, 0xD9, 0xCA, 0x3E,
+ 0xE7, 0x2A, 0x46, 0xBE, 0x40, 0x51, 0x9C, 0x3E, 0x00, 0xB3, 0x4E, 0x3E,
+ 0x4A, 0x8F, 0xD4, 0xBE, 0xE6, 0x5B, 0x1C, 0xBE, 0x4E, 0xA7, 0x83, 0x3E,
+ 0x6A, 0xB5, 0xC1, 0xBF, 0xDA, 0x9A, 0x19, 0x3D, 0x0C, 0x77, 0xFB, 0x3D,
+ 0x1F, 0x40, 0xD3, 0xBD, 0x3C, 0x0E, 0x17, 0xBE, 0x8A, 0x3F, 0x82, 0x3F,
+ 0x9A, 0xA1, 0xBC, 0xBE, 0xDB, 0x5A, 0x91, 0xBC, 0x54, 0x9A, 0xE6, 0xBE,
+ 0x47, 0xC2, 0x39, 0xBF, 0xF5, 0x35, 0x30, 0xBE, 0x44, 0x08, 0x04, 0xBE,
+ 0xDE, 0x55, 0xCA, 0x3E, 0xC1, 0xC3, 0xBB, 0xBC, 0x55, 0x4F, 0x17, 0x3C,
+ 0x7A, 0x8E, 0xF2, 0xBE, 0xDA, 0x0F, 0x29, 0x3F, 0x10, 0xB9, 0x30, 0xBF,
+ 0x27, 0x07, 0x4E, 0xBE, 0x56, 0x0B, 0xC1, 0x3D, 0xB4, 0x45, 0x53, 0xBE,
+ 0xAD, 0x18, 0xE8, 0x3E, 0x45, 0x5E, 0x9A, 0x3F, 0xB3, 0x03, 0x6F, 0x3E,
+ 0x65, 0xEF, 0xC0, 0x3D, 0x9A, 0x47, 0x74, 0x3E, 0xCC, 0x07, 0x81, 0xBE,
+ 0x7C, 0x8C, 0x97, 0x3D, 0x99, 0xCA, 0x3B, 0x3E, 0xF8, 0x75, 0x0E, 0xBF,
+ 0x7A, 0xF2, 0x56, 0x3B, 0x16, 0x9A, 0xFA, 0xBD, 0x26, 0x23, 0xDD, 0xBE,
+ 0x93, 0x79, 0x98, 0xBF, 0x85, 0x65, 0x1D, 0x3D, 0x66, 0xCE, 0xA8, 0x3E,
+ 0x0D, 0x88, 0x38, 0xBC, 0xCB, 0xF7, 0x39, 0xBE, 0xDB, 0x98, 0x6E, 0x3E,
+ 0x69, 0x86, 0xD5, 0xBC, 0xB4, 0xE1, 0xDD, 0xBD, 0xC7, 0xB0, 0xA9, 0x3D,
+ 0xA7, 0x42, 0x84, 0xBE, 0x61, 0xB9, 0x10, 0x3F, 0x5C, 0x3A, 0x92, 0x3E,
+ 0x33, 0xA1, 0xC7, 0x3D, 0xED, 0x7F, 0x90, 0xBF, 0x01, 0xF7, 0x2E, 0x3D,
+ 0x42, 0x1A, 0xE1, 0xBE, 0xCE, 0x07, 0x2B, 0xBF, 0x5E, 0xD6, 0xE1, 0xBD,
+ 0xE9, 0x96, 0xC1, 0xBE, 0x51, 0xD7, 0xB6, 0x3D, 0x5A, 0xDA, 0xD6, 0xBE,
+ 0xCD, 0x4D, 0xDD, 0xBE, 0xDB, 0x1F, 0x50, 0x3E, 0xAC, 0x62, 0xD5, 0xBE,
+ 0x4B, 0x0A, 0x71, 0x3D, 0xA5, 0xBD, 0xA4, 0xBE, 0xDC, 0x68, 0xE6, 0x3C,
+ 0xEE, 0x30, 0xD6, 0xBE, 0xE0, 0x73, 0x06, 0xBF, 0x7B, 0x85, 0xF8, 0xBD,
+ 0x06, 0x0F, 0x86, 0xBE, 0x08, 0x1D, 0x6B, 0x3F, 0x85, 0xCF, 0x6E, 0x3E,
+ 0x1E, 0x9C, 0x06, 0xBE, 0x7C, 0x1E, 0x14, 0xBF, 0xC5, 0x98, 0x7C, 0xBD,
+ 0x51, 0x98, 0xA6, 0xBE, 0x1B, 0x77, 0xBD, 0xBD, 0x3A, 0x6C, 0xAD, 0x3D,
+ 0xA4, 0x96, 0xD5, 0xBE, 0x35, 0x0E, 0xC4, 0x3F, 0x7B, 0x7D, 0xE3, 0xBE,
+ 0x9B, 0x6B, 0x42, 0xBE, 0xD7, 0xB0, 0x3F, 0xBE, 0x86, 0x11, 0x78, 0xBE,
+ 0xF9, 0x01, 0x4D, 0x3F, 0x69, 0x34, 0x85, 0xBE, 0x9B, 0xAE, 0x4E, 0x3F,
+ 0x70, 0x95, 0x81, 0x3E, 0xAF, 0xF2, 0x66, 0xBE, 0xFD, 0x72, 0xD7, 0x3E,
+ 0x42, 0x9A, 0xE8, 0xBE, 0x6F, 0xF9, 0x8F, 0xBF, 0x6F, 0x0E, 0x99, 0x3E,
+ 0x27, 0xCD, 0x01, 0x3E, 0xF7, 0xAB, 0x3F, 0x3E, 0xD6, 0xE4, 0xAB, 0xBE,
+ 0x4C, 0xBB, 0xB6, 0xBF, 0x58, 0xAC, 0x99, 0x3D, 0x05, 0xAC, 0xB7, 0x3E,
+ 0x6A, 0xC2, 0xCE, 0xBC, 0x15, 0x41, 0x8F, 0x3A, 0x87, 0x4E, 0x3A, 0x3C,
+ 0xDE, 0x85, 0x31, 0xBF, 0xD9, 0xCA, 0x33, 0x3F, 0x6B, 0x34, 0x44, 0x3E,
+ 0xCA, 0x83, 0xD2, 0xBE, 0x7C, 0xBE, 0x32, 0xBD, 0x79, 0x01, 0x63, 0xBF,
+ 0x76, 0xC0, 0x8E, 0x3C, 0xCD, 0x54, 0x21, 0x3E, 0x0B, 0x74, 0x1C, 0xBC,
+ 0x76, 0x12, 0x0C, 0x3D, 0xDA, 0x09, 0x84, 0xBE, 0x7B, 0x73, 0x96, 0x3F,
+ 0x5B, 0x8A, 0x5A, 0x3E, 0xCB, 0x5C, 0x87, 0xBB, 0x33, 0x88, 0xB6, 0xBE,
+ 0x3E, 0x8F, 0x30, 0xBE, 0x45, 0xCE, 0xD3, 0xBE, 0x29, 0xAB, 0xC3, 0xBE,
+ 0xB7, 0x68, 0xA3, 0xBD, 0xC2, 0x85, 0x8D, 0x3E, 0x01, 0xA0, 0xA3, 0x3D,
+ 0x02, 0x5F, 0x68, 0x3E, 0x4B, 0xE5, 0x08, 0x3F, 0xF0, 0x19, 0x13, 0xBF,
+ 0xA7, 0x2A, 0x87, 0xBD, 0x8B, 0x9E, 0xEE, 0x3E, 0xFC, 0xCF, 0x12, 0xBE,
+ 0x6C, 0xC9, 0xEE, 0xBE, 0x22, 0xD0, 0x64, 0x3E, 0xB1, 0x41, 0x39, 0xBE,
+ 0x12, 0x6F, 0xC4, 0xBC, 0xF1, 0x52, 0xE4, 0xBD, 0xE0, 0x0C, 0x29, 0x3F,
+ 0x89, 0x05, 0xEC, 0xBE, 0x3B, 0xF4, 0xE4, 0xBD, 0x06, 0x7A, 0xC6, 0x3E,
+ 0x7A, 0xBB, 0x5B, 0x3D, 0xF8, 0x4D, 0xEE, 0x3E, 0x13, 0x89, 0xF4, 0xBE,
+ 0xB9, 0x55, 0x04, 0x3D, 0x17, 0xDB, 0x0D, 0x3E, 0x4E, 0xB8, 0x11, 0xBE,
+ 0x01, 0xAC, 0x84, 0x3D, 0xC6, 0xD0, 0x5A, 0xBF, 0x9A, 0x48, 0xD7, 0xBD,
+ 0x27, 0x58, 0xC7, 0xBE, 0xC3, 0x6C, 0x19, 0x3F, 0xFF, 0xDE, 0xAB, 0x3D,
+ 0x65, 0x37, 0xCD, 0x3E, 0xED, 0x26, 0xED, 0x3E, 0x2F, 0x15, 0x9A, 0x3C,
+ 0x73, 0xC6, 0x0A, 0xBE, 0xC2, 0xB0, 0xEB, 0xBE, 0x6F, 0xE7, 0x17, 0x3F,
+ 0x52, 0xFB, 0xF1, 0xBE, 0xF2, 0x67, 0x11, 0xBE, 0x56, 0x65, 0x10, 0xBF,
+ 0x4B, 0x9F, 0x7F, 0xBE, 0x23, 0x12, 0x6F, 0x3E, 0x9F, 0x95, 0x27, 0xBF,
+ 0x32, 0x36, 0x59, 0x3D, 0x96, 0x77, 0x98, 0xBE, 0xBD, 0x11, 0x15, 0x3E,
+ 0xC4, 0x37, 0x61, 0xBE, 0xA0, 0xF1, 0xE1, 0x3F, 0x66, 0x89, 0x9A, 0xBE,
+ 0x66, 0xD0, 0x08, 0xBE, 0xBE, 0xEC, 0x0C, 0x3E, 0x6A, 0x69, 0x0B, 0x3E,
+ 0x9C, 0xFB, 0x1D, 0xBF, 0x9D, 0x33, 0x02, 0xBF, 0x18, 0xED, 0xC3, 0xBE,
+ 0x58, 0xE0, 0x81, 0xBE, 0x40, 0xDF, 0xAE, 0xBE, 0x6D, 0xDA, 0x3B, 0x3E,
+ 0x40, 0x54, 0x3E, 0xBF, 0x07, 0xB1, 0x3B, 0xBF, 0x2C, 0x49, 0x29, 0x3F,
+ 0xCA, 0x35, 0x50, 0xBF, 0x57, 0xA4, 0x26, 0x3E, 0x17, 0x15, 0x5D, 0xBF,
+ 0xFE, 0x2C, 0x10, 0x3E, 0xF3, 0xDC, 0x36, 0xBF, 0xDF, 0x2D, 0x1E, 0xBE,
+ 0xEE, 0x1D, 0x97, 0x3D, 0x33, 0x16, 0x65, 0xBE, 0xEB, 0x67, 0x9E, 0xBE,
+ 0x0D, 0x35, 0xC9, 0xBD, 0x29, 0x2D, 0xA4, 0x3D, 0x4B, 0x6D, 0xFE, 0xBC,
+ 0x38, 0xD7, 0x16, 0x3E, 0xF7, 0x2E, 0x87, 0xBD, 0x0E, 0xEA, 0x65, 0xBD,
+ 0x1E, 0x0C, 0x9F, 0x3D, 0x5C, 0x6A, 0xCA, 0xBC, 0x99, 0xC8, 0xAE, 0x3D,
+ 0x3F, 0x63, 0x55, 0x3E, 0x49, 0xA4, 0x52, 0xBE, 0x66, 0x20, 0x42, 0x3C,
+ 0xD2, 0x75, 0x0E, 0x3D, 0x31, 0xFB, 0x12, 0xBC, 0x54, 0xE9, 0x0A, 0xBE,
+ 0x93, 0x08, 0xA6, 0xBB, 0xDC, 0x40, 0xAC, 0xBB, 0xAE, 0x71, 0x12, 0xBD,
+ 0xDC, 0x5E, 0x98, 0x3D, 0xF2, 0xC2, 0x86, 0x3D, 0x06, 0xF3, 0x67, 0xBE,
+ 0x5F, 0xE7, 0x2B, 0x3D, 0xA3, 0x00, 0x02, 0xBE, 0x38, 0x0C, 0x84, 0xBD,
+ 0x2E, 0xCD, 0xB4, 0x3C, 0x83, 0x5E, 0x68, 0xBE, 0xE3, 0xA6, 0x0E, 0x3E,
+ 0x78, 0xAD, 0x8A, 0x3D, 0xC1, 0xB2, 0x6A, 0x3D, 0xFB, 0x4C, 0xF9, 0xBD,
+ 0xDE, 0x2A, 0x9D, 0xBC, 0x86, 0x8F, 0x39, 0x3D, 0x7B, 0x94, 0x04, 0xBC,
+ 0x5A, 0x79, 0x11, 0x3B, 0x85, 0xB0, 0x2C, 0xBC, 0xE5, 0x75, 0x2E, 0x3D,
+ 0x92, 0xBA, 0xFE, 0xBD, 0x25, 0x3D, 0x85, 0xBD, 0x63, 0xFF, 0xCC, 0xBC,
+ 0x6B, 0x88, 0x92, 0x3B, 0x85, 0x25, 0xED, 0xBD, 0xAD, 0x3D, 0x32, 0x3E,
+ 0xF9, 0x8F, 0x02, 0xBE, 0x0E, 0xDB, 0x85, 0xBC, 0xDD, 0x45, 0x3D, 0xBD,
+ 0xD8, 0xA6, 0xE7, 0x39, 0xFF, 0x46, 0x90, 0x3D, 0xE0, 0xAD, 0x4C, 0xBD,
+ 0x7C, 0xE4, 0x97, 0xBC, 0x19, 0x0A, 0xC4, 0x3D, 0x1C, 0x91, 0xE2, 0xBB,
+ 0x4F, 0x18, 0xE3, 0x3D, 0x90, 0x7B, 0x95, 0x3D, 0xF9, 0xB4, 0x1B, 0x3D,
+ 0xF0, 0xA5, 0x09, 0xBD, 0x4C, 0xEC, 0x08, 0xBE, 0xF7, 0x1A, 0x89, 0x3D,
+ 0x40, 0x4D, 0xDF, 0xBD, 0xE6, 0xB2, 0x3E, 0x3E, 0x2F, 0xDB, 0x48, 0x3E,
+ 0x11, 0xB7, 0x7E, 0xBF, 0x82, 0xC3, 0x42, 0xBF, 0xA3, 0x62, 0xE1, 0xBE,
+ 0x7A, 0xCE, 0x23, 0xBF, 0x23, 0x6E, 0xB1, 0xBE, 0xD4, 0xE6, 0x0C, 0xBF,
+ 0x8C, 0x72, 0x57, 0xBF, 0xE6, 0x30, 0xAC, 0x3E, 0x76, 0x47, 0xFE, 0xBE,
+ 0xFA, 0x40, 0xCF, 0xBE, 0xC7, 0x39, 0x18, 0xBE, 0xD5, 0x7E, 0xD3, 0x3E,
+ 0xCB, 0x0B, 0x81, 0xBE, 0x22, 0x31, 0x50, 0x40, 0x5C, 0x1D, 0x64, 0x3E,
+ 0xEE, 0x55, 0xB6, 0xBF, 0x2A, 0x2D, 0x3C, 0x3F, 0xCB, 0xE6, 0xA5, 0x3E,
+ 0x81, 0x3F, 0x2E, 0xBF, 0xC2, 0x49, 0xAE, 0x3D, 0x1E, 0x40, 0xA3, 0xBE,
+ 0x31, 0xE2, 0xB0, 0x3E, 0x73, 0xC7, 0xE7, 0xBE, 0x44, 0x28, 0x9D, 0x3E,
+ 0xEE, 0x0C, 0x89, 0xBF, 0x85, 0x29, 0xE6, 0xBE, 0xF1, 0xCF, 0x4B, 0xBF,
+ 0x94, 0x2E, 0x6F, 0xBE, 0x5F, 0xDD, 0x99, 0x3F, 0xDF, 0x94, 0xA5, 0xBE,
+ 0x05, 0xCC, 0x25, 0x3E, 0x78, 0x39, 0x83, 0x3E, 0xDF, 0x0C, 0x3F, 0xBC,
+ 0xED, 0xE3, 0xB6, 0x3C, 0xC9, 0xF3, 0xE2, 0xBC, 0x3A, 0xF2, 0xC0, 0xBC,
+ 0x70, 0x2E, 0x14, 0x3C, 0xFF, 0x16, 0x27, 0xBD, 0x29, 0xD3, 0x24, 0xBD,
+ 0x62, 0x3E, 0x6F, 0xBD, 0x52, 0x83, 0x79, 0x3D, 0x65, 0xE0, 0x92, 0x3D,
+ 0xE1, 0x58, 0x9A, 0xBC, 0xB9, 0xCE, 0x59, 0x3B, 0x21, 0xAB, 0xA3, 0x3D,
+ 0xBB, 0x2D, 0x98, 0x3D, 0xBC, 0xD4, 0x5B, 0x3D, 0x9D, 0x97, 0xAC, 0x3C,
+ 0x6E, 0xA3, 0x85, 0x3C, 0xEA, 0xB6, 0xAC, 0xBB, 0xD6, 0xC6, 0x82, 0xBD,
+ 0x38, 0xFD, 0x4A, 0xBC, 0x49, 0xE0, 0x5D, 0xBB, 0x8B, 0x01, 0x1F, 0xBB,
+ 0xD1, 0xE8, 0xB4, 0x3D, 0x52, 0x39, 0xA3, 0xBD, 0x18, 0x48, 0x04, 0xBE,
+ 0x8A, 0xE0, 0x0F, 0xBC, 0x95, 0x8C, 0x54, 0xBB, 0x4C, 0x68, 0xB2, 0x3C,
+ 0x5D, 0x21, 0x80, 0xBD, 0xE8, 0xF7, 0xD2, 0xBD, 0x78, 0xE1, 0x08, 0xBD,
+ 0xFD, 0x6B, 0xE0, 0x3B, 0xEC, 0x61, 0xA4, 0xBD, 0x71, 0x22, 0x2D, 0x3C,
+ 0x39, 0x3E, 0x2E, 0xBD, 0x18, 0x13, 0x3B, 0x3B, 0xF7, 0x65, 0x4F, 0xBC,
+ 0xD2, 0xDE, 0x5A, 0xBB, 0x97, 0x62, 0x1E, 0x3C, 0x50, 0xC2, 0x38, 0x3C,
+ 0x21, 0x43, 0xBF, 0xBC, 0xCA, 0x66, 0x3E, 0x3C, 0xCE, 0xFA, 0x49, 0xBC,
+ 0xDD, 0xE5, 0xAE, 0x3C, 0x48, 0x2B, 0x22, 0x3D, 0xE4, 0xD5, 0x35, 0xBC,
+ 0x19, 0xED, 0x02, 0x3A, 0xE5, 0x06, 0xAF, 0x3B, 0xCF, 0xC1, 0x04, 0xBB,
+ 0x5D, 0xA0, 0x79, 0xBC, 0x37, 0x02, 0xA6, 0xBD, 0x4E, 0xB1, 0x84, 0x3D,
+ 0x66, 0x99, 0x78, 0x3C, 0x1F, 0x83, 0xCB, 0xBC, 0x83, 0x25, 0x35, 0x3C,
+ 0x91, 0x11, 0x56, 0x3C, 0x62, 0x68, 0x7C, 0x3B, 0xBB, 0x7B, 0x1E, 0xBD,
+ 0x1E, 0x50, 0x0A, 0x3C, 0x9C, 0x29, 0x8E, 0x3B, 0x68, 0x8C, 0x0F, 0xBB,
+ 0x54, 0x56, 0x28, 0x3E, 0x0F, 0x80, 0xAD, 0x3C, 0xD1, 0xC1, 0x26, 0xBD,
+ 0x5B, 0x0F, 0x57, 0x3E, 0x5A, 0xD9, 0x89, 0x3D, 0xFF, 0xBC, 0xC3, 0xBE,
+ 0x1C, 0x80, 0xC1, 0x3B, 0x33, 0x9D, 0x40, 0x3D, 0x4B, 0x0D, 0x6A, 0xBD,
+ 0xD5, 0x59, 0xFE, 0x3D, 0xE2, 0x0B, 0xBD, 0x3D, 0x3B, 0x35, 0x6E, 0x3D,
+ 0x75, 0x06, 0xE1, 0xBD, 0x83, 0xB5, 0x05, 0x3D, 0x53, 0x92, 0x27, 0xBC,
+ 0xD5, 0xC5, 0xB6, 0x3C, 0x02, 0x46, 0xAF, 0xBD, 0xAA, 0x90, 0x1B, 0x3E,
+ 0xD2, 0x42, 0x89, 0x3D, 0x0C, 0x4E, 0xA3, 0x3D, 0xBF, 0xC2, 0x38, 0xBC,
+ 0xFB, 0xDB, 0x44, 0x3E, 0x46, 0x50, 0x24, 0x3E, 0xA7, 0x0A, 0x0F, 0x3D,
+ 0xFC, 0x3C, 0x6E, 0xBD, 0x80, 0x4D, 0xCA, 0x3C, 0x34, 0x88, 0xE0, 0xBC,
+ 0x32, 0xDB, 0x40, 0x3F, 0xCC, 0x09, 0x92, 0xBD, 0x97, 0xAD, 0x59, 0x3E,
+ 0xA5, 0x16, 0x0D, 0xBE, 0x8D, 0xD3, 0x6A, 0xBD, 0xBB, 0xCC, 0x47, 0x3D,
+ 0xEB, 0xF5, 0x05, 0xBE, 0x96, 0x20, 0x8F, 0x3C, 0x04, 0x04, 0x1D, 0x3C,
+ 0x0C, 0x2F, 0x37, 0xBA, 0x73, 0x06, 0xCD, 0xBC, 0xB8, 0xDC, 0x8D, 0x3C,
+ 0xBA, 0xF5, 0x77, 0xBB, 0x15, 0x2A, 0x18, 0xBD, 0x6A, 0x2C, 0xC0, 0xBB,
+ 0xEB, 0x19, 0x09, 0xBD, 0xF7, 0x14, 0x90, 0xBC, 0x7F, 0x47, 0x17, 0x3D,
+ 0x61, 0x48, 0x92, 0x3C, 0xDD, 0x48, 0xDB, 0xBB, 0x5D, 0x8D, 0x1A, 0x3D,
+ 0x53, 0x78, 0x3A, 0x3C, 0x26, 0x1E, 0x25, 0x3C, 0x00, 0xEC, 0x72, 0xBB,
+ 0x9F, 0x67, 0x81, 0xBC, 0x1A, 0x73, 0x42, 0xBA, 0xE3, 0xC5, 0x76, 0xBC,
+ 0xA3, 0x73, 0xBB, 0x3C, 0xB3, 0xD4, 0xAB, 0xBB, 0xF0, 0xA5, 0x75, 0x3B,
+ 0x3A, 0x87, 0xA4, 0x3C, 0x38, 0x8A, 0x16, 0xBD, 0xB2, 0x4D, 0xC8, 0xBC,
+ 0x96, 0x9A, 0xF8, 0xBB, 0x80, 0x70, 0x85, 0xBC, 0xEE, 0xB6, 0xB9, 0xB9,
+ 0xCD, 0x7A, 0x17, 0xBC, 0x9C, 0x36, 0xEE, 0x3D, 0x52, 0x83, 0x64, 0x3C,
+ 0x88, 0xCE, 0xF9, 0xBB, 0x5C, 0x7E, 0x88, 0x3E, 0x46, 0x53, 0x43, 0x3D,
+ 0x52, 0x29, 0xED, 0xBE, 0x4C, 0xF4, 0xAD, 0x3E, 0xEC, 0xBF, 0x7F, 0x3E,
+ 0xB0, 0x63, 0x6A, 0x3E, 0x98, 0x46, 0x73, 0xBE, 0x4A, 0x03, 0x94, 0xBE,
+ 0xA7, 0xA7, 0x29, 0x3E, 0x3B, 0xFE, 0xA1, 0x3E, 0x3D, 0x0B, 0x76, 0x3E,
+ 0x1C, 0x45, 0x9E, 0xBD, 0xA2, 0xCD, 0xAA, 0xBE, 0xBA, 0x9F, 0xD9, 0xBE,
+ 0x5C, 0xFC, 0xA5, 0xBE, 0xA5, 0x1B, 0x21, 0xBD, 0xA1, 0x7A, 0x0F, 0xBE,
+ 0x12, 0x8F, 0x85, 0x3D, 0x93, 0x02, 0x64, 0x3E, 0xFB, 0xA4, 0xBF, 0x3E,
+ 0xB2, 0x0C, 0x0F, 0x3E, 0x87, 0xBE, 0x4D, 0xBE, 0x05, 0xF3, 0xCA, 0x3D,
+ 0x2A, 0xD5, 0x65, 0xBE, 0x63, 0x04, 0x0C, 0xBE, 0xAD, 0xD6, 0x20, 0x3E,
+ 0xA0, 0x8F, 0x99, 0x3F, 0xB7, 0x3D, 0x89, 0xBE, 0x4A, 0x57, 0x40, 0x3E,
+ 0x4C, 0xBE, 0x8E, 0x3E, 0x5E, 0xBA, 0x03, 0xBD, 0xAC, 0x73, 0xC1, 0xBE,
+ 0x20, 0xCA, 0xE2, 0x3D, 0x49, 0x12, 0x9D, 0xBC, 0x46, 0x3E, 0x2A, 0x3E,
+ 0xC1, 0xE6, 0x68, 0xBE, 0xEF, 0xCB, 0x84, 0xBD, 0x31, 0x46, 0x8A, 0xBE,
+ 0xBC, 0xA5, 0xD5, 0xBE, 0x84, 0xE0, 0x8E, 0x3D, 0x76, 0x9A, 0x24, 0xBE,
+ 0x54, 0x9D, 0x0C, 0xBE, 0x51, 0xFA, 0x00, 0xBF, 0xA5, 0x75, 0x53, 0xBD,
+ 0xBF, 0x10, 0x09, 0xBF, 0xF0, 0xA0, 0xCF, 0xBE, 0x9C, 0xF8, 0x4A, 0xBF,
+ 0x26, 0xD6, 0x42, 0xBE, 0xE5, 0xD1, 0x6C, 0x3E, 0xD0, 0x64, 0xFD, 0xBD,
+ 0x66, 0x1B, 0xA7, 0xBC, 0x4C, 0xD8, 0x82, 0x3D, 0x84, 0xE3, 0x13, 0x3E,
+ 0xA0, 0x87, 0x27, 0xBE, 0x77, 0xD5, 0x81, 0x3E, 0xB1, 0x80, 0x88, 0xBE,
+ 0x56, 0x3F, 0x57, 0x3F, 0x81, 0xFD, 0x28, 0x3E, 0xFE, 0x0C, 0xAB, 0x3E,
+ 0x60, 0x0E, 0x85, 0xBF, 0xDC, 0x72, 0x4A, 0xBE, 0x3E, 0x68, 0x34, 0xBD,
+ 0xA0, 0x16, 0xB4, 0x3D, 0x7B, 0x6A, 0x72, 0xBE, 0xB9, 0xA9, 0x2C, 0xBC,
+ 0xD2, 0x88, 0x1D, 0xBD, 0x0B, 0x89, 0x23, 0x3E, 0x73, 0x16, 0x51, 0x3E,
+ 0xAE, 0x33, 0x2C, 0xBC, 0x33, 0x00, 0x90, 0xBD, 0x24, 0xD7, 0x8E, 0xBD,
+ 0xD1, 0x53, 0x4F, 0xBE, 0x0C, 0x8B, 0x8B, 0xBD, 0x91, 0x21, 0xED, 0xBC,
+ 0xB6, 0x07, 0xDE, 0xBD, 0x35, 0x91, 0xD5, 0x3C, 0x6D, 0x2F, 0x3A, 0x3E,
+ 0xA3, 0x10, 0x90, 0xBE, 0xFF, 0xE6, 0xCB, 0x3D, 0xB0, 0xC9, 0x26, 0x3C,
+ 0xA9, 0x30, 0x57, 0x3E, 0xF3, 0xCE, 0xE2, 0x3C, 0x6E, 0x05, 0xC7, 0xBD,
+ 0x89, 0x10, 0x93, 0xBD, 0xD3, 0x49, 0xA6, 0x3D, 0x02, 0xD1, 0x2A, 0x3D,
+ 0x08, 0x1F, 0x5B, 0x3E, 0x95, 0x49, 0x2D, 0xBD, 0x07, 0x47, 0x41, 0xBC,
+ 0x1B, 0x35, 0x81, 0x3D, 0xE4, 0xBA, 0xF4, 0x3D, 0xCD, 0x4B, 0xEF, 0x3D,
+ 0xAF, 0x81, 0x8E, 0x3D, 0x63, 0xB5, 0x2D, 0x3F, 0x96, 0x9A, 0xAB, 0xBE,
+ 0xC2, 0x08, 0x04, 0x3D, 0xAC, 0x41, 0xF2, 0x3B, 0xBA, 0xD9, 0xCA, 0x3C,
+ 0x26, 0x77, 0xF3, 0xBB, 0x46, 0xFC, 0xAD, 0xBD, 0xFB, 0x16, 0xDF, 0x3B,
+ 0x1C, 0x52, 0x2E, 0xBC, 0x22, 0x8D, 0x09, 0xBD, 0x83, 0xDF, 0x18, 0x3C,
+ 0xC6, 0xC3, 0x07, 0x3D, 0xBF, 0x44, 0x6C, 0x3C, 0x39, 0xE8, 0x8B, 0x3C,
+ 0x33, 0x03, 0x9D, 0x3C, 0xFC, 0xF2, 0x21, 0x3C, 0xFA, 0x77, 0x99, 0xBC,
+ 0xC0, 0x48, 0x12, 0x3B, 0x9F, 0xEF, 0x3D, 0xBB, 0x1C, 0xA1, 0x87, 0xBC,
+ 0x88, 0xFE, 0x3F, 0xBC, 0x66, 0xCA, 0xD5, 0x3B, 0xAB, 0x38, 0xE9, 0xBB,
+ 0xFC, 0x60, 0xB5, 0xBB, 0xE7, 0xB3, 0x47, 0xBC, 0x3E, 0xCD, 0x9B, 0x3D,
+ 0x43, 0x64, 0x16, 0xBD, 0x13, 0xA1, 0x6E, 0xBD, 0x6A, 0x64, 0x4E, 0xBC,
+ 0x0C, 0x4E, 0xBB, 0xBC, 0x7D, 0xF7, 0xFA, 0xB9, 0xD9, 0x29, 0x8A, 0xBB,
+ 0x83, 0xD2, 0x60, 0xBE, 0xB0, 0x24, 0x87, 0xBD, 0x30, 0xF7, 0xBC, 0x3B,
+ 0xE1, 0xF9, 0xD3, 0xBD, 0xC8, 0xE7, 0xDB, 0xBD, 0x0E, 0x62, 0x2C, 0xBE,
+ 0x9A, 0xB8, 0x09, 0xBE, 0x35, 0x19, 0x94, 0xBD, 0x08, 0x11, 0x0A, 0x3E,
+ 0x36, 0xDD, 0x22, 0xBA, 0xC1, 0x28, 0x28, 0x3D, 0xA3, 0xE9, 0xB6, 0x3C,
+ 0x58, 0xFE, 0x2E, 0xBE, 0x38, 0x69, 0xD1, 0x3C, 0x4F, 0x8F, 0x91, 0x3B,
+ 0xC3, 0xEB, 0x1C, 0xBE, 0x5D, 0x28, 0x2E, 0xBE, 0x51, 0x34, 0xBB, 0x3C,
+ 0xB4, 0x68, 0x9D, 0x3D, 0xB2, 0x26, 0x08, 0xBF, 0x23, 0x0D, 0x37, 0xBC,
+ 0xE8, 0xFD, 0x9C, 0x3D, 0xEF, 0x86, 0x13, 0x3F, 0x9A, 0xEB, 0xB4, 0x3C,
+ 0x11, 0xB2, 0xC8, 0x3C, 0x8E, 0x09, 0x79, 0x3F, 0x26, 0xCD, 0x7B, 0x3D,
+ 0x5C, 0x67, 0xCF, 0x3E, 0x4F, 0xE0, 0x11, 0x3E, 0xEF, 0x91, 0x80, 0xBC,
+ 0x19, 0xF2, 0x55, 0xBF, 0xA9, 0x4E, 0x81, 0xBC, 0x59, 0xB0, 0x3C, 0x3E,
+ 0xB0, 0x43, 0xA7, 0x3D, 0x0A, 0x82, 0x60, 0xBD, 0x05, 0xC6, 0x89, 0x3E,
+ 0xB8, 0xC6, 0xBE, 0x3D, 0x92, 0xFB, 0x44, 0x3F, 0x3E, 0xD8, 0x1D, 0x3E,
+ 0xD7, 0x18, 0xC0, 0x3D, 0xD1, 0x5E, 0x8A, 0xBE, 0x91, 0x75, 0xDA, 0xBD,
+ 0x23, 0xB3, 0x98, 0xBD, 0xCA, 0xE3, 0xC6, 0xBE, 0x72, 0xA5, 0x7E, 0x3E,
+ 0xFB, 0xDE, 0x3F, 0xBF, 0xFE, 0x6C, 0xCF, 0x3D, 0x5F, 0xA4, 0x2D, 0x3E,
+ 0xF3, 0x59, 0xB2, 0xBD, 0x2F, 0xBE, 0xEC, 0x3E, 0x03, 0xF0, 0xE4, 0xBD,
+ 0xCF, 0x6E, 0x4B, 0xBE, 0xEC, 0xB2, 0x6C, 0x3D, 0xFC, 0x4C, 0x2D, 0x3E,
+ 0xD5, 0x25, 0x90, 0x3E, 0x8A, 0x33, 0xD0, 0x3D, 0x78, 0xFB, 0x61, 0xBE,
+ 0xD8, 0xFD, 0x63, 0x3C, 0xD8, 0x7B, 0x83, 0xBF, 0x7A, 0xE8, 0x80, 0x3F,
+ 0xA0, 0xC8, 0x08, 0x3F, 0xAB, 0xC0, 0x13, 0x3F, 0xC4, 0x76, 0x44, 0x3D,
+ 0x47, 0x1E, 0xDB, 0x3D, 0xE3, 0x60, 0xD8, 0xBE, 0x01, 0x74, 0x75, 0xBE,
+ 0xD8, 0x3A, 0xA9, 0xBE, 0x13, 0xE0, 0x89, 0xBD, 0x8E, 0x05, 0x6F, 0xBF,
+ 0x51, 0x7B, 0x9D, 0xBF, 0xC4, 0x18, 0x7B, 0x3E, 0x7D, 0xB8, 0xC5, 0x3C,
+ 0x92, 0x5E, 0x0F, 0x3D, 0xE8, 0xA1, 0x1F, 0x3E, 0xEF, 0x61, 0x93, 0x3E,
+ 0xB5, 0x8D, 0x72, 0x3C, 0xEA, 0xEE, 0x1E, 0x3E, 0x27, 0xC8, 0x9C, 0xBE,
+ 0x26, 0x08, 0x5C, 0xBC, 0x5C, 0x8F, 0xA4, 0xBE, 0x14, 0x2E, 0x3D, 0x3F,
+ 0xF2, 0xD7, 0x88, 0x3E, 0x1A, 0xDF, 0x1C, 0xBC, 0x3E, 0x6F, 0xCC, 0x3E,
+ 0x04, 0x6A, 0x47, 0x3C, 0x6C, 0xE1, 0x3F, 0xBE, 0xBD, 0x3A, 0xAD, 0xBD,
+ 0xCB, 0x1D, 0x99, 0xBC, 0xE8, 0xFB, 0xA7, 0x3D, 0x4F, 0xF3, 0x91, 0x3E,
+ 0xF2, 0x73, 0x4E, 0xBC, 0xB3, 0xE9, 0x59, 0x3F, 0x21, 0xF3, 0xF6, 0x3D,
+ 0x37, 0x4B, 0x87, 0x3E, 0x08, 0x23, 0x53, 0x3F, 0xF0, 0xDA, 0x96, 0x3C,
+ 0xA1, 0x13, 0x09, 0xBF, 0x01, 0x9F, 0x0F, 0xBF, 0xB6, 0xD8, 0x84, 0x3D,
+ 0x63, 0x1C, 0x87, 0xBD, 0x07, 0x9D, 0x3A, 0xBE, 0xAA, 0x0C, 0x74, 0xBF,
+ 0xBB, 0x50, 0xC1, 0xBD, 0xAF, 0x18, 0xD4, 0xBE, 0x41, 0xC3, 0x38, 0x3E,
+ 0xB0, 0xFD, 0x7C, 0xBE, 0xF3, 0x18, 0xD2, 0x3E, 0x7C, 0x5F, 0x55, 0x3E,
+ 0x0D, 0xC0, 0x0A, 0xBF, 0xB5, 0xA5, 0xC4, 0xBD, 0xD3, 0xC3, 0xB5, 0x3D,
+ 0x4B, 0xE6, 0xBE, 0xBE, 0x31, 0xAF, 0x41, 0x3F, 0x50, 0x06, 0xB5, 0xBD,
+ 0x73, 0xC4, 0x78, 0xBE, 0x07, 0x61, 0x10, 0xBF, 0x48, 0x13, 0xFF, 0x3D,
+ 0x3C, 0xDE, 0x8E, 0x3E, 0x45, 0x8C, 0x80, 0xBC, 0x6C, 0x38, 0xE5, 0x3D,
+ 0x41, 0xC1, 0xD8, 0xBD, 0x6C, 0xB3, 0x7A, 0xBE, 0x83, 0xB1, 0x3E, 0xBE,
+ 0x93, 0xA7, 0x14, 0x3F, 0xF4, 0x46, 0x45, 0x3D, 0xF1, 0x7E, 0x7B, 0xBE,
+ 0x8D, 0x26, 0x4B, 0xBE, 0x8B, 0xB5, 0x67, 0xBE, 0x6C, 0xB1, 0xA0, 0xBD,
+ 0x13, 0x0B, 0x70, 0x3E, 0xF4, 0x01, 0x7C, 0xBE, 0x18, 0x30, 0x2D, 0xBB,
+ 0x23, 0x52, 0x07, 0xBD, 0x4D, 0xEB, 0x57, 0x3D, 0x3F, 0xAA, 0x78, 0x3D,
+ 0xE4, 0x2A, 0xA4, 0xBC, 0xB1, 0x05, 0x10, 0xBD, 0x1C, 0x69, 0x1B, 0xBC,
+ 0xA2, 0x8B, 0x6B, 0xBD, 0xE6, 0x3B, 0xBB, 0x3D, 0x32, 0x7A, 0x63, 0x3E,
+ 0x22, 0x9D, 0x07, 0xBE, 0xE0, 0x48, 0xA0, 0x3D, 0x2A, 0x49, 0xF1, 0x3D,
+ 0x8E, 0x1C, 0x69, 0xBE, 0x63, 0xEC, 0x2D, 0x3E, 0x12, 0x72, 0xB5, 0x3D,
+ 0x20, 0xE8, 0x26, 0x3D, 0x3C, 0x3E, 0x02, 0xBC, 0x4C, 0xBD, 0x5B, 0xBE,
+ 0x08, 0x13, 0x49, 0xBE, 0x7F, 0xF9, 0xB1, 0x3C, 0x98, 0x15, 0xBF, 0x3D,
+ 0xDA, 0xCB, 0xA9, 0xBC, 0x0E, 0x0A, 0x21, 0xBC, 0xEE, 0x1A, 0x1E, 0xBE,
+ 0xFE, 0x15, 0xD5, 0xBD, 0x61, 0x56, 0x35, 0x3E, 0x1E, 0x78, 0xAE, 0x3D,
+ 0x95, 0x4F, 0x91, 0xBD, 0x5C, 0xB7, 0x3C, 0xBF, 0xA8, 0x43, 0x8E, 0xBD,
+ 0x12, 0x73, 0x38, 0xBE, 0x0E, 0x49, 0xA4, 0x3E, 0x1A, 0xF4, 0xC4, 0xBD,
+ 0x5D, 0x03, 0x35, 0xBE, 0xAB, 0xB9, 0x0A, 0x3E, 0x6B, 0x36, 0x48, 0xBB,
+ 0x83, 0x1E, 0xCD, 0xBB, 0xC9, 0x23, 0x2A, 0xBD, 0x9A, 0x3D, 0xDF, 0xBD,
+ 0x33, 0x1A, 0x31, 0xBE, 0x11, 0xED, 0x1D, 0xBE, 0x2C, 0x8B, 0x8A, 0x3D,
+ 0x01, 0xC0, 0xCA, 0x3A, 0x3E, 0xEE, 0xCF, 0xBC, 0xE1, 0x6A, 0xE4, 0xBE,
+ 0xF7, 0xE9, 0xE1, 0xBD, 0xD9, 0xA9, 0x8E, 0xBD, 0x20, 0x8E, 0xF9, 0x3D,
+ 0x83, 0x86, 0x30, 0x3C, 0x03, 0x27, 0x59, 0x3E, 0x09, 0x13, 0xE9, 0xBD,
+ 0xA4, 0x1A, 0xD3, 0xBC, 0x9A, 0x0F, 0x0E, 0x3E, 0x6B, 0x1C, 0x75, 0xBD,
+ 0xDD, 0x3C, 0x2E, 0x3E, 0x05, 0xE3, 0x7F, 0x3E, 0x77, 0x2F, 0xB0, 0xBC,
+ 0x75, 0xA9, 0x81, 0x3D, 0x1A, 0x3A, 0x28, 0x3C, 0x15, 0x8E, 0x9B, 0x3D,
+ 0xA1, 0x8D, 0xB9, 0x3E, 0x61, 0xAF, 0x6C, 0xBD, 0x34, 0x2D, 0x16, 0x3E,
+ 0x89, 0x0F, 0x75, 0xBE, 0x9E, 0xDA, 0xB9, 0x3D, 0xE5, 0x82, 0xBD, 0xBD,
+ 0x88, 0x67, 0x65, 0xBE, 0x56, 0xAD, 0xBE, 0xBC, 0x81, 0x05, 0x62, 0x3D,
+ 0x23, 0x5D, 0x39, 0xBD, 0xB6, 0x8C, 0x30, 0x3D, 0xEC, 0x95, 0xE3, 0x3D,
+ 0xE1, 0xB4, 0xC6, 0x3D, 0xE9, 0x4E, 0x85, 0x3B, 0xD8, 0x34, 0x02, 0x3D,
+ 0x0D, 0xCA, 0xBD, 0x3C, 0xE0, 0x43, 0x62, 0xBC, 0xDA, 0x5F, 0x78, 0xBD,
+ 0xE3, 0xA6, 0x06, 0x3D, 0x0B, 0xDF, 0xE9, 0xBC, 0xEB, 0xB8, 0x57, 0xBC,
+ 0xD9, 0x28, 0x58, 0xBE, 0x36, 0xB6, 0x52, 0xBD, 0x80, 0x4C, 0x31, 0x3B,
+ 0xBB, 0xC4, 0x8B, 0xBD, 0x5F, 0xB2, 0x44, 0x3D, 0xD8, 0xAD, 0x3E, 0xBC,
+ 0x26, 0x25, 0x68, 0xBE, 0x83, 0xF2, 0xA3, 0xBD, 0x8E, 0x08, 0x91, 0xBD,
+ 0xE5, 0xDC, 0xDC, 0x3C, 0x3F, 0x1E, 0xC5, 0xBB, 0xD6, 0x56, 0xDD, 0xBD,
+ 0x45, 0xFD, 0x2D, 0x3D, 0xEB, 0xE7, 0xB5, 0xBC, 0x81, 0x2B, 0xC6, 0xBC,
+ 0x78, 0x2D, 0x3E, 0x3C, 0xCA, 0xF0, 0xB1, 0x3C, 0x6F, 0x66, 0x17, 0xBD,
+ 0x8F, 0xF4, 0xD2, 0x3B, 0x54, 0xF3, 0x73, 0x3D, 0xE3, 0x8D, 0xD7, 0x3C,
+ 0x60, 0xA1, 0x94, 0x3D, 0xFA, 0xEB, 0x3B, 0xBC, 0xE3, 0x35, 0xD0, 0xBD,
+ 0x0E, 0x1C, 0xC3, 0x3C, 0x37, 0xC0, 0x7C, 0xBC, 0x57, 0xD2, 0xA9, 0xBD,
+ 0xAC, 0x0A, 0xCE, 0xBC, 0x01, 0x9C, 0x2D, 0xBD, 0xA0, 0x80, 0x4D, 0xBD,
+ 0x43, 0xE0, 0xA1, 0xBB, 0x06, 0xD3, 0x7E, 0x3B, 0x11, 0x4A, 0x6A, 0x3D,
+ 0x8E, 0x30, 0x66, 0x3D, 0x4F, 0xEC, 0x14, 0xBC, 0x22, 0xAB, 0xDC, 0xBC,
+ 0x83, 0x34, 0xDF, 0xBD, 0xBC, 0x8C, 0xAA, 0x3D, 0xBF, 0x1C, 0x11, 0x3E,
+ 0x5D, 0xCB, 0xB6, 0xBC, 0x86, 0xCB, 0x3A, 0xBA, 0x63, 0xA7, 0x25, 0x3D,
+ 0xFA, 0xE7, 0xC1, 0x3D, 0xAF, 0x50, 0x2F, 0x3F, 0xB9, 0x9B, 0x0C, 0xBC,
+ 0xDE, 0x2D, 0x76, 0x3C, 0xCF, 0x59, 0x07, 0x3D, 0xE8, 0x54, 0x7B, 0x39,
+ 0x44, 0x0C, 0x23, 0xBE, 0xD7, 0x16, 0x45, 0xBE, 0x6E, 0x88, 0x7A, 0x3D,
+ 0x99, 0x72, 0x16, 0x3C, 0x79, 0xCD, 0xDD, 0xBD, 0x47, 0x2B, 0x46, 0xBC,
+ 0xA8, 0xF4, 0xF3, 0x3D, 0x68, 0x13, 0x34, 0xBD, 0x6C, 0x63, 0x41, 0xBC,
+ 0x78, 0xB3, 0x20, 0xBD, 0x47, 0x6B, 0x57, 0x3D, 0x37, 0x18, 0x40, 0x3D,
+ 0xCB, 0xBC, 0xD8, 0xBD, 0x00, 0x11, 0x0A, 0x3B, 0xAA, 0xA3, 0x30, 0x3C,
+ 0x10, 0xB2, 0x31, 0x3B, 0xC5, 0xE3, 0x98, 0x3D, 0x71, 0xF1, 0x39, 0xBD,
+ 0x4D, 0xBD, 0x89, 0x3C, 0xEA, 0xF5, 0xF4, 0xBC, 0xBC, 0x08, 0x58, 0x3E,
+ 0x9A, 0x72, 0xCB, 0xBD, 0xDD, 0x53, 0x9E, 0xBE, 0x28, 0xA3, 0x55, 0x3D,
+ 0x55, 0x5B, 0xC6, 0xBD, 0x09, 0xFA, 0xF2, 0x39, 0xE1, 0x78, 0x80, 0xBD,
+ 0xE2, 0xF6, 0xD7, 0xBE, 0xA6, 0x36, 0x3A, 0xBE, 0x56, 0x91, 0x94, 0x3D,
+ 0xB4, 0x0F, 0x90, 0x3C, 0x27, 0x42, 0x72, 0x3E, 0xFE, 0x5C, 0x93, 0x3F,
+ 0x2D, 0xCA, 0xAE, 0x3E, 0x50, 0xA1, 0x25, 0x3E, 0x6F, 0x80, 0x2C, 0x3E,
+ 0xFF, 0x77, 0x11, 0xBD, 0x06, 0x7C, 0xAA, 0x3E, 0x7F, 0x46, 0x64, 0xBC,
+ 0x6D, 0xA5, 0x8F, 0xBE, 0x32, 0xCB, 0x43, 0x3D, 0x83, 0xF0, 0x09, 0x3D,
+ 0x69, 0xBB, 0xEC, 0xBD, 0x31, 0x5F, 0xF8, 0xBD, 0x84, 0x54, 0xED, 0x3D,
+ 0x50, 0x34, 0x52, 0xBE, 0xD5, 0x17, 0x21, 0xBE, 0xA3, 0x50, 0xB7, 0x3B,
+ 0x79, 0xBB, 0x1E, 0x3A, 0xCE, 0x27, 0xD9, 0x3E, 0xF9, 0x1D, 0xEC, 0xBC,
+ 0x57, 0x1A, 0xCC, 0xBB, 0xDA, 0xA5, 0xC3, 0xBE, 0x7C, 0x43, 0x1C, 0x3F,
+ 0x6A, 0xD0, 0xC8, 0xBE, 0x20, 0x9D, 0xC8, 0x3D, 0x4E, 0xC4, 0xA9, 0x3E,
+ 0x9B, 0x82, 0x69, 0xBE, 0x0B, 0x94, 0x1B, 0x3E, 0x66, 0xAB, 0xCC, 0xBE,
+ 0x6D, 0x34, 0x92, 0x3E, 0xFA, 0x2C, 0x6B, 0xBD, 0xD7, 0xD2, 0x43, 0xBD,
+ 0x67, 0x9F, 0x11, 0xBD, 0xFC, 0x8A, 0x50, 0x3B, 0x63, 0x67, 0xF9, 0xBD,
+ 0x0E, 0xE4, 0x26, 0x3D, 0xC2, 0x04, 0x86, 0xBD, 0x6C, 0xA5, 0x87, 0xBD,
+ 0x9B, 0xA2, 0x4A, 0xBD, 0xE8, 0x0C, 0x36, 0x3D, 0x27, 0x7E, 0xD1, 0x3D,
+ 0x16, 0x1E, 0x16, 0x3D, 0xC0, 0xD8, 0x37, 0xBD, 0x76, 0x68, 0xE1, 0x3D,
+ 0x91, 0x70, 0xC8, 0xBC, 0x4D, 0xF8, 0x24, 0xBD, 0xE4, 0x90, 0x1E, 0x3D,
+ 0x71, 0x42, 0x52, 0xBD, 0xDC, 0x3F, 0x1B, 0xBC, 0x28, 0xFC, 0x5A, 0xBD,
+ 0x3F, 0x8A, 0x3F, 0x3D, 0xA3, 0x35, 0x00, 0x3D, 0xB1, 0xD5, 0xBD, 0xBD,
+ 0x1C, 0xC4, 0x1A, 0x3E, 0xEF, 0x72, 0x54, 0xBE, 0x29, 0x9C, 0x46, 0xBE,
+ 0xD9, 0x11, 0x4A, 0x3D, 0x83, 0x82, 0xBA, 0xBD, 0x84, 0x60, 0x77, 0xBD,
+ 0x80, 0x99, 0x21, 0x3D, 0xB6, 0x4F, 0xE8, 0xBE, 0x6D, 0x19, 0x3F, 0xBC,
+ 0x4C, 0x50, 0xF2, 0x3C, 0x40, 0x55, 0xDD, 0xBC, 0xFE, 0x7F, 0x15, 0xBD,
+ 0xE5, 0x8C, 0xFA, 0x3C, 0x3D, 0x91, 0x22, 0x3D, 0x92, 0x7C, 0x8F, 0xBC,
+ 0x66, 0x34, 0xBC, 0xBB, 0x15, 0xFC, 0x3D, 0x3D, 0x0A, 0x71, 0x48, 0xBC,
+ 0xAA, 0x92, 0xB9, 0xBD, 0x7F, 0x8F, 0x39, 0x3C, 0xAA, 0xC5, 0xB8, 0x3B,
+ 0x0D, 0xB4, 0xC6, 0x3B, 0xB4, 0x6A, 0x40, 0xBD, 0x12, 0xF5, 0x1A, 0x3D,
+ 0x61, 0xF7, 0x3B, 0x3C, 0x08, 0x4A, 0x9E, 0xBB, 0x7E, 0x09, 0xAA, 0xBB,
+ 0x90, 0xB2, 0x6E, 0xBA, 0x74, 0xDB, 0x2B, 0xBC, 0x62, 0xE8, 0xAE, 0x3C,
+ 0x5F, 0x4B, 0xD3, 0xBC, 0xFD, 0x08, 0x09, 0x3D, 0x52, 0x21, 0xBE, 0xBD,
+ 0x02, 0xEE, 0x58, 0x3D, 0x30, 0x6D, 0x02, 0x3E, 0x2E, 0x05, 0x91, 0xBC,
+ 0xB3, 0x2B, 0x46, 0x3C, 0xAA, 0x8F, 0x4E, 0xBD, 0xD3, 0x04, 0x39, 0x3D,
+ 0x09, 0x08, 0xE8, 0x3C, 0xD2, 0x67, 0xA4, 0x3D, 0x69, 0xD8, 0x0C, 0xBC,
+ 0xA9, 0x69, 0x2A, 0x3F, 0x54, 0xA8, 0x6C, 0x3F, 0xE9, 0x4E, 0x5C, 0x3E,
+ 0x4A, 0x26, 0x59, 0xBF, 0x3A, 0x75, 0x11, 0xBE, 0xA9, 0xCF, 0xC9, 0xBE,
+ 0x35, 0x8C, 0x71, 0xBE, 0x26, 0xC8, 0x09, 0x3D, 0x92, 0xD3, 0xDD, 0xBD,
+ 0xFF, 0x2A, 0x0A, 0x3F, 0x53, 0x3B, 0x98, 0x3F, 0x95, 0xF2, 0xCF, 0x3B,
+ 0xD7, 0xC2, 0x9F, 0x3E, 0x27, 0x90, 0xCD, 0x3E, 0xFC, 0xCC, 0xCF, 0x3E,
+ 0x0C, 0x4E, 0x0F, 0xBE, 0x18, 0xDE, 0x4D, 0x3E, 0x1C, 0x29, 0x1E, 0xBC,
+ 0x8C, 0xAE, 0x72, 0x3F, 0x07, 0xF7, 0xEE, 0x3E, 0xB1, 0x37, 0xB0, 0xBE,
+ 0x4A, 0x01, 0xE5, 0xBD, 0x40, 0x23, 0x27, 0xBF, 0xC4, 0xCD, 0x80, 0x3D,
+ 0x97, 0xF8, 0x81, 0xBD, 0x52, 0x4F, 0xE0, 0x3D, 0x4C, 0x37, 0xE9, 0xBD,
+ 0x7C, 0x94, 0x6B, 0x3F, 0xE0, 0x72, 0x81, 0x3E, 0xEF, 0xC8, 0x2A, 0x3C,
+ 0x33, 0xA8, 0x65, 0xBF, 0x8A, 0x35, 0x64, 0x3E, 0x57, 0x45, 0x1F, 0xBE,
+ 0x9C, 0xA3, 0x9B, 0xBE, 0x20, 0x9E, 0xD8, 0xBE, 0x59, 0x00, 0x69, 0x3E,
+ 0x27, 0x7B, 0xA1, 0xBD, 0xD0, 0x57, 0x53, 0x3D, 0xA5, 0x81, 0x59, 0x3E,
+ 0xA3, 0x96, 0x45, 0x3E, 0x03, 0xF8, 0x6A, 0x3D, 0x79, 0x8F, 0xBD, 0x3D,
+ 0xCB, 0xE8, 0x22, 0xBE, 0x5D, 0x48, 0x9B, 0x3B, 0x57, 0x24, 0x03, 0x3E,
+ 0x43, 0x10, 0x2A, 0xBD, 0xFB, 0x89, 0xA9, 0xBD, 0xFF, 0x2D, 0xB5, 0x3D,
+ 0xDE, 0x4B, 0x3B, 0xBE, 0xF9, 0x1B, 0x3F, 0xBB, 0xBE, 0x92, 0xBE, 0x3D,
+ 0x44, 0x83, 0x19, 0xBD, 0x2C, 0x00, 0x91, 0xBC, 0x72, 0xDC, 0xCF, 0x3D,
+ 0xC3, 0x74, 0xB0, 0xBE, 0xAA, 0xEE, 0x1C, 0x3E, 0xB8, 0xBA, 0x35, 0xBE,
+ 0xEF, 0x6D, 0xE9, 0x3D, 0x2D, 0x1E, 0xFC, 0xBC, 0x38, 0x3B, 0xA2, 0x3D,
+ 0x09, 0x54, 0xE7, 0xBB, 0x5A, 0x04, 0xCE, 0xBE, 0x9E, 0xFD, 0xEF, 0xBD,
+ 0x8D, 0xFC, 0xBA, 0x3D, 0x71, 0xC5, 0x27, 0xBE, 0xBD, 0x65, 0x55, 0x3E,
+ 0xA2, 0x38, 0x16, 0xB9, 0xC8, 0xC6, 0x92, 0xBE, 0x03, 0xD4, 0x8D, 0xBD,
+ 0x14, 0x11, 0x96, 0x3E, 0x08, 0x2C, 0x08, 0xBE, 0x55, 0xE2, 0x0C, 0xBE,
+ 0x89, 0x02, 0x4A, 0x3D, 0xE6, 0x55, 0xFF, 0xBE, 0x6B, 0x71, 0x6F, 0x3D,
+ 0xB7, 0x22, 0x9C, 0xBD, 0xF3, 0xFE, 0x32, 0x3E, 0x84, 0xBE, 0x02, 0xBF,
+ 0x2B, 0xF3, 0xDC, 0xBE, 0x1D, 0x94, 0xEB, 0xBC, 0x31, 0x6D, 0x2D, 0x3E,
+ 0xD7, 0x6F, 0x32, 0xBD, 0x50, 0xD1, 0xA5, 0xBD, 0x9C, 0x9A, 0xF9, 0x3D,
+ 0xF3, 0xF4, 0x8B, 0x3D, 0x62, 0x35, 0xC1, 0xBD, 0xC7, 0xBB, 0x09, 0x3E,
+ 0xDA, 0xC8, 0xA7, 0x3E, 0x0F, 0x27, 0xF7, 0xBD, 0xB6, 0x62, 0x14, 0x3E,
+ 0xF9, 0xBC, 0x13, 0xBE, 0xBD, 0x67, 0x80, 0x3E, 0xD7, 0xBD, 0x24, 0xBE,
+ 0x0B, 0x3D, 0x54, 0xBF, 0xCB, 0xE4, 0x65, 0xBE, 0x7B, 0xD5, 0xEC, 0xBD,
+ 0x17, 0xF3, 0xEB, 0x3D, 0x63, 0x50, 0x18, 0x3F, 0x89, 0xE1, 0x2C, 0x3E,
+ 0xB0, 0xD5, 0xE3, 0xBE, 0xE6, 0x80, 0x1E, 0xBC, 0xB2, 0x72, 0x96, 0x3E,
+ 0x36, 0x89, 0xCB, 0x3C, 0xD7, 0x4E, 0x0D, 0xBF, 0x24, 0xF9, 0xE2, 0x3D,
+ 0xE5, 0x71, 0xB5, 0x3E, 0xC0, 0xBE, 0x45, 0xBE, 0x7C, 0x11, 0xC8, 0x3C,
+ 0x9D, 0x86, 0xE8, 0xBA, 0x66, 0x48, 0x5A, 0xBE, 0xEB, 0x05, 0x7C, 0x3D,
+ 0xCE, 0x09, 0x98, 0xBD, 0xE4, 0xF6, 0x95, 0xBF, 0xF1, 0x7D, 0xDB, 0x3C,
+ 0x2C, 0x78, 0x66, 0xBF, 0x76, 0xD5, 0xCB, 0x3E, 0xDF, 0x55, 0xED, 0x3C,
+ 0xD2, 0x2C, 0x4C, 0xBD, 0x3A, 0xF2, 0x8E, 0xBE, 0xE8, 0x60, 0xDD, 0x3E,
+ 0x31, 0xA3, 0x01, 0x3E, 0x4E, 0xBF, 0xAC, 0xBE, 0xB8, 0xD2, 0xB1, 0xBE,
+ 0x75, 0xC9, 0x09, 0xBE, 0xA3, 0x17, 0xA3, 0xBC, 0x6E, 0xCC, 0x2C, 0x3F,
+ 0xEC, 0xD6, 0x94, 0x3E, 0x05, 0x6A, 0xA2, 0xBE, 0x56, 0xEE, 0x80, 0xBE,
+ 0xF8, 0xF2, 0x96, 0x3E, 0x15, 0xC0, 0x09, 0xBF, 0xBF, 0xA0, 0x19, 0xBF,
+ 0x23, 0xC2, 0xB1, 0x3E, 0xE2, 0x2E, 0xF8, 0xBD, 0x5D, 0xED, 0xD5, 0xBD,
+ 0x7B, 0xC9, 0x5A, 0xBE, 0x09, 0xE7, 0x85, 0xBE, 0x75, 0xB4, 0x13, 0xBF,
+ 0xF3, 0x19, 0xC7, 0xBC, 0x71, 0xFB, 0xFB, 0x3B, 0xB9, 0xC5, 0xBE, 0xBE,
+ 0xE8, 0x46, 0x92, 0x3E, 0xE2, 0x26, 0xA1, 0x3E, 0xAA, 0x6B, 0xF9, 0xBE,
+ 0x7E, 0x6A, 0x26, 0xBF, 0x84, 0xC7, 0x3D, 0x3B, 0xBF, 0xF1, 0xB7, 0xBE,
+ 0x7D, 0x82, 0x85, 0x3F, 0xAD, 0x6A, 0xA3, 0x3D, 0xD3, 0xEA, 0x48, 0xBE,
+ 0x1E, 0xAF, 0x8D, 0x3F, 0xFB, 0x82, 0x38, 0xBF, 0xD1, 0x89, 0xBF, 0x3E,
+ 0x5C, 0x94, 0xA1, 0xBD, 0x00, 0xA1, 0xD4, 0x3E, 0x2F, 0xCA, 0xE3, 0x3C,
+ 0x88, 0x5A, 0x3E, 0x3E, 0xC5, 0x44, 0xFD, 0xBE, 0xF5, 0xC7, 0x02, 0x3F,
+ 0x2C, 0x47, 0x94, 0xBD, 0x56, 0x6C, 0x0E, 0x3E, 0x0F, 0xD7, 0x83, 0x3E,
+ 0x9C, 0xBD, 0x21, 0xBE, 0x3B, 0x6B, 0xB8, 0xBE, 0xA5, 0xA4, 0xA2, 0xBD,
+ 0xA6, 0xF7, 0xC1, 0xBD, 0x0B, 0x29, 0xE4, 0x3D, 0xD5, 0x54, 0x01, 0xBE,
+ 0x26, 0x32, 0x82, 0xBD, 0xBA, 0xB4, 0x9E, 0xBE, 0x8F, 0x56, 0x00, 0x3E,
+ 0x23, 0xD8, 0x11, 0xBC, 0x96, 0x5F, 0x7B, 0x3E, 0x91, 0xFD, 0x28, 0x3D,
+ 0x39, 0x7B, 0x47, 0xBE, 0x3E, 0x8D, 0xAD, 0xBD, 0xDB, 0x7A, 0xF9, 0xBE,
+ 0x60, 0x25, 0x9A, 0xBC, 0x3A, 0xC6, 0x20, 0xBD, 0x43, 0xC1, 0x53, 0x3F,
+ 0x97, 0x68, 0xE1, 0x3C, 0xE1, 0x48, 0x82, 0x3D, 0x0E, 0xE8, 0x08, 0xBF,
+ 0x64, 0x30, 0xB8, 0xBE, 0x86, 0x78, 0xFB, 0x3E, 0xBB, 0x53, 0xE2, 0x3D,
+ 0xA1, 0x4F, 0x5E, 0xBE, 0xB8, 0x35, 0x41, 0x3D, 0x9E, 0xF8, 0xAC, 0x3D,
+ 0xFF, 0x6D, 0x80, 0x3F, 0xC7, 0xDF, 0x4E, 0xBE, 0xF1, 0xD7, 0xAA, 0xBC,
+ 0xCC, 0x36, 0xBA, 0xBD, 0x04, 0x8B, 0x5B, 0xBD, 0xAF, 0xE2, 0x90, 0x3E,
+ 0x2C, 0xC0, 0x7A, 0x3D, 0x8B, 0x8D, 0x81, 0xBC, 0x1E, 0xB5, 0x2B, 0xBD,
+ 0xD2, 0xA9, 0x38, 0x3C, 0xD9, 0x1D, 0x5C, 0x3C, 0x42, 0xEA, 0xE4, 0x3C,
+ 0x16, 0x7F, 0x91, 0x3D, 0x39, 0xF5, 0x28, 0xBD, 0xB2, 0xE6, 0xDC, 0x3B,
+ 0xDC, 0x90, 0xC2, 0xBB, 0xD2, 0x2C, 0x03, 0x3E, 0xD9, 0x92, 0xC5, 0x3D,
+ 0xDA, 0xDB, 0x23, 0x3D, 0x8A, 0x0E, 0x45, 0xBD, 0xD0, 0xF4, 0x52, 0xBB,
+ 0x15, 0x9F, 0xAD, 0xBD, 0x65, 0xAE, 0xC2, 0x3A, 0xF3, 0x2E, 0xB3, 0x3C,
+ 0xD3, 0x7C, 0x0C, 0x3C, 0x4B, 0x6F, 0x88, 0xBD, 0x50, 0x84, 0xBD, 0x3C,
+ 0x68, 0x22, 0x06, 0xBD, 0x2E, 0x5A, 0xD8, 0xBC, 0xB7, 0x53, 0x79, 0x3D,
+ 0x68, 0xEF, 0x74, 0x3D, 0xFA, 0x4E, 0x2B, 0x3C, 0xA0, 0xF4, 0x1B, 0xBE,
+ 0x67, 0x59, 0x64, 0x3D, 0x1E, 0x66, 0x81, 0x3D, 0x4F, 0xD4, 0x96, 0xBD,
+ 0x90, 0xE7, 0x06, 0xBD, 0x9D, 0x96, 0x07, 0x3E, 0xDD, 0xE5, 0x8D, 0x3D,
+ 0xC6, 0x1A, 0x85, 0xBB, 0xD6, 0x4B, 0x8C, 0xBC, 0x74, 0xD6, 0x0E, 0x3D,
+ 0x87, 0x4D, 0x1F, 0xBD, 0x2F, 0xB1, 0x57, 0xBD, 0xCA, 0xBE, 0x1A, 0x3D,
+ 0x3A, 0x42, 0x17, 0xBD, 0x7F, 0x2E, 0xC6, 0x3C, 0x29, 0x8D, 0x6D, 0x3B,
+ 0xD1, 0x6F, 0x05, 0x3E, 0x97, 0x84, 0xAB, 0x3D, 0xA3, 0x87, 0xDE, 0x3C,
+ 0xED, 0x90, 0x09, 0xBD, 0xE9, 0x41, 0xCA, 0xBB, 0x4A, 0xD9, 0x34, 0xBD,
+ 0x6A, 0x46, 0xB2, 0x3A, 0x0E, 0x1A, 0xC9, 0xBA, 0xB5, 0xDA, 0xD2, 0x3B,
+ 0x4D, 0x27, 0x84, 0x3A, 0xBE, 0x10, 0xBC, 0xBC, 0xB6, 0x23, 0x81, 0xBC,
+ 0x93, 0xE3, 0x6B, 0xBC, 0x65, 0xBB, 0xB0, 0x3C, 0x77, 0x17, 0x41, 0x3D,
+ 0xC3, 0x0E, 0x7A, 0xBC, 0x74, 0x32, 0x55, 0xBE, 0x38, 0xE7, 0x6F, 0x3D,
+ 0xB8, 0xBE, 0x84, 0x3D, 0x57, 0xEF, 0xA3, 0xBC, 0xB2, 0xA5, 0xBB, 0xBB,
+ 0xDB, 0x93, 0x9A, 0xBD, 0x1B, 0x14, 0x48, 0xBB, 0x17, 0x67, 0xC6, 0xBB,
+ 0x4A, 0x34, 0x73, 0x3D, 0xCD, 0x1E, 0x87, 0x3C, 0x10, 0x28, 0x55, 0x3D,
+ 0x75, 0x20, 0x05, 0xBD, 0xC9, 0xC1, 0x03, 0xBE, 0x86, 0x48, 0xB4, 0x3C,
+ 0x21, 0x8C, 0x16, 0xBB, 0x8B, 0x29, 0xB1, 0xBD, 0x7E, 0x32, 0x30, 0xBE,
+ 0x98, 0xF3, 0x0F, 0xBD, 0xE7, 0x49, 0x62, 0xBD, 0x2F, 0xBB, 0xF0, 0x3C,
+ 0xF6, 0x9E, 0x8D, 0x39, 0x2A, 0x28, 0x84, 0x3D, 0xCD, 0x03, 0xFE, 0xBC,
+ 0x61, 0xA5, 0x5C, 0xBC, 0xA2, 0x10, 0xC7, 0x3C, 0x32, 0x26, 0x96, 0xBD,
+ 0x96, 0x64, 0xF7, 0x3D, 0x62, 0xAD, 0xCA, 0x3D, 0x9A, 0x9E, 0xFF, 0x3C,
+ 0x80, 0x01, 0x84, 0xBA, 0xBC, 0x1B, 0x5C, 0xBD, 0x91, 0xC6, 0x93, 0x3D,
+ 0x20, 0x69, 0x61, 0x3D, 0x62, 0x73, 0x21, 0x3D, 0x78, 0xBE, 0xAC, 0x3B,
+ 0x65, 0x26, 0x08, 0xBD, 0x43, 0x87, 0xD9, 0xBC, 0xA6, 0x2B, 0xE5, 0xBD,
+ 0xEF, 0x0E, 0xEE, 0x3C, 0x9C, 0xAB, 0x6D, 0xBD, 0xFA, 0x38, 0x67, 0xBB,
+ 0x18, 0x85, 0x71, 0xBB, 0x61, 0x90, 0xDF, 0x3C, 0x43, 0x43, 0xA1, 0xBD,
+ 0x12, 0x84, 0xAF, 0xBD, 0xB3, 0xBF, 0xBD, 0xBC, 0xAF, 0x53, 0xC0, 0xBA,
+ 0xAC, 0x90, 0x1D, 0xBB, 0x94, 0xF0, 0x53, 0xBE, 0x78, 0x22, 0xFD, 0x3C,
+ 0x57, 0xEA, 0x27, 0xBC, 0x4E, 0xF7, 0xA2, 0x3B, 0x0D, 0xA8, 0x15, 0xBB,
+ 0xFF, 0xDD, 0x82, 0xBC, 0x35, 0xA4, 0x82, 0xBD, 0xF9, 0x32, 0x86, 0xBB,
+ 0xA5, 0xC2, 0xAA, 0x3D, 0x7E, 0xE2, 0xC0, 0xBD, 0x85, 0xBD, 0x33, 0x3E,
+ 0xE4, 0x26, 0x31, 0x3D, 0x0B, 0xFA, 0xFE, 0xBC, 0x3B, 0x67, 0x5C, 0x3D,
+ 0x01, 0xE3, 0x14, 0xBD, 0x2B, 0x8C, 0x75, 0x3A, 0xA2, 0x41, 0x87, 0x3D,
+ 0xF8, 0x8F, 0x43, 0x3D, 0xA6, 0x21, 0x9D, 0x3C, 0x5B, 0x1F, 0xB9, 0x3E,
+ 0x1E, 0x7E, 0x8E, 0xBE, 0xF8, 0x45, 0xFC, 0xBE, 0xB7, 0x2A, 0xC1, 0x3E,
+ 0x06, 0x9D, 0xCE, 0xBD, 0x63, 0xD0, 0x52, 0x3D, 0xCF, 0x19, 0x33, 0x3E,
+ 0x51, 0xB9, 0x1A, 0xBE, 0xB2, 0x39, 0x05, 0x3E, 0xDE, 0x2E, 0x0A, 0x3F,
+ 0x24, 0xE3, 0x66, 0x3C, 0x14, 0xC1, 0xB9, 0x3B, 0xB0, 0x95, 0xB8, 0xBD,
+ 0xD5, 0xFE, 0x14, 0x3D, 0x8A, 0xD9, 0xDF, 0x3D, 0xD6, 0x14, 0xAE, 0x3D,
+ 0xBD, 0x55, 0x1A, 0x3D, 0x57, 0x9F, 0x3D, 0xBC, 0x65, 0x4D, 0x30, 0x3E,
+ 0xD5, 0xB2, 0xB4, 0x3D, 0xA0, 0x1D, 0xC0, 0x3C, 0x26, 0x23, 0xCE, 0x3D,
+ 0x03, 0x41, 0x5F, 0xBF, 0x5D, 0x53, 0xC3, 0x3D, 0x89, 0x90, 0x7D, 0x3D,
+ 0x76, 0x34, 0xE3, 0xBC, 0xAC, 0xC3, 0xC6, 0xBD, 0x78, 0x1B, 0x18, 0x3F,
+ 0xCA, 0x20, 0xA7, 0xBC, 0x0B, 0xF8, 0x20, 0xBF, 0xE3, 0xF0, 0x19, 0x3F,
+ 0x47, 0xC5, 0x91, 0x3D, 0xF0, 0x3C, 0x48, 0x3E, 0xC6, 0xE8, 0x2E, 0x3E,
+ 0x88, 0xFE, 0x50, 0xBE, 0x19, 0x00, 0xD8, 0x3D, 0x11, 0x44, 0x6C, 0xBD,
+ 0x17, 0x20, 0x12, 0x3E, 0x73, 0xE7, 0x2B, 0x3E, 0x97, 0x70, 0x69, 0x3E,
+ 0x26, 0xB8, 0x63, 0x3D, 0xDF, 0xF6, 0xD6, 0x3D, 0xA4, 0xDA, 0x47, 0xBE,
+ 0x94, 0xCA, 0x8C, 0x3C, 0x2D, 0x40, 0x56, 0x3E, 0x77, 0xD4, 0x90, 0xBE,
+ 0xA5, 0x4F, 0x59, 0xBD, 0x99, 0x57, 0xD7, 0x3D, 0x21, 0xB7, 0xCB, 0x3E,
+ 0x5B, 0xD2, 0xEF, 0xBB, 0x4A, 0xD9, 0x54, 0x3E, 0x79, 0xD2, 0x5B, 0xBE,
+ 0x01, 0xAD, 0x00, 0xBD, 0x21, 0x5B, 0xAA, 0x3C, 0x39, 0x10, 0xC2, 0xBE,
+ 0xAB, 0xF2, 0x3E, 0xBE, 0x81, 0xED, 0x31, 0xBE, 0x93, 0xD7, 0xA1, 0x3D,
+ 0x04, 0xB1, 0x25, 0x3E, 0x74, 0xEE, 0xE5, 0x3E, 0x2F, 0xD7, 0x51, 0x3E,
+ 0x0A, 0x5E, 0x33, 0x3E, 0x9E, 0x15, 0xC8, 0xBE, 0xD3, 0xC7, 0x1A, 0xBC,
+ 0xA3, 0x55, 0x8E, 0xBE, 0x2C, 0x48, 0x4D, 0xBF, 0x0C, 0xFB, 0x1D, 0x3F,
+ 0xF2, 0xE3, 0xB4, 0xBE, 0x15, 0xD4, 0x56, 0xBF, 0x0B, 0x0C, 0xA1, 0x3E,
+ 0xCA, 0x42, 0xBE, 0xBE, 0x34, 0x38, 0x6A, 0xBE, 0x87, 0x2B, 0xD1, 0xBE,
+ 0x9C, 0xE0, 0x84, 0xBE, 0x80, 0x14, 0x61, 0xBE, 0xDC, 0xF3, 0x1F, 0xBE,
+ 0xA0, 0x66, 0x3B, 0x3F, 0x83, 0x7E, 0x1F, 0xBF, 0xB7, 0x03, 0xE8, 0xBD,
+ 0xB2, 0xB5, 0x4A, 0xBF, 0x7E, 0xE7, 0xA1, 0x3E, 0x5E, 0xE0, 0x85, 0xBC,
+ 0x17, 0xC0, 0xE3, 0x3E, 0xF4, 0x7E, 0x84, 0xBF, 0x10, 0x7E, 0xE7, 0xBB,
+ 0xCA, 0xA3, 0xB5, 0xBE, 0xB4, 0x14, 0x79, 0x3F, 0x98, 0xB3, 0x54, 0x3E,
+ 0xE3, 0x0C, 0x57, 0xBF, 0x4D, 0x26, 0xFD, 0x3D, 0x8A, 0xFC, 0x8D, 0xBE,
+ 0xB4, 0x11, 0x0B, 0xBF, 0xBE, 0xF3, 0xE3, 0x3E, 0xB4, 0xDE, 0x58, 0xBF,
+ 0xF8, 0x5D, 0x8F, 0xBE, 0xB1, 0xE9, 0x53, 0x3E, 0x10, 0x39, 0x61, 0x3D,
+ 0xC5, 0x16, 0x48, 0x3C, 0xF3, 0xA4, 0x91, 0xBC, 0x0F, 0x00, 0x98, 0x3C,
+ 0xD9, 0x93, 0x30, 0xBC, 0xEA, 0x0F, 0x50, 0x3D, 0x3B, 0x72, 0xDA, 0x3C,
+ 0x2C, 0x4B, 0xCB, 0x3C, 0x5F, 0xE0, 0x5C, 0xBD, 0x64, 0x4A, 0x8E, 0xBD,
+ 0xBD, 0xCB, 0x03, 0x3D, 0xC1, 0x02, 0xC7, 0x3C, 0xD5, 0x5F, 0x42, 0xBD,
+ 0xBF, 0x14, 0x45, 0xBD, 0x60, 0xE1, 0x78, 0xBC, 0x41, 0x22, 0x0B, 0xBC,
+ 0x7F, 0xD4, 0x33, 0x3D, 0x29, 0x65, 0x69, 0xBC, 0x31, 0x3E, 0x39, 0x3D,
+ 0x08, 0x0B, 0x60, 0xBD, 0xCF, 0xFB, 0x23, 0xBD, 0xE3, 0xED, 0x50, 0x3D,
+ 0x21, 0x6D, 0xDF, 0xBD, 0xBE, 0x54, 0xA3, 0x3D, 0xF9, 0xF0, 0x73, 0x3D,
+ 0x8B, 0x7C, 0x3A, 0xBD, 0x36, 0x7A, 0xA0, 0x3C, 0xC4, 0x34, 0x91, 0x3B,
+ 0x7B, 0x8C, 0xBD, 0x3C, 0x59, 0x5B, 0xFD, 0x3D, 0x3D, 0xD7, 0x44, 0x3C,
+ 0xA0, 0x2E, 0xFB, 0xBC, 0x83, 0x83, 0xC3, 0x3D, 0x0B, 0x31, 0x91, 0xBE,
+ 0xD4, 0xCE, 0xEA, 0x3C, 0x32, 0x9C, 0x0B, 0xBE, 0x46, 0x87, 0x45, 0xBD,
+ 0x10, 0xF9, 0x57, 0x3C, 0x48, 0x58, 0x34, 0xBD, 0x3E, 0x26, 0xED, 0x3C,
+ 0xFF, 0x91, 0x3A, 0xBC, 0x2F, 0xD2, 0x9B, 0xBB, 0x29, 0x43, 0x6A, 0x3D,
+ 0xCD, 0xC5, 0x21, 0x3B, 0xAD, 0x4B, 0x64, 0x3D, 0x35, 0x7B, 0xDC, 0xBC,
+ 0xA2, 0xEA, 0xFA, 0x3D, 0xAA, 0x30, 0xE2, 0xBC, 0x07, 0x50, 0x93, 0x3D,
+ 0x79, 0x5E, 0x8D, 0xBA, 0x90, 0x4D, 0x9B, 0x3D, 0xDD, 0x44, 0x80, 0xBD,
+ 0x6F, 0x97, 0x46, 0xBC, 0x48, 0x1F, 0x1B, 0x3D, 0xFA, 0x53, 0x40, 0xBD,
+ 0xF9, 0x75, 0x02, 0x3D, 0xA7, 0xEC, 0x68, 0xBE, 0x7E, 0x66, 0x39, 0xBD,
+ 0xA6, 0xD9, 0xC2, 0xBD, 0xD5, 0x8E, 0x4F, 0x3D, 0xD1, 0x09, 0xE9, 0x3C,
+ 0x12, 0x40, 0xEA, 0xBE, 0x68, 0x8E, 0xEE, 0x3E, 0x7E, 0xC1, 0x02, 0x3D,
+ 0x43, 0x28, 0xD1, 0xBD, 0x18, 0xB9, 0xCA, 0xBD, 0x14, 0x5C, 0x9E, 0x3E,
+ 0x7E, 0x69, 0x3A, 0x3F, 0xD3, 0x82, 0xBA, 0x3E, 0xEC, 0x10, 0xDD, 0x3C,
+ 0x68, 0xFC, 0x46, 0x3F, 0xDD, 0x59, 0xF2, 0xBE, 0x6B, 0x21, 0x8F, 0x3E,
+ 0x65, 0x0D, 0xB8, 0x3D, 0x9C, 0xAB, 0x15, 0xBF, 0x89, 0xFC, 0xB9, 0xBD,
+ 0xED, 0xD0, 0xCA, 0x3E, 0xD3, 0xC1, 0xDF, 0x3E, 0xC4, 0x0E, 0x11, 0xBF,
+ 0x7A, 0xA3, 0x0B, 0x3E, 0x06, 0x90, 0x05, 0x3F, 0xB6, 0x31, 0xFB, 0xBD,
+ 0xCB, 0x0D, 0x58, 0x3E, 0xD9, 0xDB, 0x3D, 0xBE, 0xDB, 0xE3, 0x83, 0xBE,
+ 0xD1, 0x13, 0x93, 0xBE, 0x60, 0x5B, 0xB2, 0xBE, 0x68, 0xDD, 0x15, 0x3F,
+ 0x82, 0x46, 0x95, 0x3F, 0x41, 0x36, 0xC3, 0x3D, 0x83, 0xF1, 0x37, 0xBD,
+ 0x69, 0x6C, 0x48, 0x3E, 0x93, 0xCC, 0x32, 0x3D, 0x16, 0x9B, 0x64, 0xBF,
+ 0x3D, 0xF3, 0xC3, 0xBE, 0x83, 0x7D, 0x6D, 0x3E, 0xF8, 0x67, 0x9A, 0x3D,
+ 0xE8, 0xAC, 0xE7, 0xBB, 0x71, 0xB2, 0xD2, 0x3C, 0xAB, 0xD8, 0x99, 0xBB,
+ 0xBF, 0x61, 0x26, 0x3D, 0xA0, 0xEA, 0x12, 0x3D, 0x43, 0x4F, 0x18, 0x3B,
+ 0x0B, 0x80, 0x65, 0x3D, 0x56, 0x60, 0xFF, 0x3D, 0x25, 0x1D, 0x9E, 0xBD,
+ 0xE5, 0x4E, 0x80, 0x3D, 0x53, 0xB4, 0x2C, 0x3C, 0xB5, 0xA1, 0x2C, 0xBD,
+ 0x27, 0x77, 0x7F, 0xBE, 0x7C, 0x00, 0x83, 0x39, 0x3E, 0x01, 0x07, 0xBD,
+ 0x6A, 0xD0, 0x76, 0x3C, 0x04, 0x56, 0x95, 0x3B, 0xFC, 0xBE, 0x74, 0x3D,
+ 0xF6, 0x5B, 0x1E, 0xBD, 0x45, 0x40, 0x13, 0xBD, 0x8D, 0xFC, 0x28, 0x3D,
+ 0xBB, 0xD1, 0xE0, 0xBD, 0xC3, 0xE0, 0x8E, 0x3D, 0x06, 0x94, 0xFE, 0x3C,
+ 0xE1, 0x83, 0xCD, 0xBD, 0x5A, 0x5F, 0x5D, 0x3C, 0xFC, 0xB3, 0x65, 0x3D,
+ 0xE4, 0x60, 0x95, 0xBC, 0xA2, 0x63, 0xAE, 0x3D, 0x7D, 0x69, 0x05, 0xBE,
+ 0xE2, 0x3E, 0x28, 0xBD, 0x63, 0xEC, 0xDE, 0xBC, 0xAD, 0xDE, 0x09, 0xBC,
+ 0x06, 0x58, 0x17, 0xBD, 0xCA, 0xA9, 0xFD, 0x3D, 0xD4, 0x9C, 0xBE, 0xBC,
+ 0xAD, 0x86, 0x2B, 0xBC, 0x15, 0xCF, 0x6B, 0x3D, 0x59, 0x22, 0x81, 0xBD,
+ 0x67, 0xED, 0xD0, 0xBD, 0x58, 0x32, 0x8A, 0xBD, 0xBE, 0x44, 0x07, 0x3D,
+ 0x35, 0xC9, 0xC8, 0x3B, 0x69, 0x46, 0x8A, 0xB9, 0xDD, 0x93, 0x99, 0x3D,
+ 0xE5, 0x54, 0x2F, 0xBD, 0x25, 0xB9, 0x84, 0xBC, 0xA1, 0x56, 0x7A, 0x3C,
+ 0x3E, 0x61, 0x9B, 0xBC, 0xA4, 0xB4, 0xE4, 0x3C, 0xC7, 0xCB, 0xD8, 0x3D,
+ 0x01, 0x90, 0xB5, 0x3B, 0xFF, 0x54, 0x58, 0xBC, 0x0A, 0xD6, 0x98, 0xBD,
+ 0xF3, 0x3E, 0x26, 0x3D, 0x2F, 0x94, 0x41, 0x3E, 0xA5, 0x7B, 0x30, 0x3D,
+ 0x4F, 0xC9, 0x9D, 0xBC, 0x07, 0x57, 0xA2, 0x3C, 0x07, 0x76, 0x69, 0x3D,
+ 0x6E, 0xB1, 0x4E, 0x3E, 0xCF, 0x05, 0x3F, 0x3D, 0x59, 0x02, 0xBD, 0x3C,
+ 0xDA, 0x09, 0x4D, 0x3E, 0x9E, 0x35, 0xA8, 0x3D, 0xED, 0x53, 0x11, 0xBF,
+ 0x38, 0x22, 0x18, 0x3D, 0x4A, 0x3F, 0x93, 0x3D, 0x6D, 0xC5, 0x55, 0xBE,
+ 0xDE, 0x9D, 0x3E, 0x3D, 0xD0, 0x47, 0x14, 0x3D, 0xEB, 0x47, 0x28, 0xBE,
+ 0xA7, 0x9D, 0xAE, 0xBC, 0x47, 0xBC, 0x62, 0xBD, 0xE5, 0xBA, 0x32, 0x3E,
+ 0xF0, 0x51, 0xBD, 0x3D, 0x85, 0x05, 0x98, 0x3C, 0x9D, 0x65, 0xF8, 0xBB,
+ 0xF2, 0x42, 0x34, 0xBD, 0x65, 0x8F, 0x0E, 0x3E, 0x3A, 0x55, 0x98, 0x3D,
+ 0xDB, 0x62, 0x20, 0xBC, 0xAA, 0xCE, 0xEE, 0x3D, 0x33, 0xD7, 0xD4, 0xBC,
+ 0x75, 0xAE, 0x42, 0x3E, 0xD8, 0xE8, 0x8C, 0xBD, 0x7B, 0x7F, 0x76, 0x3D,
+ 0xEA, 0x06, 0x47, 0x3E, 0x07, 0xA8, 0xA7, 0xBD, 0x27, 0x4E, 0x45, 0x3D,
+ 0x01, 0x18, 0x04, 0xBE, 0x1C, 0xA5, 0xA1, 0x3E, 0x17, 0x6B, 0x21, 0x3E,
+ 0x98, 0x28, 0x6E, 0x3E, 0xF4, 0x80, 0x61, 0x3E, 0x4D, 0xCF, 0x93, 0x3D,
+ 0xC0, 0xBD, 0x47, 0xBE, 0xB7, 0xC3, 0x35, 0x3E, 0x4B, 0x0D, 0x37, 0xBD,
+ 0xAC, 0x61, 0x0F, 0x3F, 0xC4, 0x02, 0x48, 0x3E, 0xAD, 0x8D, 0x0B, 0x3E,
+ 0x81, 0xBF, 0x00, 0xBF, 0x07, 0xF3, 0x88, 0x3E, 0xD5, 0xFF, 0x41, 0x3E,
+ 0x26, 0x77, 0xB6, 0xBD, 0x81, 0x21, 0x31, 0xBE, 0x77, 0x47, 0x91, 0x3C,
+ 0xDC, 0x91, 0x7E, 0xBF, 0x20, 0x82, 0xE8, 0x3E, 0xC0, 0x00, 0x58, 0x3E,
+ 0xC1, 0x40, 0xEC, 0xBC, 0xAE, 0x1B, 0x04, 0xBE, 0x8D, 0xE1, 0x5D, 0xBE,
+ 0x52, 0x5C, 0x0B, 0xBF, 0x1C, 0x4F, 0x21, 0x3E, 0xDB, 0x08, 0x6B, 0xBC,
+ 0xA7, 0x1A, 0x2C, 0x3E, 0x43, 0xF2, 0x41, 0xBE, 0x3E, 0xB3, 0x2B, 0xBD,
+ 0xEB, 0x03, 0x53, 0xBE, 0xF1, 0x4A, 0x90, 0xBE, 0x8C, 0x3B, 0x48, 0x3C,
+ 0x91, 0xA5, 0x92, 0xBE, 0x81, 0xC0, 0xFD, 0xBD, 0xC1, 0xF8, 0x9B, 0x3E,
+ 0xAE, 0x65, 0x81, 0xBE, 0x03, 0xFE, 0xA0, 0xBE, 0xBF, 0x65, 0x00, 0x3F,
+ 0x83, 0xD2, 0x8D, 0xBE, 0x93, 0xB3, 0xE4, 0xBD, 0xCA, 0x01, 0x48, 0x3C,
+ 0x95, 0x3B, 0xE5, 0xBD, 0xF8, 0x90, 0x41, 0xBE, 0xE8, 0xD7, 0xF5, 0xBE,
+ 0xD8, 0x9F, 0xE6, 0xBC, 0x9A, 0x18, 0x27, 0xBE, 0x76, 0xD5, 0xFC, 0x3E,
+ 0x0E, 0x22, 0x90, 0xBA, 0x96, 0x9F, 0x1C, 0xBD, 0xFD, 0x7C, 0x19, 0x3D,
+ 0xE1, 0xD9, 0x9A, 0x3D, 0x09, 0xD1, 0x1E, 0xBE, 0x68, 0xF3, 0x37, 0x3F,
+ 0xD4, 0xD8, 0x24, 0x3B, 0x86, 0x42, 0xA7, 0xBE, 0x82, 0xEB, 0xCE, 0xBE,
+ 0x91, 0x8A, 0xBB, 0x3C, 0x14, 0x02, 0xF5, 0xBD, 0x48, 0xE9, 0xF6, 0xBC,
+ 0x79, 0x73, 0x33, 0xBE, 0xA9, 0x87, 0xA0, 0xBE, 0xB7, 0xC2, 0x3D, 0xBE,
+ 0x8E, 0x2B, 0x46, 0xBC, 0xF4, 0x23, 0x0D, 0x3E, 0xE8, 0x45, 0x36, 0x3D,
+ 0x69, 0x49, 0x93, 0xBD, 0x4A, 0x96, 0x2F, 0x3E, 0x5D, 0x33, 0xA0, 0xBD,
+ 0x7A, 0xD3, 0xE3, 0xBD, 0x8B, 0x63, 0x4D, 0x3F, 0xF5, 0xC0, 0x12, 0xBF,
+ 0xA4, 0x8F, 0xA6, 0xBE, 0x0C, 0xCD, 0x2B, 0xBD, 0xF1, 0xB1, 0x0A, 0xBD,
+ 0x7C, 0x61, 0x97, 0xBC, 0x0A, 0xD7, 0x7A, 0x3D, 0x53, 0x5B, 0x4E, 0x3D,
+ 0x4C, 0xE6, 0x6D, 0x3E, 0xFC, 0xCE, 0x94, 0xBD, 0x36, 0xD1, 0xB2, 0x3B,
+ 0x46, 0xEB, 0xA6, 0x3D, 0x09, 0x06, 0xBC, 0x3D, 0xC3, 0xF0, 0xB9, 0x3C,
+ 0x1D, 0x2B, 0x00, 0xBC, 0xE7, 0x04, 0x58, 0xBE, 0x01, 0x4B, 0xBF, 0xBA,
+ 0xBE, 0xD5, 0xA0, 0xBD, 0x54, 0x1A, 0xFC, 0x3E, 0xBE, 0xDE, 0x1B, 0xBC,
+ 0xD1, 0xAD, 0x76, 0x3D, 0xBF, 0xC7, 0x25, 0x3E, 0x7E, 0xDE, 0x05, 0x3D,
+ 0x07, 0x1A, 0x94, 0xBC, 0x5D, 0x9C, 0x95, 0xBC, 0x39, 0x5F, 0xBB, 0xBE,
+ 0x29, 0xD5, 0x13, 0xBE, 0xC8, 0xB5, 0x09, 0xBD, 0xCA, 0x64, 0x40, 0xBE,
+ 0xB8, 0x86, 0xA7, 0xBD, 0xD8, 0x8D, 0xC1, 0x3B, 0x0B, 0x2F, 0x35, 0x3D,
+ 0xF4, 0x15, 0xB1, 0xBD, 0x8E, 0xDA, 0xA2, 0x3D, 0xA8, 0x26, 0xBF, 0x3D,
+ 0x8E, 0x8D, 0xC7, 0x3C, 0x5D, 0x8F, 0x3C, 0xBD, 0x0B, 0x93, 0x3E, 0xBC,
+ 0xC8, 0xD5, 0xA6, 0xBD, 0xF4, 0x54, 0x30, 0xBD, 0x2D, 0xE5, 0x28, 0x3E,
+ 0x0A, 0x0D, 0x3D, 0xBD, 0x5C, 0x25, 0x01, 0xBB, 0x66, 0x02, 0xCB, 0x3C,
+ 0x2D, 0xE5, 0xB5, 0x3D, 0xD0, 0x53, 0xA3, 0x3C, 0x29, 0x42, 0xF1, 0x3B,
+ 0x93, 0x2C, 0x25, 0x3C, 0x88, 0xB4, 0xA0, 0xBC, 0x27, 0x0F, 0x16, 0x3D,
+ 0x99, 0xF6, 0xEB, 0xBC, 0xA6, 0xCC, 0x02, 0x3D, 0xB8, 0xF3, 0xD4, 0x3A,
+ 0x9C, 0x41, 0x03, 0x3E, 0xCB, 0x37, 0xEA, 0xBD, 0xB6, 0x42, 0x05, 0x3E,
+ 0x13, 0x11, 0x07, 0x3E, 0x00, 0x6C, 0xD2, 0x3B, 0xC7, 0x2B, 0xFD, 0xBD,
+ 0x97, 0xF0, 0xB6, 0x3C, 0x05, 0x79, 0x63, 0x3E, 0x8A, 0xA4, 0xE4, 0x3D,
+ 0x18, 0xA5, 0x01, 0xBE, 0x69, 0x33, 0x26, 0x3C, 0x96, 0xBB, 0x22, 0x3F,
+ 0x43, 0x1C, 0x8A, 0x3D, 0x75, 0x24, 0xF1, 0x3E, 0x40, 0xF4, 0xC2, 0x3E,
+ 0x2E, 0x6A, 0x0A, 0xBF, 0x89, 0x6B, 0x6D, 0x3E, 0x26, 0xE0, 0x58, 0x3E,
+ 0x51, 0xD7, 0xDC, 0xBC, 0x7E, 0x29, 0xD5, 0x3E, 0xB5, 0x4D, 0x67, 0xBD,
+ 0xD8, 0xF7, 0xB2, 0x3E, 0x92, 0x30, 0x87, 0xBE, 0xB2, 0x75, 0xCD, 0x3F,
+ 0x0D, 0x18, 0xC9, 0xBE, 0x09, 0x75, 0x82, 0x3E, 0x0F, 0xFC, 0x96, 0x3D,
+ 0xE2, 0x71, 0x68, 0x3E, 0x5A, 0xC3, 0x57, 0x3F, 0x9B, 0xDD, 0xF4, 0xBD,
+ 0x61, 0x96, 0x26, 0xBE, 0x15, 0x1A, 0xE1, 0x3C, 0xE9, 0x32, 0x36, 0xBF,
+ 0x7D, 0x06, 0xCE, 0x3E, 0x7B, 0x3E, 0xE0, 0x3E, 0x1A, 0x90, 0xA1, 0x3D,
+ 0xDF, 0xEA, 0x85, 0xBD, 0x58, 0xA0, 0x14, 0xBF, 0x8A, 0xF2, 0xB2, 0x3E,
+ 0x57, 0xFF, 0xB3, 0xBE, 0xCB, 0x61, 0x95, 0xBE, 0x43, 0x81, 0x08, 0x3E,
+ 0x1E, 0xF3, 0x3A, 0x3D, 0x94, 0x39, 0x88, 0xBF, 0xC4, 0xE9, 0x58, 0xBC,
+ 0x69, 0xDC, 0x68, 0x3E, 0x36, 0x17, 0xFB, 0xBD, 0xE5, 0xF3, 0x64, 0x3D,
+ 0xF8, 0x95, 0xDD, 0x3D, 0x42, 0xAD, 0xEC, 0x3E, 0x86, 0x98, 0xDA, 0xBC,
+ 0xB0, 0x1A, 0xA0, 0x3D, 0x8D, 0xE8, 0xA1, 0xBD, 0x06, 0x77, 0x81, 0x3C,
+ 0x9C, 0xAF, 0x08, 0x3E, 0xC1, 0x4F, 0x3D, 0xBE, 0xB4, 0x4B, 0x8C, 0xBB,
+ 0x39, 0x0E, 0xB0, 0x3D, 0x07, 0xAC, 0x9A, 0x3D, 0xD3, 0x6E, 0xD5, 0x3B,
+ 0x9E, 0xFD, 0x78, 0x3E, 0xF8, 0xA4, 0x8D, 0xBD, 0xBA, 0xD3, 0x76, 0xBC,
+ 0xAE, 0xDB, 0x32, 0x3E, 0xB1, 0x60, 0x22, 0x3C, 0xA9, 0x09, 0x12, 0x3D,
+ 0x4D, 0x7D, 0x88, 0xBF, 0xC2, 0x7C, 0x62, 0xBC, 0x8E, 0x18, 0xE0, 0xBD,
+ 0x6C, 0xFD, 0xD4, 0x3D, 0x65, 0xAE, 0xB5, 0x3C, 0x88, 0xCA, 0x9E, 0x3D,
+ 0x14, 0x2E, 0xD0, 0x3E, 0x01, 0x20, 0x86, 0xBC, 0xB5, 0x24, 0x7B, 0xBE,
+ 0x94, 0xAA, 0x04, 0x3F, 0x11, 0xB1, 0x66, 0x3F, 0xED, 0x95, 0x30, 0xBE,
+ 0x6F, 0xE4, 0x58, 0xBD, 0xC8, 0x79, 0xFB, 0x3D, 0xFA, 0x06, 0xBC, 0x3E,
+ 0xA5, 0x18, 0x06, 0x3F, 0xD2, 0x82, 0x86, 0xBD, 0x7C, 0x02, 0xDA, 0xBE,
+ 0x3F, 0x48, 0xC2, 0x3C, 0x5B, 0xBC, 0xD6, 0xBA, 0x92, 0x93, 0x11, 0xBE,
+ 0x01, 0x5A, 0x36, 0x3E, 0xB2, 0x40, 0x38, 0x3E, 0x7A, 0x24, 0xC4, 0xBD,
+ 0xAC, 0x40, 0x56, 0x3D, 0x10, 0xAC, 0xDB, 0xBB, 0xD5, 0xD4, 0xE5, 0x3D,
+ 0x64, 0x51, 0x38, 0xBE, 0x4D, 0x04, 0x44, 0x3B, 0x42, 0xCA, 0xE8, 0xBD,
+ 0x3F, 0x41, 0x68, 0xBD, 0x59, 0x51, 0xB5, 0x3E, 0xDE, 0x0D, 0x6D, 0x3E,
+ 0xB3, 0x42, 0x97, 0x3C, 0x1B, 0xE6, 0x61, 0x3F, 0x39, 0x20, 0x94, 0x3E,
+ 0x7B, 0xB0, 0xA3, 0xBD, 0x8F, 0xFB, 0x7C, 0xBE, 0x96, 0xF8, 0x56, 0x3C,
+ 0x01, 0x6C, 0x9C, 0x3D, 0xD7, 0xB1, 0xD8, 0xBD, 0xFE, 0x4D, 0xC6, 0xBD,
+ 0x22, 0x24, 0x3C, 0xBE, 0x68, 0xFE, 0x82, 0x3E, 0x1C, 0xF4, 0x8E, 0x3D,
+ 0x38, 0x6F, 0x7E, 0xBD, 0x37, 0x34, 0x86, 0xBD, 0x18, 0x02, 0x6F, 0x3D,
+ 0x60, 0x64, 0x67, 0xBD, 0xB2, 0xCA, 0x51, 0xBC, 0x22, 0x5C, 0x1A, 0x3E,
+ 0x92, 0xDA, 0x1E, 0x3A, 0xED, 0x10, 0x32, 0xBD, 0xCF, 0xCE, 0xDE, 0xBC,
+ 0x94, 0x8B, 0x9F, 0x3D, 0xF4, 0xE6, 0xA7, 0xBC, 0xA7, 0x6A, 0xA9, 0xBD,
+ 0x82, 0x10, 0x62, 0x3B, 0xD7, 0xA4, 0x88, 0xBD, 0xB7, 0xD0, 0x73, 0x3E,
+ 0x18, 0x2F, 0xDD, 0xBB, 0xBB, 0xC2, 0x91, 0xBD, 0x74, 0x05, 0x2F, 0xBD,
+ 0x8D, 0xAB, 0x73, 0xBE, 0x99, 0x10, 0x48, 0x3E, 0x7C, 0x84, 0xD6, 0x3C,
+ 0xBC, 0x03, 0x8D, 0x3D, 0x39, 0x63, 0x0C, 0x3D, 0x06, 0xC7, 0x96, 0x3C,
+ 0xF1, 0x4D, 0xE1, 0xBD, 0xF8, 0x4E, 0x49, 0x3D, 0x05, 0xC7, 0x8A, 0xBD,
+ 0x96, 0x79, 0xA6, 0x3E, 0xAE, 0xE9, 0x5A, 0xBD, 0x0A, 0xB9, 0xEC, 0x3D,
+ 0xC1, 0x26, 0xB2, 0x3E, 0x5A, 0x56, 0x62, 0xBD, 0x34, 0x9A, 0x84, 0x3D,
+ 0xB9, 0x6C, 0x67, 0xBD, 0x90, 0x20, 0xBE, 0xBE, 0x62, 0xBF, 0x0E, 0xBE,
+ 0x16, 0xE5, 0x1F, 0xBF, 0xF0, 0xC0, 0xAC, 0x3E, 0x1E, 0x7F, 0xA5, 0xBD,
+ 0xB6, 0x0D, 0xC0, 0x3D, 0x0D, 0xAD, 0x1B, 0xBF, 0x02, 0x71, 0x79, 0x3E,
+ 0xC1, 0x20, 0xDF, 0xBE, 0x91, 0x92, 0xC0, 0x3E, 0xD0, 0x18, 0xBE, 0xBD,
+ 0xB0, 0x5E, 0x94, 0x3E, 0x4C, 0x3A, 0xDE, 0x3E, 0xB3, 0x7C, 0x8A, 0xBD,
+ 0x3D, 0xAB, 0xF3, 0xBE, 0x77, 0x45, 0xF9, 0x3E, 0xFE, 0xDB, 0x32, 0xBE,
+ 0xCB, 0x54, 0x51, 0x3F, 0x5E, 0xC0, 0x7F, 0x3D, 0x0A, 0x18, 0x39, 0x3E,
+ 0x91, 0x39, 0x1E, 0xBF, 0x1B, 0x89, 0xA8, 0x3C, 0xE6, 0x4E, 0x7A, 0x3F,
+ 0xD2, 0x18, 0x0A, 0x3E, 0xB4, 0x9D, 0x89, 0xBE, 0xA5, 0xC7, 0x10, 0xBD,
+ 0x3A, 0x76, 0x65, 0xBD, 0xA0, 0x09, 0xFD, 0x3D, 0xD6, 0x87, 0xA6, 0x3D,
+ 0xAE, 0x42, 0x60, 0xBC, 0x66, 0x03, 0xA8, 0x3C, 0x03, 0x8F, 0x43, 0x3D,
+ 0x25, 0x12, 0xD7, 0x3C, 0xAE, 0x56, 0x28, 0xBD, 0x13, 0xBD, 0x0D, 0xBD,
+ 0x7A, 0xD7, 0x09, 0xBD, 0xD6, 0x9C, 0x02, 0xBD, 0x28, 0xDB, 0x44, 0xBD,
+ 0x88, 0x13, 0x03, 0x3E, 0xE0, 0x6C, 0x44, 0x3C, 0xF9, 0x47, 0x03, 0xBA,
+ 0x43, 0x0F, 0x80, 0x3C, 0x39, 0xD6, 0xD0, 0x3C, 0x7A, 0x99, 0x31, 0x3C,
+ 0xA1, 0x72, 0xFD, 0x3C, 0xD6, 0x45, 0x89, 0x3C, 0x7C, 0x51, 0x0F, 0xBC,
+ 0x39, 0xBD, 0x62, 0xBD, 0x17, 0x96, 0x72, 0x3D, 0xF9, 0xC1, 0xE7, 0x3D,
+ 0x1C, 0x5B, 0xDD, 0x3C, 0x1A, 0xB7, 0xC7, 0x3C, 0xA9, 0xC1, 0x4D, 0xBD,
+ 0x68, 0x1C, 0x48, 0x3D, 0x81, 0xD1, 0x80, 0x3C, 0x60, 0x05, 0xC4, 0x3D,
+ 0xAC, 0xF7, 0x98, 0x3C, 0x4B, 0xD7, 0x86, 0x3E, 0xB2, 0xC4, 0x69, 0xBD,
+ 0x7A, 0x20, 0x93, 0x3B, 0xD2, 0x8D, 0x89, 0x3F, 0x60, 0x5B, 0xAF, 0xBD,
+ 0xAD, 0x74, 0x42, 0x3E, 0xF6, 0x31, 0x80, 0x3E, 0x9A, 0xF4, 0xC5, 0x3E,
+ 0x79, 0x56, 0x1B, 0x3E, 0xE2, 0x7E, 0x20, 0xBD, 0x71, 0x85, 0xC6, 0xBD,
+ 0xA9, 0x8F, 0x1A, 0xBD, 0x17, 0xE6, 0x2E, 0x3E, 0x07, 0x55, 0x4A, 0x3E,
+ 0xA2, 0x4C, 0x07, 0x3D, 0x24, 0x87, 0x68, 0x3B, 0xB3, 0x6E, 0x98, 0x3D,
+ 0xC3, 0xBF, 0x74, 0xBC, 0xD2, 0x10, 0xA3, 0x3D, 0x8A, 0x82, 0x48, 0xBE,
+ 0x36, 0xF5, 0x82, 0xBD, 0xF2, 0x66, 0x06, 0x3E, 0xA0, 0x3F, 0x13, 0x3E,
+ 0x99, 0x16, 0x5B, 0x3D, 0x74, 0xA7, 0x17, 0x3F, 0xAF, 0xE1, 0x96, 0x3E,
+ 0x1A, 0x95, 0x38, 0x3E, 0x6D, 0x9C, 0xAA, 0x3E, 0x13, 0xC7, 0x30, 0x3D,
+ 0xA9, 0x92, 0x7F, 0x3E, 0x4A, 0x52, 0x64, 0x3E, 0x17, 0x5B, 0xDE, 0x3D,
+ 0xAC, 0x07, 0x6A, 0xBD, 0x62, 0x83, 0x98, 0xBC, 0xC0, 0x6C, 0x5F, 0xBC,
+ 0x67, 0x5D, 0x09, 0xBE, 0xE2, 0x28, 0x33, 0xBD, 0x51, 0x3E, 0xA8, 0xBC,
+ 0xFE, 0x23, 0x2E, 0xBD, 0xD2, 0x96, 0x84, 0x3B, 0x9A, 0x0C, 0x20, 0x3D,
+ 0x06, 0x9F, 0x66, 0x3D, 0x5D, 0xE6, 0x0D, 0xBC, 0xBE, 0x3C, 0x64, 0x3C,
+ 0x7A, 0x4B, 0xB7, 0x3C, 0x5C, 0x6D, 0xA7, 0x3D, 0xCA, 0x03, 0xD4, 0xBC,
+ 0xFD, 0x92, 0x62, 0x3C, 0x2C, 0x4F, 0xE5, 0xBC, 0x9E, 0x09, 0x0D, 0xBC,
+ 0x99, 0x32, 0x88, 0xBD, 0x7B, 0x67, 0x83, 0xBD, 0xD3, 0x02, 0x66, 0x3B,
+ 0xEA, 0xCB, 0x34, 0xBD, 0x84, 0x82, 0x37, 0x3D, 0x27, 0x46, 0xAD, 0x3B,
+ 0xE1, 0x3C, 0x69, 0xBD, 0x87, 0x7D, 0x0E, 0xBD, 0xAE, 0xCC, 0xA0, 0xBC,
+ 0x6A, 0xDD, 0xAE, 0xBD, 0xA1, 0xC3, 0x5F, 0xBD, 0x41, 0x71, 0x77, 0xBE,
+ 0x0F, 0xB2, 0x9E, 0xBB, 0xBC, 0x78, 0x0A, 0x3D, 0x05, 0xD0, 0xA4, 0x3E,
+ 0x31, 0xE6, 0x05, 0xBF, 0x6B, 0x52, 0x6C, 0x3E, 0x2F, 0xC6, 0xCB, 0xBE,
+ 0x66, 0xA2, 0xC5, 0x3D, 0x99, 0x32, 0x06, 0xBE, 0x08, 0x29, 0x67, 0xBE,
+ 0x02, 0xDB, 0x4B, 0xBE, 0xD1, 0x09, 0x26, 0xBD, 0x01, 0xAC, 0xA5, 0xBE,
+ 0xD7, 0x72, 0x95, 0x3E, 0x53, 0x93, 0x89, 0x3B, 0x01, 0xDD, 0x26, 0x3E,
+ 0xC7, 0x9C, 0x94, 0x3E, 0x99, 0xA1, 0xA7, 0x3E, 0x5D, 0xDB, 0x9C, 0xBC,
+ 0xC8, 0xB6, 0xA0, 0xBE, 0xD8, 0x16, 0x60, 0xBC, 0x6C, 0x99, 0x2A, 0x3F,
+ 0x8E, 0x1C, 0xCD, 0x3E, 0xE8, 0x3F, 0x52, 0x3C, 0xDA, 0xD1, 0x01, 0xBD,
+ 0xED, 0xA4, 0x69, 0xBE, 0xB7, 0xF4, 0x4C, 0xBE, 0x64, 0x32, 0xD4, 0x3D,
+ 0x59, 0xE9, 0x7B, 0xBE, 0x62, 0x6E, 0x66, 0xBE, 0x9F, 0x9C, 0x55, 0xBE,
+ 0x9A, 0x51, 0x85, 0x3D, 0xD9, 0xDC, 0x92, 0x3E, 0x0B, 0x6C, 0x95, 0xBE,
+ 0x86, 0x81, 0x03, 0xBE, 0xF4, 0xD0, 0x34, 0xBF, 0x7F, 0x1B, 0xAE, 0x3E,
+ 0x18, 0xEF, 0xB0, 0x3E, 0x90, 0x41, 0x8B, 0xBF, 0x79, 0x58, 0x98, 0x3E,
+ 0x94, 0x32, 0xD0, 0x3E, 0x26, 0xAA, 0x08, 0xBE, 0x08, 0x40, 0x38, 0x3F,
+ 0x9C, 0xA7, 0xC5, 0x3E, 0x5C, 0x93, 0xDB, 0xBE, 0x7F, 0xD4, 0x60, 0x3E,
+ 0xA3, 0x5D, 0x9E, 0xBC, 0x25, 0x55, 0x91, 0x3E, 0x57, 0x3A, 0xAF, 0x3F,
+ 0x55, 0xC2, 0x4A, 0x3E, 0x48, 0x15, 0x42, 0x3E, 0x6D, 0x2A, 0xC9, 0xBE,
+ 0x9C, 0xB2, 0xC5, 0xBC, 0xF2, 0xC8, 0xA2, 0x3E, 0x79, 0xCF, 0x02, 0xBF,
+ 0xAE, 0xDB, 0x00, 0xBE, 0xB0, 0xDA, 0xBF, 0x3E, 0xE7, 0x37, 0x85, 0xBF,
+ 0xC6, 0x7E, 0x17, 0x3F, 0xCA, 0xC8, 0x21, 0xBF, 0x48, 0xAE, 0xA9, 0x3D,
+ 0xD3, 0x03, 0x02, 0xBE, 0xE3, 0x81, 0x12, 0x3F, 0x84, 0x45, 0x52, 0x3E,
+ 0x0C, 0xF0, 0x58, 0xBB, 0x7E, 0x25, 0xA4, 0xBD, 0x2F, 0x25, 0x97, 0x3E,
+ 0x8D, 0xE3, 0x61, 0x3E, 0xE3, 0x5C, 0xE9, 0xBE, 0x7D, 0xC4, 0x3B, 0xBF,
+ 0xCD, 0x62, 0xB9, 0x3E, 0x1E, 0xA4, 0xF5, 0xBE, 0x18, 0x1D, 0xFF, 0xBE,
+ 0x73, 0x22, 0xE9, 0x3C, 0x33, 0x83, 0x17, 0xBF, 0xC9, 0x47, 0x9D, 0xBD,
+ 0x8D, 0xDB, 0x43, 0x3F, 0xD8, 0x1C, 0xED, 0xBA, 0x0E, 0x80, 0xB0, 0x3E,
+ 0xB4, 0x7A, 0x2B, 0xBF, 0xEE, 0xDD, 0x0C, 0x40, 0x12, 0x3A, 0x7E, 0x3F,
+ 0x46, 0x72, 0x78, 0x3E, 0xCA, 0xE0, 0x97, 0xBD, 0x99, 0x53, 0xB0, 0x3E,
+ 0xC2, 0xF4, 0x07, 0x3F, 0x3D, 0x63, 0xD0, 0xBE, 0x56, 0x32, 0xD4, 0xBD,
+ 0x0B, 0x16, 0xF7, 0xBD, 0xEE, 0x5F, 0x8D, 0xBF, 0xE5, 0xBC, 0x7E, 0xBE,
+ 0x5C, 0x43, 0xE9, 0x3D, 0x2F, 0x66, 0x63, 0xBF, 0x2D, 0x08, 0x79, 0xBE,
+ 0x85, 0x26, 0x4F, 0x3E, 0x56, 0x7C, 0xC5, 0x3E, 0x73, 0x12, 0x33, 0x3E,
+ 0xA8, 0x19, 0x7D, 0x3F, 0x20, 0x5F, 0x17, 0x3F, 0x20, 0x8D, 0xF8, 0xBD,
+ 0x51, 0xDD, 0x13, 0xBE, 0xC5, 0x83, 0x03, 0x3F, 0x4A, 0xB7, 0x21, 0x3E,
+ 0xEA, 0xF7, 0x20, 0x3E, 0x0E, 0x42, 0x94, 0x3E, 0xC1, 0x49, 0x32, 0x3E,
+ 0x68, 0x0F, 0xC0, 0xBE, 0x01, 0x46, 0xF0, 0xBD, 0xEB, 0x47, 0xE4, 0xBD,
+ 0xEC, 0x3F, 0x3E, 0x3E, 0x3A, 0x11, 0xCB, 0x3C, 0x1B, 0x70, 0x4D, 0xBD,
+ 0x9B, 0xE6, 0x00, 0x3F, 0xF7, 0x5D, 0x98, 0x3B, 0x4E, 0xCE, 0x2F, 0x3E,
+ 0x5E, 0x05, 0x09, 0x3E, 0x0D, 0x94, 0x87, 0xBC, 0x2C, 0x6A, 0x81, 0x3E,
+ 0x1F, 0xF2, 0x64, 0x3E, 0xDA, 0x02, 0x8A, 0x3C, 0xA6, 0x01, 0x8D, 0xBE,
+ 0x0A, 0x2C, 0xC6, 0x3E, 0xC9, 0x66, 0x11, 0xBE, 0x78, 0x4A, 0x93, 0x3E,
+ 0x3E, 0x12, 0xC5, 0xBD, 0xE7, 0x9F, 0x37, 0x3E, 0xA5, 0x28, 0x20, 0x3E,
+ 0x37, 0x90, 0x1B, 0xBD, 0x18, 0xA9, 0x6F, 0x3E, 0x0F, 0x7C, 0xD9, 0xBE,
+ 0x6B, 0xF8, 0xDF, 0xBE, 0x2A, 0x0B, 0x0A, 0x05, 0x64, 0x74, 0x79, 0x70,
+ 0x65, 0x12, 0x02, 0x30, 0x01, 0x0A, 0xB8, 0x01, 0x0A, 0x07, 0x43, 0x6F,
+ 0x6E, 0x73, 0x74, 0x5F, 0x34, 0x12, 0x05, 0x43, 0x6F, 0x6E, 0x73, 0x74,
+ 0x2A, 0x98, 0x01, 0x0A, 0x05, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x12, 0x8E,
+ 0x01, 0x42, 0x8B, 0x01, 0x08, 0x01, 0x12, 0x04, 0x12, 0x02, 0x08, 0x20,
+ 0x22, 0x80, 0x01, 0xF9, 0xEE, 0xAD, 0x3E, 0x9C, 0x09, 0x6E, 0xBE, 0x94,
+ 0xC1, 0x82, 0xBF, 0x87, 0xD0, 0x67, 0xBE, 0xF7, 0x74, 0xBC, 0x3D, 0x2F,
+ 0x09, 0x44, 0x3E, 0x99, 0xC8, 0xAF, 0xBF, 0x41, 0x0F, 0xDA, 0xBF, 0xD8,
+ 0xE9, 0x29, 0xBF, 0x17, 0xAC, 0xAA, 0xBD, 0x3C, 0x6F, 0xE4, 0x3E, 0x61,
+ 0x8B, 0x9D, 0xBD, 0x2B, 0x82, 0x14, 0x3F, 0xB5, 0xA4, 0x36, 0xBF, 0x32,
+ 0x12, 0xAA, 0x3E, 0x6D, 0x9C, 0x2C, 0xBF, 0x34, 0xAD, 0xF8, 0xBE, 0x05,
+ 0x77, 0x09, 0xBE, 0x21, 0x6B, 0x96, 0xBF, 0xC8, 0x22, 0x10, 0x3F, 0x85,
+ 0x0C, 0xBB, 0x3E, 0xA0, 0x51, 0x25, 0x3F, 0x4E, 0x00, 0x4F, 0x3E, 0x72,
+ 0xB0, 0x1E, 0x3D, 0x6E, 0x05, 0xE6, 0x3E, 0x8E, 0x11, 0xC8, 0x3D, 0xB6,
+ 0x37, 0x7E, 0xBF, 0x24, 0x56, 0x62, 0xBF, 0x9E, 0x67, 0x3C, 0xBE, 0xCA,
+ 0xDA, 0x32, 0x3F, 0xAA, 0xB1, 0x24, 0xBE, 0xD1, 0x47, 0x44, 0xBE, 0x2A,
+ 0x0B, 0x0A, 0x05, 0x64, 0x74, 0x79, 0x70, 0x65, 0x12, 0x02, 0x30, 0x01,
+ 0x0A, 0xC4, 0x24, 0x0A, 0x07, 0x43, 0x6F, 0x6E, 0x73, 0x74, 0x5F, 0x35,
+ 0x12, 0x05, 0x43, 0x6F, 0x6E, 0x73, 0x74, 0x2A, 0x0B, 0x0A, 0x05, 0x64,
+ 0x74, 0x79, 0x70, 0x65, 0x12, 0x02, 0x30, 0x01, 0x2A, 0xA4, 0x24, 0x0A,
+ 0x05, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x12, 0x9A, 0x24, 0x42, 0x97, 0x24,
+ 0x08, 0x01, 0x12, 0x10, 0x12, 0x02, 0x08, 0x03, 0x12, 0x02, 0x08, 0x03,
+ 0x12, 0x02, 0x08, 0x20, 0x12, 0x02, 0x08, 0x04, 0x22, 0x80, 0x24, 0x82,
+ 0x3B, 0xFB, 0xBB, 0x74, 0x40, 0xD6, 0x3B, 0x62, 0xF5, 0xE9, 0xBC, 0xF4,
+ 0x41, 0x59, 0x3C, 0xA8, 0x6E, 0x10, 0x3E, 0x4F, 0xFD, 0xF9, 0xBC, 0xA1,
+ 0x02, 0x68, 0xBD, 0x07, 0xEE, 0x49, 0xBE, 0xD4, 0x21, 0x3B, 0x3B, 0x41,
+ 0xF5, 0x30, 0x3D, 0x2C, 0xC1, 0xA9, 0xBB, 0xD9, 0x30, 0x91, 0x3B, 0xD6,
+ 0x1D, 0x3D, 0x3D, 0x79, 0x73, 0x11, 0x3B, 0x4B, 0xB6, 0x03, 0xBD, 0x6C,
+ 0x57, 0xF5, 0xBC, 0xC9, 0xF8, 0xAB, 0x3D, 0x0C, 0x59, 0x0F, 0x3E, 0x85,
+ 0x95, 0x9E, 0x3C, 0x44, 0x2E, 0x1C, 0x3D, 0x42, 0xC5, 0xA9, 0xBD, 0x81,
+ 0xC7, 0x9D, 0x3C, 0x62, 0x24, 0x35, 0x3E, 0x17, 0x00, 0x19, 0x3D, 0xF7,
+ 0xCB, 0x67, 0xBC, 0x3D, 0x84, 0xBE, 0xBC, 0xD7, 0x71, 0x27, 0x3D, 0x6D,
+ 0x39, 0x64, 0x3A, 0xF8, 0x68, 0x3C, 0xBD, 0xB9, 0x43, 0xC2, 0x3B, 0x27,
+ 0x39, 0xA0, 0x3B, 0x09, 0x98, 0x2B, 0x3C, 0x82, 0x4C, 0xD4, 0xBD, 0x07,
+ 0x2F, 0x2F, 0x3D, 0xDC, 0x33, 0xF9, 0x3C, 0x0D, 0x8C, 0x93, 0xBB, 0x4B,
+ 0x1A, 0x52, 0xBD, 0xED, 0x5A, 0x30, 0x3D, 0xEB, 0xB4, 0x53, 0x3C, 0x24,
+ 0x52, 0x9E, 0x3C, 0x7E, 0x45, 0xAE, 0x3C, 0x24, 0xCB, 0x39, 0x3C, 0x3D,
+ 0x82, 0x06, 0xBD, 0x87, 0xF7, 0xEC, 0x3B, 0x58, 0xA0, 0x44, 0x3C, 0x78,
+ 0x2E, 0x4E, 0xBD, 0x20, 0x6A, 0xC5, 0xBB, 0x4A, 0xFD, 0x07, 0x3C, 0x94,
+ 0xA6, 0x9A, 0x3D, 0x06, 0x6E, 0xCA, 0xBD, 0x0A, 0xC5, 0xFA, 0x3C, 0x9A,
+ 0x4B, 0xA9, 0xBC, 0xA6, 0x63, 0x0C, 0x3D, 0x2B, 0x13, 0x3B, 0xBD, 0x8E,
+ 0xF0, 0xEB, 0xBC, 0x96, 0xC8, 0x4B, 0x3D, 0xAB, 0x49, 0x72, 0x3A, 0x9A,
+ 0x16, 0x9E, 0xBC, 0x2D, 0xB6, 0x28, 0x3B, 0x7D, 0x14, 0xBB, 0x3A, 0x4B,
+ 0xB7, 0x21, 0x3D, 0x26, 0xC9, 0xFD, 0x3B, 0x2B, 0x18, 0x14, 0xBD, 0x1D,
+ 0xC1, 0x47, 0xBD, 0x35, 0xD0, 0xAA, 0xBD, 0x23, 0xF3, 0x17, 0xBC, 0x9C,
+ 0x3B, 0xC9, 0x3D, 0x6E, 0x45, 0x90, 0x3D, 0x7C, 0xAC, 0x19, 0xBC, 0xA2,
+ 0xD5, 0xB4, 0xBD, 0xAC, 0xFF, 0xD7, 0x3B, 0xA0, 0x59, 0x2B, 0xBC, 0x04,
+ 0x80, 0x07, 0xB9, 0x6D, 0x5D, 0xD4, 0x3B, 0xC4, 0x8E, 0x11, 0xBD, 0x13,
+ 0x20, 0x15, 0x3C, 0xE9, 0x9D, 0xB3, 0x3D, 0x12, 0x85, 0x6C, 0x3C, 0xBC,
+ 0xBC, 0x89, 0xBD, 0xC8, 0x27, 0x17, 0xBD, 0x46, 0xBB, 0x9B, 0xBC, 0x9B,
+ 0xE5, 0x36, 0x3D, 0x99, 0x20, 0x76, 0x3B, 0xB2, 0xBF, 0xF8, 0xB9, 0x08,
+ 0x41, 0xC7, 0x3C, 0x72, 0x21, 0x00, 0xBE, 0xA0, 0xCC, 0x5D, 0x3C, 0x21,
+ 0x68, 0x3F, 0xBD, 0x2C, 0x65, 0xD7, 0x3B, 0xB4, 0x7B, 0xC9, 0xBB, 0xD6,
+ 0x75, 0x3C, 0xBC, 0x42, 0xD7, 0x88, 0x3B, 0xAE, 0xB6, 0xAB, 0x3C, 0xDB,
+ 0x3E, 0x6C, 0x3B, 0xF4, 0xA1, 0xA8, 0xBB, 0x7E, 0x60, 0x9A, 0xBC, 0xE2,
+ 0x15, 0x0A, 0x3D, 0x90, 0xCD, 0x93, 0xBD, 0xF5, 0xAA, 0x8C, 0xBC, 0x76,
+ 0xD9, 0xD0, 0x3B, 0xA2, 0x13, 0xD7, 0xBD, 0x95, 0x50, 0x3C, 0x3E, 0x41,
+ 0x42, 0x82, 0xBD, 0x2E, 0x7B, 0x8B, 0x3D, 0x2F, 0xF9, 0x7E, 0xBC, 0x98,
+ 0x99, 0xF3, 0x3D, 0xB6, 0xFC, 0x0D, 0xBD, 0xC9, 0x43, 0xDC, 0x3D, 0xFA,
+ 0x22, 0xBC, 0xBD, 0x7F, 0x85, 0xAB, 0x3D, 0x78, 0x39, 0x35, 0xBD, 0xC1,
+ 0x2B, 0xC5, 0x3D, 0x3E, 0xD9, 0xEF, 0xBC, 0x33, 0xE9, 0xFD, 0xBC, 0x0C,
+ 0x2F, 0x2C, 0x3D, 0xD2, 0xF9, 0x30, 0x3D, 0x7B, 0x7B, 0x62, 0x3E, 0x3D,
+ 0x60, 0x1A, 0x3E, 0xC9, 0xE7, 0x47, 0x3E, 0x91, 0x14, 0x80, 0x3D, 0x4C,
+ 0x84, 0x5C, 0x3D, 0x5D, 0x2B, 0x89, 0xBD, 0x3D, 0xAA, 0x9D, 0x3C, 0xD4,
+ 0x11, 0x13, 0xBD, 0x14, 0x4F, 0xBA, 0xBD, 0xF5, 0xBC, 0x13, 0x3D, 0x67,
+ 0xA6, 0xB2, 0xBC, 0x1C, 0x55, 0x29, 0x3D, 0x72, 0x75, 0xB4, 0x3D, 0x18,
+ 0x8B, 0xA9, 0x3B, 0x4A, 0x2B, 0x0A, 0xBE, 0xC2, 0xEC, 0xF4, 0xBD, 0xF5,
+ 0xF8, 0x22, 0xBE, 0xDA, 0x67, 0x21, 0x3E, 0xC7, 0x6E, 0x39, 0xBE, 0xF2,
+ 0x66, 0xC2, 0x3D, 0x26, 0x67, 0x7D, 0x3D, 0xFB, 0xAE, 0xBF, 0xBD, 0x7E,
+ 0x5B, 0xE0, 0x3C, 0xE7, 0x14, 0x86, 0xBD, 0x40, 0x8C, 0x59, 0x3B, 0x29,
+ 0x40, 0x76, 0x3D, 0xB4, 0xD9, 0x69, 0xBD, 0xDA, 0xDA, 0x1D, 0xBD, 0x1F,
+ 0x38, 0xD1, 0xBE, 0x1E, 0x22, 0x4E, 0xBE, 0x06, 0x9D, 0xB8, 0xBE, 0x59,
+ 0xFC, 0x31, 0xBE, 0x24, 0xE8, 0x30, 0xBE, 0xF1, 0xB7, 0x75, 0xBE, 0xCE,
+ 0xFE, 0xD1, 0x3D, 0xA6, 0x8F, 0x73, 0x3E, 0xF3, 0x51, 0xF0, 0xBB, 0x99,
+ 0x7C, 0xED, 0xBB, 0xB1, 0x92, 0x82, 0x3D, 0x4F, 0x7A, 0xA0, 0x3D, 0x04,
+ 0xAE, 0x0D, 0x3D, 0x4D, 0x25, 0x80, 0xBD, 0x7A, 0x76, 0x3C, 0x3C, 0x04,
+ 0x17, 0xB4, 0x3B, 0xE4, 0xDE, 0xA4, 0xBE, 0xD1, 0x26, 0x84, 0xBE, 0x80,
+ 0xD8, 0x0C, 0x3E, 0x13, 0xAE, 0xEA, 0x3D, 0xDD, 0x8D, 0x9D, 0x3D, 0x4B,
+ 0xEB, 0xCD, 0xBD, 0x21, 0x42, 0xD1, 0x3C, 0xDD, 0x43, 0x57, 0xBC, 0x65,
+ 0x0B, 0xE7, 0x3D, 0xD8, 0x6D, 0x6D, 0x3D, 0x31, 0x44, 0xD8, 0xBD, 0xCB,
+ 0xD4, 0xD3, 0xBD, 0xAE, 0x8E, 0x51, 0x3E, 0x45, 0xDB, 0x82, 0x3E, 0x2F,
+ 0x5B, 0xD8, 0xBC, 0x0E, 0xFB, 0xB6, 0xBC, 0x01, 0xE7, 0xB1, 0xBD, 0xD2,
+ 0x4C, 0x16, 0x3D, 0x88, 0xF9, 0x54, 0xBA, 0x1E, 0x19, 0x4A, 0x3D, 0xD9,
+ 0x11, 0x9C, 0x3E, 0x75, 0x0B, 0x9A, 0x3E, 0x7D, 0x3C, 0x92, 0xBD, 0xBE,
+ 0xAC, 0xAE, 0xBD, 0x25, 0x15, 0x2D, 0xBD, 0x7F, 0xFD, 0xD6, 0x3B, 0x4A,
+ 0x7C, 0x8A, 0x3C, 0xA7, 0x87, 0x15, 0x3D, 0xD0, 0x11, 0x92, 0xBD, 0x29,
+ 0x74, 0x0A, 0x3D, 0x3C, 0x37, 0xC4, 0x3C, 0x39, 0x05, 0xBB, 0x3C, 0xE3,
+ 0x2C, 0x55, 0x3D, 0x09, 0xF4, 0xAA, 0xBD, 0x41, 0x59, 0xB8, 0xBD, 0xCD,
+ 0xAF, 0x11, 0x3D, 0x0E, 0xB5, 0x4F, 0x3E, 0xA8, 0xFF, 0x92, 0x3E, 0x34,
+ 0xD6, 0x6F, 0xBC, 0x46, 0xA7, 0x16, 0x3C, 0x66, 0x93, 0x9F, 0x3D, 0x04,
+ 0x3E, 0xB3, 0x3C, 0x9F, 0xD9, 0xDC, 0xBD, 0xDD, 0xF3, 0xD8, 0xBD, 0xC0,
+ 0x20, 0xB7, 0xBD, 0x69, 0x4B, 0x43, 0x3D, 0x1F, 0x09, 0x1D, 0x3D, 0x3E,
+ 0xCB, 0xA4, 0xBD, 0xD9, 0xDF, 0x9D, 0x3D, 0x82, 0x06, 0xAE, 0xBD, 0xD7,
+ 0xE1, 0x73, 0xBD, 0xF8, 0xB9, 0x16, 0x3B, 0x4B, 0xF2, 0x69, 0x3E, 0x3C,
+ 0xA9, 0x16, 0x3F, 0x84, 0x94, 0xC9, 0x3E, 0x1C, 0x71, 0x9D, 0x3E, 0x8B,
+ 0x80, 0x42, 0x3D, 0x1C, 0x2D, 0xBD, 0x3C, 0xA4, 0xEC, 0x81, 0xBD, 0x35,
+ 0xC9, 0x64, 0xBD, 0x67, 0x25, 0x15, 0x3C, 0xD7, 0x92, 0x1D, 0x3D, 0xFB,
+ 0x5A, 0xCA, 0xBD, 0x8E, 0x86, 0x70, 0xBC, 0xB7, 0x20, 0x03, 0xBE, 0x98,
+ 0x74, 0x25, 0x3E, 0x41, 0xEC, 0x25, 0xBD, 0x25, 0xE5, 0xF5, 0x3C, 0xF4,
+ 0x7F, 0xFF, 0x3D, 0xB4, 0x67, 0x2D, 0x3C, 0x8B, 0x48, 0x1D, 0xBE, 0x16,
+ 0xAF, 0x37, 0xBE, 0xEE, 0x16, 0xBC, 0xBC, 0x8D, 0xAD, 0x83, 0xBE, 0xDB,
+ 0x4B, 0x90, 0x3E, 0x1D, 0xE0, 0x42, 0xBE, 0xCF, 0xD3, 0xAE, 0x3D, 0xF0,
+ 0x0B, 0x2F, 0xBD, 0xA4, 0x5A, 0xB7, 0x3D, 0xF5, 0x51, 0xE5, 0xBD, 0xB4,
+ 0xE3, 0x01, 0x3E, 0x5C, 0x66, 0xFD, 0x3D, 0xB2, 0x65, 0xBF, 0xBD, 0xB8,
+ 0x4C, 0x3D, 0xBD, 0x11, 0xCF, 0x40, 0x3E, 0x6B, 0xF5, 0x25, 0x3E, 0xFA,
+ 0x58, 0xEE, 0x3D, 0xA0, 0x3A, 0x15, 0x3E, 0x56, 0x78, 0xC3, 0xBD, 0x78,
+ 0xBB, 0xAA, 0x3D, 0x44, 0x79, 0x03, 0xBD, 0x87, 0xA6, 0x00, 0x3D, 0xF7,
+ 0xC1, 0xB0, 0x3E, 0x4B, 0xA6, 0x5A, 0x3E, 0x9E, 0xA6, 0x9E, 0x3E, 0x1C,
+ 0x5B, 0x7B, 0x3D, 0x78, 0x10, 0x44, 0xBC, 0x1C, 0x0D, 0x74, 0x3D, 0x23,
+ 0x29, 0xDC, 0xBC, 0x00, 0x58, 0xA2, 0xBD, 0xEA, 0x15, 0x2B, 0x3E, 0x7C,
+ 0xAC, 0x03, 0xBD, 0x2D, 0x29, 0x0C, 0x3E, 0x1E, 0x0A, 0xAA, 0xBD, 0x3B,
+ 0xD7, 0xDE, 0xBD, 0xE5, 0x51, 0xA2, 0x3D, 0xC1, 0xDF, 0x6B, 0xBD, 0xEE,
+ 0xF5, 0x79, 0x3D, 0x51, 0xF6, 0x02, 0x3C, 0xF8, 0xE9, 0xD3, 0xBA, 0xDC,
+ 0x9F, 0x5D, 0x3B, 0x27, 0xD3, 0x7E, 0xBC, 0x18, 0xB6, 0x63, 0x3E, 0x1C,
+ 0xA7, 0xB4, 0xBC, 0xB1, 0x45, 0x03, 0x3E, 0xAD, 0x3E, 0x7C, 0xBD, 0x01,
+ 0x96, 0x26, 0x3C, 0x68, 0x2E, 0x26, 0x3D, 0x0B, 0x5A, 0x56, 0xBC, 0xBB,
+ 0x5F, 0x6A, 0x3C, 0x54, 0xB3, 0x13, 0x3C, 0x93, 0x03, 0x80, 0x3C, 0x84,
+ 0x01, 0x48, 0xBC, 0x9D, 0xF2, 0xAC, 0x3C, 0x4D, 0xA9, 0x45, 0xBD, 0x18,
+ 0xF0, 0x76, 0x3C, 0x90, 0x10, 0x01, 0x3C, 0xDA, 0xE0, 0x01, 0xBB, 0x5D,
+ 0xA5, 0xF2, 0x3D, 0x7B, 0xD2, 0x87, 0xBD, 0x36, 0x00, 0x24, 0xBC, 0xF2,
+ 0x3C, 0x9D, 0x3D, 0x29, 0x62, 0x81, 0xBD, 0xFD, 0x99, 0xA2, 0x3D, 0x46,
+ 0x13, 0x62, 0xBD, 0xC6, 0xC9, 0x1C, 0x3C, 0xFF, 0xAA, 0x20, 0xBC, 0x26,
+ 0x5D, 0x58, 0x3D, 0x01, 0xBC, 0x75, 0xBC, 0x40, 0x8A, 0x72, 0xBD, 0x01,
+ 0x33, 0x38, 0xBD, 0x07, 0x5E, 0x02, 0xBD, 0x6F, 0xA9, 0x36, 0x3C, 0xAB,
+ 0xEC, 0xCF, 0x3B, 0x5A, 0xCD, 0x03, 0x3D, 0x28, 0xA9, 0x3B, 0x3D, 0xB0,
+ 0x46, 0x49, 0xBD, 0x81, 0x5E, 0x14, 0xBD, 0xDA, 0xD3, 0x46, 0xBD, 0xC5,
+ 0x96, 0x1D, 0x3D, 0xA4, 0x40, 0xF1, 0x3C, 0x3A, 0xF5, 0xF8, 0xBC, 0x16,
+ 0xFC, 0x4F, 0xBC, 0x0D, 0x34, 0x46, 0x3C, 0x1A, 0x2A, 0xF7, 0x3A, 0xE1,
+ 0x2F, 0x12, 0x39, 0xCC, 0x94, 0x45, 0x3D, 0xB7, 0xD3, 0x2B, 0xBD, 0xE0,
+ 0x70, 0x62, 0x3C, 0xD4, 0x95, 0x19, 0x3C, 0xCF, 0xF4, 0x49, 0x3D, 0x8F,
+ 0xBE, 0xD5, 0x3D, 0x7C, 0x5B, 0x7C, 0xBD, 0x8C, 0xE0, 0x0D, 0xBE, 0x07,
+ 0x80, 0x44, 0xBD, 0xBA, 0x16, 0x4A, 0xBD, 0x8A, 0xF8, 0x8B, 0x3C, 0x7A,
+ 0x17, 0x34, 0x3C, 0x2F, 0x95, 0x45, 0xBC, 0xED, 0xA6, 0x0E, 0x3D, 0x96,
+ 0x39, 0x71, 0xBC, 0xE9, 0x76, 0x7B, 0xBD, 0xAC, 0x9B, 0x75, 0xBC, 0xF7,
+ 0x27, 0xD1, 0xBD, 0xC7, 0xF9, 0x63, 0x3D, 0xA5, 0xD0, 0xE9, 0x3D, 0x8E,
+ 0x68, 0x2B, 0x3E, 0x9E, 0x7B, 0x8A, 0x3E, 0x0E, 0x06, 0xB7, 0xBD, 0x11,
+ 0xF7, 0xF4, 0xBD, 0xCA, 0xE1, 0x95, 0x3E, 0xDB, 0x75, 0x11, 0x3E, 0x9A,
+ 0x2B, 0x1A, 0x3E, 0x1B, 0x0F, 0xA5, 0x3E, 0xAF, 0xCE, 0x33, 0x3C, 0x5A,
+ 0xAC, 0x28, 0x3D, 0xC8, 0x78, 0xA3, 0xBC, 0x36, 0x03, 0x38, 0xBD, 0x89,
+ 0x36, 0xED, 0x3C, 0xFC, 0x4D, 0xD8, 0x3C, 0xFD, 0x6F, 0xA7, 0xBB, 0x4A,
+ 0xC5, 0xA8, 0xBD, 0xAC, 0xDF, 0x09, 0x3E, 0x3D, 0x56, 0x86, 0xBD, 0x00,
+ 0x56, 0x62, 0x3D, 0xEB, 0xF0, 0x07, 0xBC, 0x0A, 0x87, 0xDC, 0x3D, 0x6C,
+ 0x6C, 0x02, 0xBE, 0x49, 0x03, 0xD8, 0x3C, 0x89, 0x36, 0x5E, 0xBD, 0x77,
+ 0x06, 0x3E, 0xBE, 0x6E, 0x96, 0x91, 0xBD, 0xD2, 0x5E, 0x1A, 0xBE, 0xD5,
+ 0x0A, 0x13, 0x3E, 0x6E, 0x10, 0xA8, 0xBC, 0x96, 0xD6, 0x5C, 0xBD, 0x27,
+ 0xC2, 0x6E, 0xBD, 0x88, 0x1B, 0x76, 0x3D, 0xFA, 0x2F, 0x85, 0xBD, 0x65,
+ 0x2F, 0x84, 0x3C, 0x41, 0xE5, 0x7B, 0x3C, 0xFA, 0x4E, 0x98, 0xBC, 0xFE,
+ 0x00, 0xDB, 0x3D, 0xD4, 0x11, 0x32, 0x3E, 0x95, 0x58, 0x8B, 0xBC, 0x9D,
+ 0xBF, 0x84, 0x3D, 0xC4, 0x83, 0x52, 0x3D, 0x47, 0x07, 0x37, 0xBD, 0x7E,
+ 0x2D, 0xF1, 0x3C, 0xA9, 0xB2, 0x04, 0xBB, 0x33, 0x0D, 0x91, 0x3E, 0x47,
+ 0xA5, 0x68, 0x3E, 0xD2, 0x14, 0x37, 0x3E, 0x41, 0xD0, 0xC4, 0x3E, 0x19,
+ 0xFA, 0x80, 0xBD, 0xB7, 0xFF, 0x7D, 0x3C, 0xA8, 0x53, 0x65, 0x3D, 0xCA,
+ 0xEE, 0x5B, 0x3D, 0x6A, 0xA7, 0x36, 0xBE, 0x53, 0x3F, 0x15, 0xBE, 0xCF,
+ 0x47, 0x4E, 0x3E, 0xF9, 0x97, 0x08, 0x3E, 0xC7, 0xF9, 0x86, 0xBD, 0x78,
+ 0xD6, 0xAF, 0x3D, 0x63, 0xE2, 0xD4, 0xBC, 0xB6, 0x43, 0x8B, 0x3D, 0xBF,
+ 0x5E, 0x90, 0xBD, 0x6F, 0x80, 0x2B, 0x3B, 0x46, 0x28, 0x19, 0x3D, 0x8D,
+ 0xD5, 0x95, 0x3C, 0x5C, 0x04, 0x97, 0x3C, 0xAA, 0x0A, 0x13, 0x3C, 0xBF,
+ 0x2D, 0xA4, 0x3C, 0x05, 0x2E, 0xE1, 0x3D, 0x26, 0xAD, 0x6D, 0xBE, 0x50,
+ 0x58, 0xF0, 0xBD, 0x36, 0x1D, 0x8C, 0xBE, 0x11, 0x5A, 0x03, 0xBE, 0xC0,
+ 0x64, 0xA5, 0xBD, 0xC3, 0x12, 0x8C, 0x3D, 0x0B, 0x85, 0xDC, 0xBD, 0x36,
+ 0xEE, 0x4A, 0x3C, 0x9A, 0x40, 0x84, 0xBD, 0xE4, 0x48, 0x92, 0x3D, 0x9B,
+ 0xFF, 0x36, 0x3D, 0xCC, 0xC5, 0x60, 0x3E, 0x88, 0xBE, 0x75, 0xBE, 0x9A,
+ 0x55, 0x36, 0x3D, 0x50, 0x27, 0x85, 0xBE, 0x72, 0x6A, 0x86, 0x3D, 0x55,
+ 0x59, 0x20, 0xBC, 0xC2, 0xCA, 0x7B, 0x3D, 0xA9, 0xE2, 0xA6, 0xBD, 0x26,
+ 0x49, 0x7D, 0x3D, 0xC0, 0xA0, 0xE2, 0xBC, 0x87, 0x45, 0x9F, 0xBA, 0xB1,
+ 0x4B, 0xC3, 0x3C, 0xDB, 0x7A, 0xAA, 0x3C, 0x69, 0xB1, 0x67, 0x3E, 0x9F,
+ 0xD9, 0x07, 0xBC, 0x3E, 0x51, 0x3A, 0x3E, 0x97, 0xB6, 0x87, 0xBD, 0xFF,
+ 0xDA, 0xC9, 0x3D, 0xEF, 0xDE, 0xB8, 0xBD, 0xD5, 0x5D, 0xCD, 0x3D, 0x3D,
+ 0xD0, 0x14, 0xBE, 0xBA, 0xB1, 0xB9, 0x3E, 0x33, 0xE4, 0xA4, 0xBD, 0xD1,
+ 0x94, 0xA5, 0x3E, 0x98, 0xD6, 0xBF, 0xBD, 0x99, 0x54, 0x86, 0x3D, 0x6F,
+ 0xE0, 0xD2, 0xBD, 0x37, 0x19, 0x4F, 0x3C, 0x9A, 0x95, 0x8E, 0xBD, 0xD9,
+ 0x28, 0xC5, 0xBD, 0x0E, 0xFD, 0x58, 0xBD, 0x7F, 0xD6, 0x0A, 0x3D, 0x23,
+ 0x9B, 0x25, 0x3D, 0x14, 0x12, 0xEE, 0x3D, 0x38, 0xBA, 0x46, 0x3D, 0x3F,
+ 0x4F, 0xA7, 0xBD, 0x26, 0xA7, 0x92, 0xBD, 0xD0, 0x72, 0x70, 0x3E, 0xFC,
+ 0x21, 0xCA, 0xBC, 0x31, 0x75, 0x36, 0x3E, 0x1A, 0xFC, 0xC4, 0xBD, 0xC5,
+ 0xD4, 0x26, 0xBD, 0xA9, 0x09, 0x84, 0x3C, 0x27, 0xF9, 0x8D, 0x3C, 0x80,
+ 0x98, 0x21, 0x3D, 0x30, 0xF1, 0xF8, 0xBD, 0x10, 0xA7, 0x7F, 0x3C, 0xBE,
+ 0x76, 0x81, 0x3D, 0x54, 0x00, 0xA4, 0x3C, 0x1B, 0x5C, 0x1B, 0xBD, 0xD2,
+ 0x4B, 0x0F, 0x3E, 0xF1, 0x69, 0x81, 0xBD, 0x26, 0xFA, 0x0A, 0x3E, 0x71,
+ 0xB3, 0x08, 0x3C, 0x93, 0x74, 0xF2, 0x3C, 0x8F, 0x6D, 0x1D, 0xBD, 0x30,
+ 0x31, 0x3D, 0xBD, 0x15, 0x0B, 0x5E, 0xBC, 0x77, 0xCB, 0xCB, 0xBC, 0x34,
+ 0x92, 0x36, 0x3D, 0x73, 0xD1, 0x81, 0xBC, 0xA5, 0x56, 0x78, 0xBC, 0x5B,
+ 0x23, 0x57, 0xBC, 0x87, 0x41, 0x49, 0x3C, 0x81, 0x7D, 0xCE, 0x3B, 0xD2,
+ 0xB4, 0x8A, 0xBC, 0x5F, 0x9D, 0xBE, 0xBC, 0x9F, 0xF7, 0x1F, 0x3D, 0xBF,
+ 0xE4, 0xC3, 0xBD, 0xD4, 0x96, 0xAB, 0xBD, 0x9E, 0x7E, 0xE8, 0x3D, 0x40,
+ 0xE8, 0xAF, 0xBD, 0xFC, 0xE7, 0x65, 0x3E, 0xF0, 0xFC, 0x96, 0x3B, 0x41,
+ 0xB8, 0xCC, 0xBC, 0x0A, 0x2D, 0xB8, 0x3B, 0x16, 0x2B, 0x11, 0x3C, 0x8A,
+ 0xF2, 0x9A, 0x3D, 0x7F, 0x9A, 0x24, 0xBE, 0x02, 0x52, 0x5D, 0xBD, 0x17,
+ 0xDC, 0xA7, 0xBC, 0x9F, 0xB1, 0xF3, 0x3D, 0x3B, 0xD2, 0x6A, 0xBE, 0x82,
+ 0xD8, 0x98, 0x3D, 0x17, 0x06, 0x78, 0xBE, 0x02, 0x1C, 0x7F, 0x3E, 0xFB,
+ 0xFA, 0x3C, 0x3E, 0xC5, 0x86, 0x68, 0x3E, 0xF7, 0xD7, 0x17, 0x3E, 0x7E,
+ 0x4A, 0x2F, 0x39, 0x2B, 0xF9, 0xD6, 0xBC, 0xAC, 0x7C, 0x49, 0x3D, 0xC0,
+ 0x7B, 0x51, 0xBD, 0x55, 0xEB, 0x53, 0x3C, 0x2F, 0x7D, 0x8F, 0x3D, 0x64,
+ 0x2B, 0xA4, 0xBD, 0xC4, 0x27, 0x3D, 0x3D, 0x08, 0xE6, 0x15, 0xBE, 0xF7,
+ 0x09, 0x24, 0xBE, 0x11, 0x84, 0x4F, 0x3E, 0xCC, 0x3A, 0xC1, 0x3D, 0x30,
+ 0x90, 0x5B, 0xBD, 0xDE, 0x28, 0x7E, 0xBD, 0xCB, 0x3A, 0x61, 0x3B, 0xD6,
+ 0xFE, 0xBF, 0x3D, 0xCC, 0x61, 0xC3, 0x3D, 0x0D, 0x0B, 0x9B, 0xBD, 0x7F,
+ 0x84, 0xAA, 0x3D, 0xE0, 0xB1, 0xB1, 0xBD, 0xDE, 0x0A, 0xD5, 0xBC, 0xC6,
+ 0x31, 0xC2, 0xBD, 0xFA, 0x2F, 0x65, 0x3D, 0xEF, 0x7F, 0x88, 0x3D, 0xCA,
+ 0xDB, 0x01, 0x3E, 0xFF, 0xF2, 0xF3, 0x3D, 0x46, 0x3A, 0xAF, 0xBC, 0x27,
+ 0xDC, 0x76, 0xBD, 0xE3, 0x8F, 0x1B, 0xBF, 0xED, 0x08, 0x78, 0xBE, 0x89,
+ 0x1C, 0x41, 0xBF, 0x7E, 0xDD, 0xA6, 0xBE, 0xC4, 0x4B, 0xCA, 0x3D, 0xDC,
+ 0xEA, 0x56, 0x3E, 0xC3, 0x09, 0x59, 0xBE, 0x3E, 0x42, 0x39, 0xBE, 0x3E,
+ 0xAA, 0xEB, 0x3D, 0x47, 0x7B, 0x00, 0xBE, 0x33, 0xE4, 0x1D, 0x3E, 0x48,
+ 0x5F, 0xEE, 0xBD, 0x79, 0xE5, 0x08, 0xBF, 0x94, 0x81, 0xF6, 0xBE, 0x35,
+ 0x80, 0x16, 0xBF, 0xE9, 0xC0, 0x00, 0xBF, 0x64, 0xF9, 0xF9, 0x3C, 0xB9,
+ 0x56, 0x79, 0xBC, 0xA5, 0x9A, 0xC9, 0x3D, 0x27, 0x2D, 0xC5, 0xBD, 0x54,
+ 0xBA, 0xCE, 0xBD, 0x2F, 0x1C, 0xDA, 0xBD, 0xB3, 0x11, 0xD7, 0x3D, 0xA7,
+ 0x60, 0xA9, 0x3C, 0x36, 0xE3, 0x20, 0x3F, 0x1C, 0x60, 0x37, 0x3F, 0x41,
+ 0x20, 0x1D, 0x3F, 0x19, 0x7D, 0x41, 0x3F, 0x05, 0x99, 0x09, 0xBD, 0xD0,
+ 0x61, 0xCD, 0x3D, 0x5A, 0xD1, 0x1E, 0xBE, 0xA3, 0x14, 0x79, 0x3B, 0xCE,
+ 0xA7, 0x49, 0x3F, 0x89, 0x33, 0x42, 0x3F, 0xBF, 0xE3, 0x3D, 0x3F, 0x4B,
+ 0x91, 0x33, 0x3F, 0x4E, 0x55, 0xBD, 0xBD, 0xC0, 0x96, 0x03, 0x3E, 0xFB,
+ 0x06, 0xBD, 0xBD, 0x1B, 0x7D, 0xB2, 0x3C, 0x51, 0x02, 0x0E, 0xBC, 0xEC,
+ 0x2D, 0xFC, 0x3D, 0xFF, 0xB3, 0xE5, 0xBD, 0x99, 0x3B, 0x9A, 0x3D, 0x6A,
+ 0xF1, 0x2D, 0xBE, 0x41, 0xD6, 0x0D, 0x3C, 0xBD, 0x73, 0x4B, 0x3E, 0x13,
+ 0xD4, 0x53, 0x3D, 0x94, 0xFF, 0x41, 0x3F, 0x1E, 0x76, 0x62, 0x3F, 0x8D,
+ 0xF6, 0x3F, 0x3F, 0x28, 0xEF, 0x6F, 0x3F, 0x7B, 0x77, 0xCF, 0xBD, 0x57,
+ 0x22, 0x0E, 0xBE, 0xC4, 0x30, 0x21, 0x3E, 0xCA, 0x04, 0x1B, 0x3D, 0xCA,
+ 0x55, 0x85, 0x3D, 0x56, 0xFD, 0x26, 0xBE, 0x6C, 0x63, 0x01, 0x3D, 0x55,
+ 0x97, 0xFF, 0x3D, 0xB3, 0x6D, 0x99, 0x3E, 0x22, 0x56, 0xD1, 0xBD, 0x93,
+ 0xDB, 0xB0, 0x3E, 0x9A, 0x4A, 0x2B, 0xBE, 0x72, 0x2D, 0xAB, 0x3E, 0x9F,
+ 0xC7, 0x9C, 0x3D, 0xF6, 0xF8, 0xBB, 0x3E, 0x7E, 0xEE, 0xCE, 0x3E, 0x91,
+ 0x72, 0xD5, 0xBD, 0xD6, 0x5F, 0x23, 0xBD, 0x94, 0x43, 0x4E, 0x3D, 0x96,
+ 0xE4, 0xC3, 0x3D, 0x5C, 0x49, 0xC1, 0xBD, 0x87, 0xD4, 0x2E, 0xBD, 0xAB,
+ 0x3B, 0xC1, 0x3D, 0x79, 0xC8, 0x36, 0x3D, 0xEC, 0x3C, 0x37, 0xBD, 0xC8,
+ 0x10, 0x4F, 0x3D, 0x99, 0x95, 0x00, 0xBE, 0x72, 0xCD, 0x38, 0x3E, 0x71,
+ 0x13, 0x05, 0xBD, 0x8E, 0x4D, 0x94, 0xBE, 0xFF, 0x4F, 0x70, 0x3E, 0x88,
+ 0xFB, 0xD0, 0x3C, 0x59, 0x36, 0x58, 0x3E, 0x97, 0xBD, 0xAD, 0x3D, 0x73,
+ 0x42, 0xDA, 0xBD, 0x7C, 0x58, 0x5D, 0xBD, 0x4B, 0x02, 0x4D, 0xBE, 0x3E,
+ 0xB7, 0x3E, 0x3E, 0x02, 0x6E, 0x35, 0xBD, 0x90, 0xA0, 0x0F, 0x3E, 0x2F,
+ 0x72, 0xD3, 0x3E, 0x60, 0x46, 0x41, 0x3F, 0x16, 0xA2, 0x9A, 0x3E, 0x9D,
+ 0x90, 0x46, 0x3F, 0x58, 0x11, 0x32, 0x3E, 0xE8, 0x90, 0x3C, 0x3E, 0xA2,
+ 0x2F, 0xCC, 0x3D, 0x45, 0x99, 0x3B, 0x3E, 0x96, 0xCE, 0x8A, 0xBC, 0xCF,
+ 0x8F, 0x0B, 0x3D, 0xFA, 0x4B, 0xB0, 0xBD, 0x2B, 0xF9, 0xB3, 0x3D, 0x20,
+ 0x8C, 0x36, 0x3E, 0xAF, 0x16, 0x1B, 0x3D, 0x63, 0x5D, 0xA3, 0x3E, 0x9B,
+ 0x8C, 0x59, 0x3E, 0x2E, 0x54, 0x41, 0xBD, 0x21, 0x60, 0xBE, 0xBD, 0xD6,
+ 0x13, 0x96, 0x3A, 0x46, 0xB6, 0x03, 0x3E, 0x80, 0x8A, 0x0E, 0xBD, 0x0C,
+ 0x31, 0x16, 0xBD, 0x00, 0x9B, 0x77, 0x3D, 0x59, 0x49, 0x27, 0x3D, 0x2D,
+ 0xF4, 0x22, 0xBD, 0xBD, 0x17, 0x16, 0xBC, 0x67, 0x2B, 0xC1, 0xBD, 0x2D,
+ 0x97, 0x02, 0x3D, 0x1C, 0x91, 0x2C, 0xBC, 0x91, 0xB0, 0x53, 0xBC, 0x39,
+ 0x75, 0xEB, 0x3A, 0x9C, 0x0F, 0x70, 0x3C, 0x7E, 0xAA, 0x21, 0xBD, 0x86,
+ 0xF4, 0xF0, 0xBC, 0xFD, 0xD1, 0x11, 0x3E, 0x97, 0x3E, 0x96, 0x3D, 0xB8,
+ 0xDC, 0x76, 0x3E, 0x37, 0xFC, 0x27, 0x3C, 0x07, 0x37, 0x4C, 0x3E, 0x9F,
+ 0xF9, 0xA9, 0xBD, 0x48, 0x1A, 0x25, 0x3E, 0xC1, 0x1E, 0xA3, 0xBD, 0xCF,
+ 0x2F, 0x6E, 0x3D, 0x42, 0x48, 0xA8, 0xBD, 0xB3, 0xC8, 0xB8, 0xBD, 0x47,
+ 0x09, 0x1C, 0x3D, 0xEB, 0xF6, 0xC7, 0xBD, 0xF9, 0x38, 0x8D, 0x3D, 0x64,
+ 0x4C, 0x09, 0x3E, 0x47, 0x7B, 0x45, 0xBE, 0x00, 0x80, 0x0F, 0x3E, 0xB8,
+ 0xE1, 0x93, 0xBE, 0x18, 0x74, 0xE7, 0xBC, 0xE9, 0x40, 0xBA, 0xBC, 0x80,
+ 0x27, 0x0A, 0xBD, 0x44, 0xCF, 0x8C, 0x3D, 0x4A, 0xB4, 0x14, 0xBD, 0x0E,
+ 0x5A, 0x75, 0xBD, 0x53, 0x39, 0x1E, 0xBC, 0x1F, 0x8B, 0xA9, 0x3D, 0xE0,
+ 0x9B, 0xEE, 0x3B, 0x30, 0xFA, 0x24, 0x3E, 0xFC, 0x91, 0x1A, 0xBD, 0xB0,
+ 0x97, 0x82, 0x3D, 0x18, 0x6C, 0x90, 0xBD, 0xCF, 0xCE, 0xF2, 0xBC, 0x49,
+ 0xA4, 0x89, 0x3D, 0xFA, 0x2A, 0xAC, 0x3D, 0xCA, 0xBE, 0x9C, 0xBD, 0x2D,
+ 0x96, 0xC2, 0x3E, 0x4D, 0xEA, 0x9A, 0xBD, 0xB7, 0xE2, 0xB1, 0x3E, 0xBE,
+ 0xD3, 0x71, 0x3D, 0x54, 0xAF, 0xA1, 0xBC, 0x0D, 0xC5, 0xEE, 0x3B, 0xF6,
+ 0x62, 0x84, 0x3C, 0x71, 0xBC, 0xFA, 0x3D, 0x2B, 0xCE, 0xB0, 0xBD, 0x38,
+ 0x34, 0xE6, 0x3D, 0xBE, 0xA2, 0xD8, 0xBD, 0x5A, 0x27, 0x21, 0xBD, 0xF4,
+ 0x3A, 0x43, 0xBE, 0x29, 0xF5, 0xD5, 0x3B, 0x79, 0x68, 0x16, 0x3E, 0x07,
+ 0x81, 0x3B, 0x3D, 0x6D, 0xB1, 0x25, 0x3E, 0x76, 0x6D, 0xF7, 0xBC, 0x25,
+ 0x18, 0x5B, 0x3D, 0x43, 0x76, 0x41, 0xBD, 0x36, 0xEC, 0x6E, 0xBD, 0xD4,
+ 0xA8, 0x2F, 0xBC, 0xE8, 0x63, 0xCE, 0x3D, 0x91, 0x19, 0x57, 0x3D, 0xB3,
+ 0x69, 0x28, 0x3E, 0x7E, 0x14, 0xEF, 0xBD, 0xA2, 0x39, 0xBD, 0xBD, 0xC6,
+ 0xC5, 0x9E, 0x3E, 0x49, 0xBE, 0x0C, 0x3F, 0x46, 0xB1, 0xB8, 0x3E, 0xB3,
+ 0x87, 0x22, 0x3F, 0x05, 0x2C, 0x87, 0x3C, 0xE3, 0x65, 0x83, 0x3E, 0x30,
+ 0xC4, 0x01, 0x3E, 0x5A, 0x7D, 0x0A, 0x3E, 0x3D, 0xA8, 0xF5, 0x3B, 0x20,
+ 0xAB, 0x7B, 0xBD, 0x35, 0x13, 0xB1, 0x3C, 0xF6, 0x82, 0xC9, 0x3C, 0x6A,
+ 0x5D, 0x04, 0xBD, 0x0A, 0x5B, 0xB5, 0xBD, 0x6F, 0xAF, 0x0A, 0x3D, 0x97,
+ 0x75, 0xB8, 0x3D, 0x8B, 0x5D, 0x4A, 0x3D, 0xBD, 0x32, 0x40, 0xBD, 0xE2,
+ 0x39, 0x09, 0x3E, 0x55, 0x3C, 0xA0, 0xBD, 0xAF, 0x44, 0xAC, 0xBD, 0xF1,
+ 0x96, 0x0A, 0xBB, 0xB7, 0xB7, 0x83, 0x3D, 0x1D, 0xEB, 0xCA, 0xBD, 0xBE,
+ 0x7F, 0xF9, 0x3C, 0x4B, 0xC8, 0x36, 0x3E, 0x91, 0x08, 0x89, 0xBD, 0xEB,
+ 0x34, 0x04, 0xBE, 0x16, 0x4E, 0x2F, 0x3E, 0xF8, 0x18, 0x46, 0xBD, 0xF2,
+ 0x73, 0x15, 0x3E, 0x8E, 0x25, 0x1D, 0xBE, 0x2F, 0x93, 0x08, 0x3D, 0x74,
+ 0x3E, 0x89, 0x3E, 0xF8, 0x45, 0x0C, 0xBC, 0xA5, 0x3F, 0x02, 0x3E, 0xF9,
+ 0x82, 0xE8, 0x3D, 0xF6, 0xB2, 0x22, 0x3E, 0x3A, 0x08, 0x11, 0x3E, 0x09,
+ 0x90, 0x22, 0x3E, 0x44, 0x3D, 0x28, 0x3D, 0xF5, 0xA8, 0x7B, 0xBC, 0xB1,
+ 0x6E, 0x66, 0x3D, 0xE0, 0x76, 0x86, 0xBD, 0xF0, 0xEE, 0x47, 0x3E, 0x66,
+ 0x02, 0x96, 0x3E, 0x7B, 0x3E, 0xB4, 0x3E, 0xB0, 0x05, 0x8F, 0x3E, 0xD9,
+ 0x32, 0x8B, 0x3D, 0xA5, 0x90, 0x86, 0x3C, 0xE8, 0x04, 0x34, 0xBD, 0x09,
+ 0x27, 0xBC, 0xBC, 0x9B, 0xFB, 0x2E, 0x3E, 0x55, 0xC0, 0x0A, 0x3E, 0xCD,
+ 0x59, 0x38, 0xBB, 0x49, 0xDE, 0x59, 0xBD, 0xCA, 0x63, 0x69, 0xBD, 0x11,
+ 0x90, 0x3E, 0x3D, 0x1B, 0x0B, 0xB6, 0xBD, 0xBC, 0x88, 0xB9, 0x3D, 0xF3,
+ 0xE2, 0xBF, 0x3C, 0x05, 0x23, 0xE9, 0x3B, 0x68, 0xA3, 0xF5, 0xBC, 0x44,
+ 0xB5, 0x44, 0x3C, 0x58, 0x6D, 0x32, 0xBD, 0x0E, 0x93, 0x28, 0x3C, 0xC1,
+ 0xCF, 0xF8, 0x3C, 0x78, 0x6A, 0x9B, 0x3A, 0x4D, 0x4D, 0x01, 0x3E, 0x26,
+ 0x02, 0x72, 0x3D, 0xDC, 0x44, 0x16, 0xBE, 0x2A, 0x79, 0x85, 0x3C, 0x3F,
+ 0x02, 0x58, 0xBD, 0x82, 0xB2, 0x94, 0xBB, 0x01, 0x0D, 0x91, 0xBD, 0xB3,
+ 0xFC, 0x83, 0x3D, 0xC6, 0x62, 0x94, 0x3D, 0x23, 0x65, 0x96, 0x3D, 0x94,
+ 0x70, 0xAA, 0xBD, 0x0E, 0x8E, 0x4F, 0xBD, 0xAE, 0xDA, 0x22, 0x3D, 0x48,
+ 0x93, 0x87, 0xBC, 0x40, 0x05, 0xAE, 0xBD, 0xCC, 0x98, 0x13, 0x38, 0x75,
+ 0x36, 0x12, 0xBC, 0x06, 0x5A, 0x6D, 0xBC, 0xEA, 0xD2, 0x27, 0x3C, 0x0B,
+ 0x5B, 0x93, 0x3C, 0xF7, 0xAF, 0x9E, 0x3C, 0x7C, 0xE2, 0x91, 0xBA, 0x76,
+ 0x93, 0x69, 0xB8, 0x5A, 0x75, 0x9C, 0xBC, 0x3C, 0xFB, 0x9A, 0xBD, 0xE7,
+ 0xD5, 0x02, 0x3D, 0x8F, 0x2D, 0x34, 0xBC, 0x4E, 0x85, 0x0D, 0x3C, 0x79,
+ 0x13, 0x9B, 0xBB, 0xD9, 0x1E, 0x14, 0x3C, 0xA3, 0x00, 0xCE, 0x3C, 0x49,
+ 0xBE, 0xCA, 0xBC, 0xA5, 0x90, 0x37, 0xBD, 0x94, 0x67, 0x06, 0x3D, 0x8A,
+ 0x30, 0x7C, 0x3D, 0xE6, 0x88, 0x5C, 0xBD, 0x60, 0x95, 0xC7, 0x3C, 0x46,
+ 0xF8, 0x2D, 0xBD, 0xC3, 0xDD, 0x7F, 0x3D, 0xE8, 0x6D, 0xC3, 0xBD, 0xC3,
+ 0x55, 0x33, 0x3D, 0x93, 0x50, 0x55, 0x3D, 0x75, 0x66, 0x2B, 0xBD, 0x1E,
+ 0xB2, 0x71, 0xBC, 0x78, 0xD8, 0x6D, 0xBD, 0x8A, 0xFE, 0x5A, 0xBD, 0x94,
+ 0x3C, 0x66, 0x3C, 0x57, 0x78, 0xCE, 0x3C, 0x53, 0x88, 0xC6, 0xBD, 0x64,
+ 0xCF, 0x16, 0xBA, 0x95, 0x7F, 0x29, 0xBD, 0x7A, 0xD3, 0x54, 0xBB, 0x50,
+ 0xFF, 0x1F, 0x3D, 0x40, 0x9A, 0x3C, 0x3C, 0x67, 0x78, 0xC3, 0xBB, 0x7F,
+ 0xAE, 0xD0, 0xBB, 0xE2, 0xD7, 0x91, 0x3D, 0x05, 0xEA, 0xDE, 0xBC, 0xA6,
+ 0x3A, 0xCD, 0xBC, 0xDF, 0x8D, 0x82, 0xBA, 0x6A, 0x20, 0x7B, 0x3C, 0xF5,
+ 0x51, 0x77, 0xBD, 0x14, 0x37, 0x0A, 0x3D, 0xF3, 0x8A, 0xB0, 0x3A, 0x50,
+ 0x38, 0x8C, 0xBB, 0xD6, 0xF1, 0x63, 0xBC, 0x99, 0x4C, 0xB7, 0x3C, 0xDD,
+ 0xA6, 0xDF, 0xBC, 0xF0, 0x6A, 0xFF, 0x3C, 0x30, 0xF9, 0x1B, 0x3C, 0xF3,
+ 0x96, 0x93, 0xBC, 0x40, 0xF3, 0x50, 0xBC, 0xA4, 0x67, 0x0E, 0x3C, 0x45,
+ 0xDD, 0xF4, 0xBB, 0x4C, 0x6D, 0x11, 0x3A, 0x68, 0x4E, 0x4D, 0xBC, 0xF4,
+ 0x1F, 0x89, 0xBB, 0x07, 0xA2, 0xAC, 0x3C, 0x6A, 0x84, 0xB5, 0xBC, 0x89,
+ 0xF0, 0x83, 0x3C, 0x93, 0x79, 0x03, 0xBC, 0x80, 0x32, 0xFB, 0x3C, 0x83,
+ 0x14, 0x8F, 0xBC, 0x1E, 0xA0, 0x0B, 0x3D, 0x1B, 0x60, 0x67, 0xBA, 0xD8,
+ 0x99, 0x04, 0x3C, 0xE9, 0x09, 0x95, 0xBB, 0x95, 0x45, 0x82, 0xBC, 0x98,
+ 0xB2, 0x3A, 0x3D, 0xD2, 0x55, 0x64, 0xBC, 0x29, 0x21, 0xF5, 0x3D, 0x69,
+ 0x1A, 0x09, 0xBE, 0xD1, 0xB3, 0xF6, 0xBC, 0x0E, 0xE2, 0x6D, 0x3D, 0x9A,
+ 0x33, 0xA5, 0xBC, 0xE5, 0x60, 0x4D, 0xBC, 0x06, 0xAD, 0xDC, 0x3D, 0x4E,
+ 0x2E, 0x03, 0x3C, 0x14, 0xF1, 0x7B, 0x3E, 0x3D, 0xBB, 0xBF, 0x3D, 0x65,
+ 0xC6, 0x9B, 0x3C, 0x86, 0x88, 0xE9, 0x3B, 0x75, 0xC2, 0xEA, 0xBB, 0xC1,
+ 0x3F, 0xBC, 0xBB, 0xE4, 0x81, 0x4D, 0x3C, 0x78, 0x7F, 0x32, 0xBD, 0xAB,
+ 0x3F, 0xC6, 0x3C, 0x2B, 0x60, 0xC7, 0x3B, 0x34, 0x4D, 0xF7, 0x3D, 0x7A,
+ 0xE1, 0xED, 0x3D, 0x7C, 0x6B, 0x05, 0xBD, 0xDF, 0x6E, 0x80, 0xBD, 0xEE,
+ 0x26, 0xF0, 0xBC, 0x73, 0x0D, 0x8F, 0x3D, 0x34, 0x41, 0x4A, 0xBD, 0x47,
+ 0x63, 0xFE, 0x3C, 0x33, 0xB7, 0xE4, 0x3C, 0x1E, 0x01, 0x3E, 0xBB, 0x19,
+ 0xD1, 0x97, 0x3D, 0x17, 0x03, 0x26, 0xBD, 0x54, 0x6B, 0x3C, 0x3D, 0x37,
+ 0x48, 0x2A, 0x3D, 0x57, 0x7F, 0x9A, 0xBB, 0x52, 0x2B, 0x36, 0xBD, 0x27,
+ 0xF5, 0x1E, 0xBE, 0x81, 0xCB, 0x1F, 0xBE, 0x2E, 0xE0, 0x85, 0x3A, 0x5F,
+ 0x19, 0x7C, 0x3D, 0x70, 0xF2, 0x71, 0x3D, 0x93, 0xCF, 0x3F, 0x3E, 0x8D,
+ 0x41, 0x6C, 0xBD, 0xE1, 0xAF, 0x51, 0xBE, 0x02, 0xEF, 0x02, 0xBE, 0xD2,
+ 0xD6, 0x1D, 0xBE, 0xF8, 0x7A, 0x42, 0x3D, 0x38, 0x13, 0xA7, 0x3D, 0x14,
+ 0x04, 0xE3, 0x3C, 0x2F, 0xE3, 0x50, 0x3C, 0xBC, 0x28, 0x41, 0x3C, 0x6E,
+ 0xC7, 0x6F, 0xBD, 0x02, 0x48, 0x21, 0x3E, 0xC1, 0xE8, 0x19, 0x3E, 0x76,
+ 0x6F, 0x6D, 0xBE, 0x5B, 0x95, 0x4F, 0xBE, 0xDA, 0x9A, 0x42, 0x3C, 0xC2,
+ 0xDC, 0x07, 0xBB, 0x40, 0x8A, 0x58, 0xBC, 0x25, 0xFA, 0x37, 0xBC, 0xCA,
+ 0xA4, 0x47, 0xBC, 0xBD, 0x52, 0x15, 0x3D, 0x7B, 0xAE, 0xFA, 0xBB, 0x6A,
+ 0x90, 0x08, 0x3D, 0xBB, 0x46, 0xF4, 0xBB, 0xAF, 0xC8, 0xCF, 0xBD, 0xFB,
+ 0x96, 0x5E, 0x3E, 0xCF, 0x5B, 0x1B, 0x3E, 0xF8, 0xC4, 0x58, 0xBD, 0x3A,
+ 0x20, 0x24, 0xBD, 0xDF, 0x7B, 0xEB, 0xBA, 0xDE, 0x69, 0x4B, 0x3D, 0x13,
+ 0xB0, 0x85, 0xBD, 0x82, 0x49, 0x95, 0xBD, 0xF5, 0xE0, 0xBE, 0x3E, 0x91,
+ 0xCF, 0xC9, 0x3E, 0x22, 0x68, 0x56, 0xBD, 0x17, 0xFF, 0x0A, 0x3C, 0xF1,
+ 0x70, 0xCC, 0xBD, 0x34, 0x1B, 0xB6, 0x3D, 0x89, 0x58, 0x1C, 0xBD, 0x18,
+ 0xA9, 0xD4, 0x3A, 0x6C, 0xC9, 0x15, 0xBC, 0x94, 0xEA, 0x8B, 0x3D, 0x9C,
+ 0xB3, 0x2B, 0x3E, 0x38, 0xF4, 0xB4, 0x3D, 0x76, 0x0B, 0x0D, 0xBE, 0xEC,
+ 0x1C, 0xFD, 0xBD, 0xD6, 0x8F, 0xBD, 0x3B, 0x1C, 0x05, 0xB6, 0xBD, 0x8C,
+ 0xBF, 0x6C, 0x3E, 0x8B, 0x09, 0x13, 0x3E, 0xBB, 0xF1, 0xA4, 0x3D, 0x62,
+ 0xD5, 0x86, 0x3D, 0x96, 0x4C, 0xAA, 0xBC, 0x6A, 0xA2, 0xBF, 0xBC, 0x26,
+ 0x95, 0x42, 0x3B, 0x50, 0x55, 0x0A, 0x3E, 0xCD, 0xFA, 0x7B, 0xBD, 0xC6,
+ 0x02, 0x85, 0xBD, 0x5F, 0xEE, 0x85, 0xBD, 0xC6, 0xC8, 0x80, 0x3D, 0xEE,
+ 0x76, 0xBA, 0xBA, 0x5A, 0x2B, 0x3A, 0x3D, 0x4E, 0xD8, 0x5C, 0x3C, 0xA9,
+ 0xA7, 0xED, 0x3C, 0xB4, 0x2A, 0x7B, 0xBD, 0x5E, 0x6B, 0x9E, 0xBC, 0xAF,
+ 0x91, 0x73, 0x3D, 0x2D, 0x80, 0x64, 0x3D, 0xB3, 0xD3, 0x04, 0xBD, 0x3F,
+ 0x3A, 0x17, 0xBD, 0xEE, 0xDB, 0x60, 0x3D, 0x4A, 0xDF, 0x2D, 0x3D, 0x21,
+ 0xDD, 0x3F, 0xBD, 0x66, 0x6F, 0xC8, 0xBB, 0xCC, 0x6D, 0x97, 0x3C, 0xA9,
+ 0x22, 0x3F, 0x3C, 0x0B, 0xEA, 0x00, 0x3C, 0x77, 0xDF, 0x05, 0x3C, 0xBB,
+ 0x9E, 0xDD, 0x3D, 0x35, 0x21, 0x1D, 0x3D, 0x69, 0x95, 0xB6, 0x3D, 0xEC,
+ 0x97, 0xA8, 0xBD, 0x33, 0x68, 0x96, 0xBD, 0xE1, 0x18, 0x2C, 0xBD, 0x4D,
+ 0xDF, 0x16, 0x3D, 0x89, 0xDB, 0x97, 0xBB, 0x6D, 0x84, 0xB4, 0x3C, 0x19,
+ 0x84, 0x57, 0xBD, 0x76, 0x59, 0xF1, 0xBD, 0x19, 0x4E, 0xE3, 0x3C, 0x84,
+ 0x9F, 0xB7, 0xBD, 0xB7, 0x38, 0xA3, 0xBD, 0x69, 0xC8, 0x39, 0x3E, 0x45,
+ 0xCE, 0xE6, 0x3D, 0x25, 0xB8, 0xFA, 0x3D, 0xFE, 0x1D, 0xB3, 0x3D, 0x91,
+ 0x1D, 0x44, 0x3E, 0xA1, 0x88, 0x57, 0x3E, 0xC5, 0x26, 0x00, 0xBC, 0xDD,
+ 0x6D, 0x2E, 0x3C, 0x8E, 0x0C, 0x06, 0xBC, 0x71, 0xD8, 0x9D, 0xBA, 0xE6,
+ 0xBA, 0x1A, 0x3D, 0xCB, 0xA2, 0x44, 0x3D, 0x42, 0x42, 0x12, 0xBE, 0x50,
+ 0x78, 0xF4, 0xBC, 0xED, 0x07, 0xAF, 0x3C, 0x87, 0x90, 0xA0, 0x3D, 0x5B,
+ 0x38, 0x17, 0xBD, 0x4B, 0xF1, 0xD1, 0xBC, 0xDB, 0x16, 0x61, 0x3D, 0x51,
+ 0xAF, 0x95, 0x3C, 0xB9, 0x4E, 0x4B, 0x3B, 0xF5, 0xC8, 0x70, 0xBC, 0x32,
+ 0x6A, 0xA0, 0xB9, 0xA8, 0xC6, 0xB3, 0xBC, 0x45, 0xD5, 0x50, 0xBB, 0xE0,
+ 0x42, 0xD5, 0xBC, 0x9E, 0x43, 0xCB, 0x3A, 0x4E, 0xFC, 0xAB, 0x3C, 0xA4,
+ 0x30, 0x6D, 0xBC, 0xF6, 0x92, 0xEC, 0xBB, 0xB3, 0x75, 0x03, 0x3D, 0xBA,
+ 0x6F, 0x90, 0xBB, 0x25, 0xBA, 0xBD, 0xBC, 0xB1, 0xBA, 0x13, 0xBD, 0x7E,
+ 0xF1, 0x0F, 0xBD, 0xF5, 0xD2, 0x6D, 0xBD, 0x02, 0xCE, 0x0F, 0x3D, 0x2A,
+ 0x26, 0x52, 0x3D, 0xEB, 0x44, 0xB6, 0x3B, 0xB7, 0x8A, 0x2E, 0xBD, 0xF6,
+ 0x10, 0xFA, 0x3D, 0xF8, 0x68, 0x3A, 0xBD, 0x60, 0x50, 0xC2, 0xBA, 0x2F,
+ 0x45, 0x8B, 0x3C, 0xCE, 0x00, 0x1C, 0xBD, 0x4C, 0xB8, 0x4B, 0x3C, 0x54,
+ 0xB3, 0xE7, 0xBC, 0xBA, 0x40, 0x35, 0x3D, 0x8C, 0xD0, 0xDC, 0x3C, 0x16,
+ 0xC9, 0x4F, 0xBD, 0xB8, 0xFB, 0x8A, 0x3B, 0x02, 0x54, 0xC2, 0x3C, 0x48,
+ 0x88, 0xBA, 0xBB, 0xB3, 0x85, 0xC3, 0xBB, 0x6B, 0xD9, 0x34, 0x3D, 0xCE,
+ 0x3F, 0x6A, 0x3C, 0x8E, 0x05, 0x94, 0x3C, 0x1A, 0xBB, 0xAD, 0xBC, 0x02,
+ 0x1A, 0x06, 0xBD, 0x45, 0xF0, 0x1B, 0xBD, 0xAC, 0x44, 0x27, 0xBD, 0xF9,
+ 0xB1, 0x70, 0x3C, 0x5C, 0x8B, 0x52, 0x3D, 0xFC, 0xF2, 0xF6, 0x3C, 0x8D,
+ 0x56, 0xA7, 0xBC, 0x1C, 0x45, 0xAF, 0xBC, 0xED, 0x2E, 0x18, 0x3D, 0x13,
+ 0x1D, 0x19, 0xBD, 0x3A, 0x77, 0x32, 0xBD, 0x23, 0x0B, 0x53, 0x3D, 0xFF,
+ 0x0F, 0xC6, 0x3C, 0xEE, 0x73, 0x84, 0xBB, 0x33, 0x19, 0x77, 0x3D, 0xBA,
+ 0x0A, 0xE4, 0xBC, 0x7B, 0x56, 0x91, 0x3C, 0xF9, 0x19, 0xBC, 0xBC, 0x93,
+ 0xD6, 0x81, 0x3D, 0x34, 0x88, 0x55, 0xBD, 0x2E, 0xB1, 0xC7, 0xBC, 0xCB,
+ 0xF5, 0xD6, 0x3D, 0x42, 0xC0, 0x41, 0x3D, 0x70, 0xB2, 0xC1, 0xBB, 0x31,
+ 0x1A, 0x5B, 0xBD, 0xEE, 0xCE, 0x48, 0xBD, 0x9E, 0xCC, 0xD7, 0xBC, 0x81,
+ 0x2E, 0x8B, 0x3C, 0x71, 0x02, 0x95, 0x3C, 0x7A, 0xBE, 0x70, 0x3D, 0xC9,
+ 0xF5, 0x3D, 0xBC, 0x0D, 0x05, 0xFB, 0xBB, 0xF9, 0x0D, 0x75, 0xBD, 0x0F,
+ 0xDE, 0xB8, 0xBD, 0xD5, 0x79, 0x7B, 0x3D, 0xE0, 0xA0, 0x08, 0x3D, 0xB7,
+ 0xE0, 0x94, 0xBC, 0x5D, 0xFB, 0xCE, 0xBD, 0x02, 0xE5, 0xD3, 0x3D, 0x5E,
+ 0x01, 0xA9, 0x3D, 0x46, 0xD8, 0x69, 0xBD, 0x29, 0xBB, 0x3C, 0xBD, 0xE7,
+ 0x1C, 0x18, 0xBD, 0x2E, 0x19, 0xB2, 0xBC, 0xDB, 0x94, 0x07, 0xBB, 0x04,
+ 0x0E, 0x92, 0x3C, 0x70, 0xE8, 0x27, 0x3C, 0xE9, 0x6D, 0x26, 0xBC, 0x9B,
+ 0x94, 0xCB, 0x3C, 0xD8, 0xC3, 0x47, 0x3D, 0x52, 0x11, 0xD4, 0xBA, 0x20,
+ 0x0A, 0x1A, 0xBD, 0x52, 0x83, 0xD9, 0xBB, 0x85, 0x53, 0x90, 0x3A, 0x4D,
+ 0xDD, 0x38, 0xBB, 0xA9, 0xDD, 0xB8, 0xBC, 0x65, 0x7C, 0xF8, 0xBC, 0x03,
+ 0x2D, 0xCC, 0x3C, 0x4B, 0x0C, 0xDB, 0xBD, 0x10, 0x1E, 0x04, 0x3D, 0xCD,
+ 0x68, 0x71, 0xBD, 0x32, 0xDA, 0xC5, 0xBD, 0x28, 0x30, 0x2C, 0x3C, 0xB0,
+ 0x59, 0x68, 0x3D, 0xDD, 0x22, 0x9B, 0xBD, 0x98, 0xFD, 0x66, 0x3D, 0x24,
+ 0x02, 0xD3, 0x3C, 0x64, 0xF4, 0x8D, 0x3D, 0x47, 0x84, 0xCD, 0xBC, 0xCB,
+ 0xA0, 0xA5, 0xBD, 0xBE, 0xA6, 0x35, 0xBD, 0xAE, 0x91, 0x83, 0x3D, 0xF3,
+ 0x99, 0x4D, 0x3C, 0xD7, 0x06, 0x3D, 0x3E, 0xFB, 0x73, 0x0A, 0x3E, 0xB9,
+ 0xC0, 0x35, 0x3E, 0x33, 0x92, 0xF4, 0xBA, 0xDB, 0xD5, 0xE4, 0xBB, 0x9F,
+ 0x46, 0x0D, 0x3C, 0x6F, 0xD1, 0xCA, 0xB9, 0x25, 0x7F, 0x18, 0x3C, 0xD3,
+ 0xBF, 0x69, 0x3C, 0xD5, 0xD5, 0x5A, 0xBD, 0xDA, 0x41, 0x2D, 0xBE, 0x0A,
+ 0x44, 0x0A, 0x07, 0x43, 0x6F, 0x6E, 0x73, 0x74, 0x5F, 0x36, 0x12, 0x05,
+ 0x43, 0x6F, 0x6E, 0x73, 0x74, 0x2A, 0x25, 0x0A, 0x05, 0x76, 0x61, 0x6C,
+ 0x75, 0x65, 0x12, 0x1C, 0x42, 0x1A, 0x08, 0x01, 0x12, 0x04, 0x12, 0x02,
+ 0x08, 0x04, 0x22, 0x10, 0x6F, 0x6F, 0x40, 0xBA, 0x5B, 0xF1, 0x90, 0x3B,
+ 0xA3, 0xA9, 0x20, 0x3B, 0x00, 0x78, 0x29, 0x3B, 0x2A, 0x0B, 0x0A, 0x05,
+ 0x64, 0x74, 0x79, 0x70, 0x65, 0x12, 0x02, 0x30, 0x01, 0x0A, 0x9B, 0x01,
+ 0x0A, 0x06, 0x43, 0x6F, 0x6E, 0x76, 0x32, 0x44, 0x12, 0x06, 0x43, 0x6F,
+ 0x6E, 0x76, 0x32, 0x44, 0x1A, 0x09, 0x4D, 0x69, 0x72, 0x72, 0x6F, 0x72,
+ 0x50, 0x61, 0x64, 0x1A, 0x07, 0x43, 0x6F, 0x6E, 0x73, 0x74, 0x5F, 0x31,
+ 0x2A, 0x15, 0x0A, 0x09, 0x64, 0x69, 0x6C, 0x61, 0x74, 0x69, 0x6F, 0x6E,
+ 0x73, 0x12, 0x08, 0x0A, 0x06, 0x1A, 0x04, 0x01, 0x01, 0x01, 0x01, 0x2A,
+ 0x07, 0x0A, 0x01, 0x54, 0x12, 0x02, 0x30, 0x01, 0x2A, 0x13, 0x0A, 0x07,
+ 0x73, 0x74, 0x72, 0x69, 0x64, 0x65, 0x73, 0x12, 0x08, 0x0A, 0x06, 0x1A,
+ 0x04, 0x01, 0x01, 0x01, 0x01, 0x2A, 0x15, 0x0A, 0x0B, 0x64, 0x61, 0x74,
+ 0x61, 0x5F, 0x66, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x12, 0x06, 0x12, 0x04,
+ 0x4E, 0x48, 0x57, 0x43, 0x2A, 0x16, 0x0A, 0x10, 0x75, 0x73, 0x65, 0x5F,
+ 0x63, 0x75, 0x64, 0x6E, 0x6E, 0x5F, 0x6F, 0x6E, 0x5F, 0x67, 0x70, 0x75,
+ 0x12, 0x02, 0x28, 0x01, 0x2A, 0x11, 0x0A, 0x07, 0x70, 0x61, 0x64, 0x64,
+ 0x69, 0x6E, 0x67, 0x12, 0x06, 0x12, 0x04, 0x53, 0x41, 0x4D, 0x45, 0x0A,
+ 0x43, 0x0A, 0x07, 0x42, 0x69, 0x61, 0x73, 0x41, 0x64, 0x64, 0x12, 0x07,
+ 0x42, 0x69, 0x61, 0x73, 0x41, 0x64, 0x64, 0x1A, 0x06, 0x43, 0x6F, 0x6E,
+ 0x76, 0x32, 0x44, 0x1A, 0x07, 0x43, 0x6F, 0x6E, 0x73, 0x74, 0x5F, 0x32,
+ 0x2A, 0x07, 0x0A, 0x01, 0x54, 0x12, 0x02, 0x30, 0x01, 0x2A, 0x15, 0x0A,
+ 0x0B, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x66, 0x6F, 0x72, 0x6D, 0x61, 0x74,
+ 0x12, 0x06, 0x12, 0x04, 0x4E, 0x48, 0x57, 0x43, 0x0A, 0x1E, 0x0A, 0x04,
+ 0x54, 0x61, 0x6E, 0x68, 0x12, 0x04, 0x54, 0x61, 0x6E, 0x68, 0x1A, 0x07,
+ 0x42, 0x69, 0x61, 0x73, 0x41, 0x64, 0x64, 0x2A, 0x07, 0x0A, 0x01, 0x54,
+ 0x12, 0x02, 0x30, 0x01, 0x0A, 0x98, 0x01, 0x0A, 0x08, 0x43, 0x6F, 0x6E,
+ 0x76, 0x32, 0x44, 0x5F, 0x31, 0x12, 0x06, 0x43, 0x6F, 0x6E, 0x76, 0x32,
+ 0x44, 0x1A, 0x04, 0x54, 0x61, 0x6E, 0x68, 0x1A, 0x07, 0x43, 0x6F, 0x6E,
+ 0x73, 0x74, 0x5F, 0x33, 0x2A, 0x15, 0x0A, 0x09, 0x64, 0x69, 0x6C, 0x61,
+ 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x12, 0x08, 0x0A, 0x06, 0x1A, 0x04, 0x01,
+ 0x01, 0x01, 0x01, 0x2A, 0x07, 0x0A, 0x01, 0x54, 0x12, 0x02, 0x30, 0x01,
+ 0x2A, 0x15, 0x0A, 0x0B, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x66, 0x6F, 0x72,
+ 0x6D, 0x61, 0x74, 0x12, 0x06, 0x12, 0x04, 0x4E, 0x48, 0x57, 0x43, 0x2A,
+ 0x13, 0x0A, 0x07, 0x73, 0x74, 0x72, 0x69, 0x64, 0x65, 0x73, 0x12, 0x08,
+ 0x0A, 0x06, 0x1A, 0x04, 0x01, 0x01, 0x01, 0x01, 0x2A, 0x16, 0x0A, 0x10,
+ 0x75, 0x73, 0x65, 0x5F, 0x63, 0x75, 0x64, 0x6E, 0x6E, 0x5F, 0x6F, 0x6E,
+ 0x5F, 0x67, 0x70, 0x75, 0x12, 0x02, 0x28, 0x01, 0x2A, 0x11, 0x0A, 0x07,
+ 0x70, 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x12, 0x06, 0x12, 0x04, 0x53,
+ 0x41, 0x4D, 0x45, 0x0A, 0x47, 0x0A, 0x09, 0x42, 0x69, 0x61, 0x73, 0x41,
+ 0x64, 0x64, 0x5F, 0x31, 0x12, 0x07, 0x42, 0x69, 0x61, 0x73, 0x41, 0x64,
+ 0x64, 0x1A, 0x08, 0x43, 0x6F, 0x6E, 0x76, 0x32, 0x44, 0x5F, 0x31, 0x1A,
+ 0x07, 0x43, 0x6F, 0x6E, 0x73, 0x74, 0x5F, 0x34, 0x2A, 0x07, 0x0A, 0x01,
+ 0x54, 0x12, 0x02, 0x30, 0x01, 0x2A, 0x15, 0x0A, 0x0B, 0x64, 0x61, 0x74,
+ 0x61, 0x5F, 0x66, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x12, 0x06, 0x12, 0x04,
+ 0x4E, 0x48, 0x57, 0x43, 0x0A, 0x22, 0x0A, 0x06, 0x54, 0x61, 0x6E, 0x68,
+ 0x5F, 0x31, 0x12, 0x04, 0x54, 0x61, 0x6E, 0x68, 0x1A, 0x09, 0x42, 0x69,
+ 0x61, 0x73, 0x41, 0x64, 0x64, 0x5F, 0x31, 0x2A, 0x07, 0x0A, 0x01, 0x54,
+ 0x12, 0x02, 0x30, 0x01, 0x0A, 0x9A, 0x01, 0x0A, 0x08, 0x43, 0x6F, 0x6E,
+ 0x76, 0x32, 0x44, 0x5F, 0x32, 0x12, 0x06, 0x43, 0x6F, 0x6E, 0x76, 0x32,
+ 0x44, 0x1A, 0x06, 0x54, 0x61, 0x6E, 0x68, 0x5F, 0x31, 0x1A, 0x07, 0x43,
+ 0x6F, 0x6E, 0x73, 0x74, 0x5F, 0x35, 0x2A, 0x11, 0x0A, 0x07, 0x70, 0x61,
+ 0x64, 0x64, 0x69, 0x6E, 0x67, 0x12, 0x06, 0x12, 0x04, 0x53, 0x41, 0x4D,
+ 0x45, 0x2A, 0x15, 0x0A, 0x09, 0x64, 0x69, 0x6C, 0x61, 0x74, 0x69, 0x6F,
+ 0x6E, 0x73, 0x12, 0x08, 0x0A, 0x06, 0x1A, 0x04, 0x01, 0x01, 0x01, 0x01,
+ 0x2A, 0x07, 0x0A, 0x01, 0x54, 0x12, 0x02, 0x30, 0x01, 0x2A, 0x13, 0x0A,
+ 0x07, 0x73, 0x74, 0x72, 0x69, 0x64, 0x65, 0x73, 0x12, 0x08, 0x0A, 0x06,
+ 0x1A, 0x04, 0x01, 0x01, 0x01, 0x01, 0x2A, 0x15, 0x0A, 0x0B, 0x64, 0x61,
+ 0x74, 0x61, 0x5F, 0x66, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x12, 0x06, 0x12,
+ 0x04, 0x4E, 0x48, 0x57, 0x43, 0x2A, 0x16, 0x0A, 0x10, 0x75, 0x73, 0x65,
+ 0x5F, 0x63, 0x75, 0x64, 0x6E, 0x6E, 0x5F, 0x6F, 0x6E, 0x5F, 0x67, 0x70,
+ 0x75, 0x12, 0x02, 0x28, 0x01, 0x0A, 0x47, 0x0A, 0x09, 0x42, 0x69, 0x61,
+ 0x73, 0x41, 0x64, 0x64, 0x5F, 0x32, 0x12, 0x07, 0x42, 0x69, 0x61, 0x73,
+ 0x41, 0x64, 0x64, 0x1A, 0x08, 0x43, 0x6F, 0x6E, 0x76, 0x32, 0x44, 0x5F,
+ 0x32, 0x1A, 0x07, 0x43, 0x6F, 0x6E, 0x73, 0x74, 0x5F, 0x36, 0x2A, 0x07,
+ 0x0A, 0x01, 0x54, 0x12, 0x02, 0x30, 0x01, 0x2A, 0x15, 0x0A, 0x0B, 0x64,
+ 0x61, 0x74, 0x61, 0x5F, 0x66, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x12, 0x06,
+ 0x12, 0x04, 0x4E, 0x48, 0x57, 0x43, 0x0A, 0x26, 0x0A, 0x07, 0x53, 0x69,
+ 0x67, 0x6D, 0x6F, 0x69, 0x64, 0x12, 0x07, 0x53, 0x69, 0x67, 0x6D, 0x6F,
+ 0x69, 0x64, 0x1A, 0x09, 0x42, 0x69, 0x61, 0x73, 0x41, 0x64, 0x64, 0x5F,
+ 0x32, 0x2A, 0x07, 0x0A, 0x01, 0x54, 0x12, 0x02, 0x30, 0x01, 0x0A, 0x50,
+ 0x0A, 0x13, 0x73, 0x74, 0x72, 0x69, 0x64, 0x65, 0x64, 0x5F, 0x73, 0x6C,
+ 0x69, 0x63, 0x65, 0x2F, 0x73, 0x74, 0x61, 0x63, 0x6B, 0x12, 0x05, 0x43,
+ 0x6F, 0x6E, 0x73, 0x74, 0x2A, 0x25, 0x0A, 0x05, 0x76, 0x61, 0x6C, 0x75,
+ 0x65, 0x12, 0x1C, 0x42, 0x1A, 0x08, 0x03, 0x12, 0x04, 0x12, 0x02, 0x08,
+ 0x04, 0x22, 0x10, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x0B, 0x0A, 0x05, 0x64,
+ 0x74, 0x79, 0x70, 0x65, 0x12, 0x02, 0x30, 0x03, 0x0A, 0x52, 0x0A, 0x15,
+ 0x73, 0x74, 0x72, 0x69, 0x64, 0x65, 0x64, 0x5F, 0x73, 0x6C, 0x69, 0x63,
+ 0x65, 0x2F, 0x73, 0x74, 0x61, 0x63, 0x6B, 0x5F, 0x31, 0x12, 0x05, 0x43,
+ 0x6F, 0x6E, 0x73, 0x74, 0x2A, 0x25, 0x0A, 0x05, 0x76, 0x61, 0x6C, 0x75,
+ 0x65, 0x12, 0x1C, 0x42, 0x1A, 0x08, 0x03, 0x12, 0x04, 0x12, 0x02, 0x08,
+ 0x04, 0x22, 0x10, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFE,
+ 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x0B, 0x0A, 0x05, 0x64,
+ 0x74, 0x79, 0x70, 0x65, 0x12, 0x02, 0x30, 0x03, 0x0A, 0x52, 0x0A, 0x15,
+ 0x73, 0x74, 0x72, 0x69, 0x64, 0x65, 0x64, 0x5F, 0x73, 0x6C, 0x69, 0x63,
+ 0x65, 0x2F, 0x73, 0x74, 0x61, 0x63, 0x6B, 0x5F, 0x32, 0x12, 0x05, 0x43,
+ 0x6F, 0x6E, 0x73, 0x74, 0x2A, 0x25, 0x0A, 0x05, 0x76, 0x61, 0x6C, 0x75,
+ 0x65, 0x12, 0x1C, 0x42, 0x1A, 0x08, 0x03, 0x12, 0x04, 0x12, 0x02, 0x08,
+ 0x04, 0x22, 0x10, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2A, 0x0B, 0x0A, 0x05, 0x64,
+ 0x74, 0x79, 0x70, 0x65, 0x12, 0x02, 0x30, 0x03, 0x0A, 0xE3, 0x01, 0x0A,
+ 0x0D, 0x73, 0x74, 0x72, 0x69, 0x64, 0x65, 0x64, 0x5F, 0x73, 0x6C, 0x69,
+ 0x63, 0x65, 0x12, 0x0C, 0x53, 0x74, 0x72, 0x69, 0x64, 0x65, 0x64, 0x53,
+ 0x6C, 0x69, 0x63, 0x65, 0x1A, 0x07, 0x53, 0x69, 0x67, 0x6D, 0x6F, 0x69,
+ 0x64, 0x1A, 0x13, 0x73, 0x74, 0x72, 0x69, 0x64, 0x65, 0x64, 0x5F, 0x73,
+ 0x6C, 0x69, 0x63, 0x65, 0x2F, 0x73, 0x74, 0x61, 0x63, 0x6B, 0x1A, 0x15,
+ 0x73, 0x74, 0x72, 0x69, 0x64, 0x65, 0x64, 0x5F, 0x73, 0x6C, 0x69, 0x63,
+ 0x65, 0x2F, 0x73, 0x74, 0x61, 0x63, 0x6B, 0x5F, 0x31, 0x1A, 0x15, 0x73,
+ 0x74, 0x72, 0x69, 0x64, 0x65, 0x64, 0x5F, 0x73, 0x6C, 0x69, 0x63, 0x65,
+ 0x2F, 0x73, 0x74, 0x61, 0x63, 0x6B, 0x5F, 0x32, 0x2A, 0x16, 0x0A, 0x10,
+ 0x73, 0x68, 0x72, 0x69, 0x6E, 0x6B, 0x5F, 0x61, 0x78, 0x69, 0x73, 0x5F,
+ 0x6D, 0x61, 0x73, 0x6B, 0x12, 0x02, 0x18, 0x00, 0x2A, 0x13, 0x0A, 0x0D,
+ 0x65, 0x6C, 0x6C, 0x69, 0x70, 0x73, 0x69, 0x73, 0x5F, 0x6D, 0x61, 0x73,
+ 0x6B, 0x12, 0x02, 0x18, 0x00, 0x2A, 0x10, 0x0A, 0x0A, 0x62, 0x65, 0x67,
+ 0x69, 0x6E, 0x5F, 0x6D, 0x61, 0x73, 0x6B, 0x12, 0x02, 0x18, 0x09, 0x2A,
+ 0x13, 0x0A, 0x0D, 0x6E, 0x65, 0x77, 0x5F, 0x61, 0x78, 0x69, 0x73, 0x5F,
+ 0x6D, 0x61, 0x73, 0x6B, 0x12, 0x02, 0x18, 0x00, 0x2A, 0x0E, 0x0A, 0x08,
+ 0x65, 0x6E, 0x64, 0x5F, 0x6D, 0x61, 0x73, 0x6B, 0x12, 0x02, 0x18, 0x09,
+ 0x2A, 0x07, 0x0A, 0x01, 0x54, 0x12, 0x02, 0x30, 0x01, 0x2A, 0x0B, 0x0A,
+ 0x05, 0x49, 0x6E, 0x64, 0x65, 0x78, 0x12, 0x02, 0x30, 0x03, 0x0A, 0x52,
+ 0x0A, 0x01, 0x79, 0x12, 0x0C, 0x44, 0x65, 0x70, 0x74, 0x68, 0x54, 0x6F,
+ 0x53, 0x70, 0x61, 0x63, 0x65, 0x1A, 0x0D, 0x73, 0x74, 0x72, 0x69, 0x64,
+ 0x65, 0x64, 0x5F, 0x73, 0x6C, 0x69, 0x63, 0x65, 0x2A, 0x10, 0x0A, 0x0A,
+ 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x12, 0x02,
+ 0x18, 0x02, 0x2A, 0x07, 0x0A, 0x01, 0x54, 0x12, 0x02, 0x30, 0x01, 0x2A,
+ 0x15, 0x0A, 0x0B, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x66, 0x6F, 0x72, 0x6D,
+ 0x61, 0x74, 0x12, 0x06, 0x12, 0x04, 0x4E, 0x48, 0x57, 0x43, 0x22, 0x02,
+ 0x08, 0x1A
+};
+
+#endif
diff --git a/chromium/third_party/ffmpeg/libavfilter/dnn_interface.h b/chromium/third_party/ffmpeg/libavfilter/dnn_interface.h
index 909ba95edf1..6b820d1d5b8 100644
--- a/chromium/third_party/ffmpeg/libavfilter/dnn_interface.h
+++ b/chromium/third_party/ffmpeg/libavfilter/dnn_interface.h
@@ -30,7 +30,7 @@ typedef enum {DNN_SUCCESS, DNN_ERROR} DNNReturnType;
typedef enum {DNN_NATIVE, DNN_TF} DNNBackendType;
-typedef enum {DNN_SRCNN} DNNDefaultModel;
+typedef enum {DNN_SRCNN, DNN_ESPCN} DNNDefaultModel;
typedef struct DNNData{
float* data;
@@ -42,7 +42,7 @@ typedef struct DNNModel{
void* model;
// Sets model input and output, while allocating additional memory for intermediate calculations.
// Should be called at least once before model execution.
- DNNReturnType (*set_input_output)(void* model, const DNNData* input, const DNNData* output);
+ DNNReturnType (*set_input_output)(void* model, DNNData* input, DNNData* output);
} DNNModel;
// Stores pointers to functions for loading, executing, freeing DNN models for one of the backends.
diff --git a/chromium/third_party/ffmpeg/libavfilter/dnn_srcnn.h b/chromium/third_party/ffmpeg/libavfilter/dnn_srcnn.h
index ec7e586a776..b8237d10b59 100644
--- a/chromium/third_party/ffmpeg/libavfilter/dnn_srcnn.h
+++ b/chromium/third_party/ffmpeg/libavfilter/dnn_srcnn.h
@@ -20,13 +20,13 @@
/**
* @file
- * Default cnn weights for x2 upsampling with srcnn filter.
+ * Default cnn weights for x2 upsampling with srcnn model.
*/
#ifndef AVFILTER_DNN_SRCNN_H
#define AVFILTER_DNN_SRCNN_H
-static const float conv1_kernel[] = {
+static const float srcnn_conv1_kernel[] = {
-0.08866338f, 0.055409566f, 0.037196506f, -0.11961404f,
-0.12341991f, 0.29963422f, -0.0911817f, -0.00013613555f,
-0.049023595f, 0.038421184f, -0.077267796f, 0.027273094f,
@@ -1325,7 +1325,7 @@ static const float conv1_kernel[] = {
-0.013759381f, 0.026358005f, 0.088238746f, 0.082134426f
};
-static const float conv1_biases[] = {
+static const float srcnn_conv1_biases[] = {
-0.016606892f, -0.011107335f, -0.0048309686f, -0.04867378f,
-0.030040957f, -0.07297248f, -0.019458665f, -0.009738028f,
0.6951231f, -0.07369442f, -0.01354204f, 0.010336088f,
@@ -1344,7 +1344,7 @@ static const float conv1_biases[] = {
0.054407462f, -0.08068252f, -0.009446503f, -0.04663234f
};
-static const float conv2_kernel[] = {
+static const float srcnn_conv2_kernel[] = {
-0.24004751f, 0.1037138f, 0.11173403f, 0.04352092f,
-0.23728481f, 0.12153747f, -0.23676059f, -0.28548065f,
-0.612738f, -0.12218937f, -0.06005159f, 0.1850652f,
@@ -1859,7 +1859,7 @@ static const float conv2_kernel[] = {
0.11089696f, -0.08941251f, -0.3529318f, 0.0654588f
};
-static const float conv2_biases[] = {
+static const float srcnn_conv2_biases[] = {
0.12326373f, 0.13270757f, 0.07082674f, 0.051456157f,
0.058445618f, 0.13153197f, 0.0809729f, 0.10153213f,
0.055915363f, 0.05228166f, -0.11212896f, 0.07462141f,
@@ -1870,7 +1870,7 @@ static const float conv2_biases[] = {
-0.086404406f, 0.06046943f, -0.1733751f, 0.2654999f
};
-static const float conv3_kernel[] = {
+static const float srcnn_conv3_kernel[] = {
-0.01733648f, 0.01492609f, 0.019393086f, -0.004445322f,
0.026939709f, 0.00038831023f, 0.004221528f, 0.0050745453f,
0.0129861f, 0.008007169f, 0.008950762f, 0.005279691f,
@@ -2073,7 +2073,7 @@ static const float conv3_kernel[] = {
0.012931146f, 0.0046948805f, 0.013098622f, -0.015422701f
};
-static const float conv3_biases[] = {
+static const float srcnn_conv3_biases[] = {
0.05037664f
};
diff --git a/chromium/third_party/ffmpeg/libavfilter/framesync.c b/chromium/third_party/ffmpeg/libavfilter/framesync.c
index da12c58a618..22d3f091a3f 100644
--- a/chromium/third_party/ffmpeg/libavfilter/framesync.c
+++ b/chromium/third_party/ffmpeg/libavfilter/framesync.c
@@ -61,7 +61,7 @@ enum {
static int consume_from_fifos(FFFrameSync *fs);
-const AVClass *framesync_get_class(void)
+const AVClass *ff_framesync_get_class(void)
{
return &framesync_class;
}
diff --git a/chromium/third_party/ffmpeg/libavfilter/framesync.h b/chromium/third_party/ffmpeg/libavfilter/framesync.h
index abf3bf552b9..37743cccb72 100644
--- a/chromium/third_party/ffmpeg/libavfilter/framesync.h
+++ b/chromium/third_party/ffmpeg/libavfilter/framesync.h
@@ -211,7 +211,7 @@ typedef struct FFFrameSync {
/**
* Get the class for the framesync object.
*/
-const AVClass *framesync_get_class(void);
+const AVClass *ff_framesync_get_class(void);
/**
* Pre-initialize a frame sync structure.
@@ -304,11 +304,11 @@ static int name##_framesync_preinit(AVFilterContext *ctx) { \
return 0; \
} \
static const AVClass *name##_child_class_next(const AVClass *prev) { \
- return prev ? NULL : framesync_get_class(); \
+ return prev ? NULL : ff_framesync_get_class(); \
} \
static void *name##_child_next(void *obj, void *prev) { \
context *s = obj; \
- s->fs.class = framesync_get_class(); /* FIXME */ \
+ s->fs.class = ff_framesync_get_class(); /* FIXME */ \
return prev ? NULL : &s->field; \
} \
static const AVClass name##_class = { \
diff --git a/chromium/third_party/ffmpeg/libavfilter/graphdump.c b/chromium/third_party/ffmpeg/libavfilter/graphdump.c
index 73777191d63..8bc7b162d77 100644
--- a/chromium/third_party/ffmpeg/libavfilter/graphdump.c
+++ b/chromium/third_party/ffmpeg/libavfilter/graphdump.c
@@ -156,7 +156,7 @@ char *avfilter_graph_dump(AVFilterGraph *graph, const char *options)
AVBPrint buf;
char *dump;
- av_bprint_init(&buf, 0, 0);
+ av_bprint_init(&buf, 0, AV_BPRINT_SIZE_COUNT_ONLY);
avfilter_graph_dump_to_buf(&buf, graph);
av_bprint_init(&buf, buf.len + 1, buf.len + 1);
avfilter_graph_dump_to_buf(&buf, graph);
diff --git a/chromium/third_party/ffmpeg/libavfilter/opencl.h b/chromium/third_party/ffmpeg/libavfilter/opencl.h
index c0a45197853..1b7f1178653 100644
--- a/chromium/third_party/ffmpeg/libavfilter/opencl.h
+++ b/chromium/third_party/ffmpeg/libavfilter/opencl.h
@@ -46,6 +46,33 @@ typedef struct OpenCLFilterContext {
int output_height;
} OpenCLFilterContext;
+
+/**
+ * set argument to specific Kernel.
+ * This macro relies on usage of local label "fail" and variables:
+ * avctx, cle and err.
+ */
+#define CL_SET_KERNEL_ARG(kernel, arg_num, type, arg) \
+ cle = clSetKernelArg(kernel, arg_num, sizeof(type), arg); \
+ if (cle != CL_SUCCESS) { \
+ av_log(avctx, AV_LOG_ERROR, "Failed to set kernel " \
+ "argument %d: error %d.\n", arg_num, cle); \
+ err = AVERROR(EIO); \
+ goto fail; \
+ }
+
+/**
+ * A helper macro to handle OpenCL errors. It will assign errcode to
+ * variable err, log error msg, and jump to fail label on error.
+ */
+#define CL_FAIL_ON_ERROR(errcode, ...) do { \
+ if (cle != CL_SUCCESS) { \
+ av_log(avctx, AV_LOG_ERROR, __VA_ARGS__); \
+ err = errcode; \
+ goto fail; \
+ } \
+ } while(0)
+
/**
* Return that all inputs and outputs support only AV_PIX_FMT_OPENCL.
*/
diff --git a/chromium/third_party/ffmpeg/libavfilter/opencl/colorspace_common.cl b/chromium/third_party/ffmpeg/libavfilter/opencl/colorspace_common.cl
new file mode 100644
index 00000000000..94a4dd0e0ee
--- /dev/null
+++ b/chromium/third_party/ffmpeg/libavfilter/opencl/colorspace_common.cl
@@ -0,0 +1,220 @@
+/*
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#define ST2084_MAX_LUMINANCE 10000.0f
+#define REFERENCE_WHITE 100.0f
+
+#if chroma_loc == 1
+ #define chroma_sample(a,b,c,d) (((a) + (c)) * 0.5f)
+#elif chroma_loc == 3
+ #define chroma_sample(a,b,c,d) (a)
+#elif chroma_loc == 4
+ #define chroma_sample(a,b,c,d) (((a) + (b)) * 0.5f)
+#elif chroma_loc == 5
+ #define chroma_sample(a,b,c,d) (c)
+#elif chroma_loc == 6
+ #define chroma_sample(a,b,c,d) (((c) + (d)) * 0.5f)
+#else
+ #define chroma_sample(a,b,c,d) (((a) + (b) + (c) + (d)) * 0.25f)
+#endif
+
+constant const float ST2084_M1 = 0.1593017578125f;
+constant const float ST2084_M2 = 78.84375f;
+constant const float ST2084_C1 = 0.8359375f;
+constant const float ST2084_C2 = 18.8515625f;
+constant const float ST2084_C3 = 18.6875f;
+
+__constant float yuv2rgb_bt2020[] = {
+ 1.0f, 0.0f, 1.4746f,
+ 1.0f, -0.16455f, -0.57135f,
+ 1.0f, 1.8814f, 0.0f
+};
+
+__constant float yuv2rgb_bt709[] = {
+ 1.0f, 0.0f, 1.5748f,
+ 1.0f, -0.18732f, -0.46812f,
+ 1.0f, 1.8556f, 0.0f
+};
+
+__constant float rgb2yuv_bt709[] = {
+ 0.2126f, 0.7152f, 0.0722f,
+ -0.11457f, -0.38543f, 0.5f,
+ 0.5f, -0.45415f, -0.04585f
+};
+
+__constant float rgb2yuv_bt2020[] ={
+ 0.2627f, 0.678f, 0.0593f,
+ -0.1396f, -0.36037f, 0.5f,
+ 0.5f, -0.4598f, -0.0402f,
+};
+
+
+float get_luma_dst(float3 c) {
+ return luma_dst.x * c.x + luma_dst.y * c.y + luma_dst.z * c.z;
+}
+
+float get_luma_src(float3 c) {
+ return luma_src.x * c.x + luma_src.y * c.y + luma_src.z * c.z;
+}
+
+float3 get_chroma_sample(float3 a, float3 b, float3 c, float3 d) {
+ return chroma_sample(a, b, c, d);
+}
+
+float eotf_st2084(float x) {
+ float p = powr(x, 1.0f / ST2084_M2);
+ float a = max(p -ST2084_C1, 0.0f);
+ float b = max(ST2084_C2 - ST2084_C3 * p, 1e-6f);
+ float c = powr(a / b, 1.0f / ST2084_M1);
+ return x > 0.0f ? c * ST2084_MAX_LUMINANCE / REFERENCE_WHITE : 0.0f;
+}
+
+__constant const float HLG_A = 0.17883277f;
+__constant const float HLG_B = 0.28466892f;
+__constant const float HLG_C = 0.55991073f;
+
+// linearizer for HLG
+float inverse_oetf_hlg(float x) {
+ float a = 4.0f * x * x;
+ float b = exp((x - HLG_C) / HLG_A) + HLG_B;
+ return x < 0.5f ? a : b;
+}
+
+// delinearizer for HLG
+float oetf_hlg(float x) {
+ float a = 0.5f * sqrt(x);
+ float b = HLG_A * log(x - HLG_B) + HLG_C;
+ return x <= 1.0f ? a : b;
+}
+
+float3 ootf_hlg(float3 c, float peak) {
+ float luma = get_luma_src(c);
+ float gamma = 1.2f + 0.42f * log10(peak * REFERENCE_WHITE / 1000.0f);
+ gamma = max(1.0f, gamma);
+ float factor = peak * powr(luma, gamma - 1.0f) / powr(12.0f, gamma);
+ return c * factor;
+}
+
+float3 inverse_ootf_hlg(float3 c, float peak) {
+ float gamma = 1.2f + 0.42f * log10(peak * REFERENCE_WHITE / 1000.0f);
+ c *= powr(12.0f, gamma) / peak;
+ c /= powr(get_luma_dst(c), (gamma - 1.0f) / gamma);
+ return c;
+}
+
+float inverse_eotf_bt1886(float c) {
+ return c < 0.0f ? 0.0f : powr(c, 1.0f / 2.4f);
+}
+
+float oetf_bt709(float c) {
+ c = c < 0.0f ? 0.0f : c;
+ float r1 = 4.5f * c;
+ float r2 = 1.099f * powr(c, 0.45f) - 0.099f;
+ return c < 0.018f ? r1 : r2;
+}
+float inverse_oetf_bt709(float c) {
+ float r1 = c / 4.5f;
+ float r2 = powr((c + 0.099f) / 1.099f, 1.0f / 0.45f);
+ return c < 0.081f ? r1 : r2;
+}
+
+float3 yuv2rgb(float y, float u, float v) {
+#ifdef FULL_RANGE_IN
+ u -= 0.5f; v -= 0.5f;
+#else
+ y = (y * 255.0f - 16.0f) / 219.0f;
+ u = (u * 255.0f - 128.0f) / 224.0f;
+ v = (v * 255.0f - 128.0f) / 224.0f;
+#endif
+ float r = y * rgb_matrix[0] + u * rgb_matrix[1] + v * rgb_matrix[2];
+ float g = y * rgb_matrix[3] + u * rgb_matrix[4] + v * rgb_matrix[5];
+ float b = y * rgb_matrix[6] + u * rgb_matrix[7] + v * rgb_matrix[8];
+ return (float3)(r, g, b);
+}
+
+float3 yuv2lrgb(float3 yuv) {
+ float3 rgb = yuv2rgb(yuv.x, yuv.y, yuv.z);
+ float r = linearize(rgb.x);
+ float g = linearize(rgb.y);
+ float b = linearize(rgb.z);
+ return (float3)(r, g, b);
+}
+
+float3 rgb2yuv(float r, float g, float b) {
+ float y = r*yuv_matrix[0] + g*yuv_matrix[1] + b*yuv_matrix[2];
+ float u = r*yuv_matrix[3] + g*yuv_matrix[4] + b*yuv_matrix[5];
+ float v = r*yuv_matrix[6] + g*yuv_matrix[7] + b*yuv_matrix[8];
+#ifdef FULL_RANGE_OUT
+ u += 0.5f; v += 0.5f;
+#else
+ y = (219.0f * y + 16.0f) / 255.0f;
+ u = (224.0f * u + 128.0f) / 255.0f;
+ v = (224.0f * v + 128.0f) / 255.0f;
+#endif
+ return (float3)(y, u, v);
+}
+
+float rgb2y(float r, float g, float b) {
+ float y = r*yuv_matrix[0] + g*yuv_matrix[1] + b*yuv_matrix[2];
+ y = (219.0f * y + 16.0f) / 255.0f;
+ return y;
+}
+
+float3 lrgb2yuv(float3 c) {
+ float r = delinearize(c.x);
+ float g = delinearize(c.y);
+ float b = delinearize(c.z);
+
+ return rgb2yuv(r, g, b);
+}
+
+float lrgb2y(float3 c) {
+ float r = delinearize(c.x);
+ float g = delinearize(c.y);
+ float b = delinearize(c.z);
+
+ return rgb2y(r, g, b);
+}
+
+float3 lrgb2lrgb(float3 c) {
+#ifdef RGB2RGB_PASSTHROUGH
+ return c;
+#else
+ float r = c.x, g = c.y, b = c.z;
+ float rr = rgb2rgb[0] * r + rgb2rgb[1] * g + rgb2rgb[2] * b;
+ float gg = rgb2rgb[3] * r + rgb2rgb[4] * g + rgb2rgb[5] * b;
+ float bb = rgb2rgb[6] * r + rgb2rgb[7] * g + rgb2rgb[8] * b;
+ return (float3)(rr, gg, bb);
+#endif
+}
+
+float3 ootf(float3 c, float peak) {
+#ifdef ootf_impl
+ return ootf_impl(c, peak);
+#else
+ return c;
+#endif
+}
+
+float3 inverse_ootf(float3 c, float peak) {
+#ifdef inverse_ootf_impl
+ return inverse_ootf_impl(c, peak);
+#else
+ return c;
+#endif
+}
diff --git a/chromium/third_party/ffmpeg/libavfilter/opencl/convolution.cl b/chromium/third_party/ffmpeg/libavfilter/opencl/convolution.cl
index 03ef4eff1bc..815c7792725 100644
--- a/chromium/third_party/ffmpeg/libavfilter/opencl/convolution.cl
+++ b/chromium/third_party/ffmpeg/libavfilter/opencl/convolution.cl
@@ -43,3 +43,85 @@ __kernel void convolution_global(__write_only image2d_t dst,
float4 dstPix = convPix * div + bias;
write_imagef(dst, loc, dstPix);
}
+
+
+__kernel void sobel_global(__write_only image2d_t dst,
+ __read_only image2d_t src,
+ float div,
+ float bias)
+{
+ const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
+ CLK_ADDRESS_CLAMP_TO_EDGE |
+ CLK_FILTER_NEAREST);
+
+ int2 loc = (int2)(get_global_id(0), get_global_id(1));
+
+ float4 sum1 = read_imagef(src, sampler, loc + (int2)(-1,-1)) * -1 +
+ read_imagef(src, sampler, loc + (int2)( 0,-1)) * -2 +
+ read_imagef(src, sampler, loc + (int2)( 1,-1)) * -1 +
+ read_imagef(src, sampler, loc + (int2)(-1, 1)) * 1 +
+ read_imagef(src, sampler, loc + (int2)( 0, 1)) * 2 +
+ read_imagef(src, sampler, loc + (int2)( 1, 1)) * 1;
+
+ float4 sum2 = read_imagef(src, sampler, loc + (int2)(-1,-1)) * -1 +
+ read_imagef(src, sampler, loc + (int2)(-1, 0)) * -2 +
+ read_imagef(src, sampler, loc + (int2)(-1, 1)) * -1 +
+ read_imagef(src, sampler, loc + (int2)( 1,-1)) * 1 +
+ read_imagef(src, sampler, loc + (int2)( 1, 0)) * 2 +
+ read_imagef(src, sampler, loc + (int2)( 1, 1)) * 1;
+
+ float4 dstPix = hypot(sum1, sum2) * div + bias;
+ write_imagef(dst, loc, dstPix);
+}
+
+__kernel void prewitt_global(__write_only image2d_t dst,
+ __read_only image2d_t src,
+ float div,
+ float bias)
+{
+ const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
+ CLK_ADDRESS_CLAMP_TO_EDGE |
+ CLK_FILTER_NEAREST);
+
+ int2 loc = (int2)(get_global_id(0), get_global_id(1));
+
+ float4 sum1 = read_imagef(src, sampler, loc + (int2)(-1,-1)) * 1 +
+ read_imagef(src, sampler, loc + (int2)( 0,-1)) * 1 +
+ read_imagef(src, sampler, loc + (int2)( 1,-1)) * 1 +
+ read_imagef(src, sampler, loc + (int2)(-1, 1)) * -1 +
+ read_imagef(src, sampler, loc + (int2)( 0, 1)) * -1 +
+ read_imagef(src, sampler, loc + (int2)( 1, 1)) * -1;
+
+ float4 sum2 = read_imagef(src, sampler, loc + (int2)(-1,-1)) * 1 +
+ read_imagef(src, sampler, loc + (int2)(-1, 0)) * 1 +
+ read_imagef(src, sampler, loc + (int2)(-1, 1)) * 1 +
+ read_imagef(src, sampler, loc + (int2)( 1,-1)) * -1 +
+ read_imagef(src, sampler, loc + (int2)( 1, 0)) * -1 +
+ read_imagef(src, sampler, loc + (int2)( 1, 1)) * -1;
+
+ float4 dstPix = hypot(sum1, sum2) * div + bias;
+ write_imagef(dst, loc, dstPix);
+}
+
+__kernel void roberts_global(__write_only image2d_t dst,
+ __read_only image2d_t src,
+ float div,
+ float bias)
+{
+ const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
+ CLK_ADDRESS_CLAMP_TO_EDGE |
+ CLK_FILTER_NEAREST);
+
+ int2 loc = (int2)(get_global_id(0), get_global_id(1));
+
+ float4 sum1 = read_imagef(src, sampler, loc + (int2)(-1,-1)) * 1 +
+ read_imagef(src, sampler, loc + (int2)( 0,-1)) * -1;
+
+
+ float4 sum2 = read_imagef(src, sampler, loc + (int2)(-1, 0)) * -1 +
+ read_imagef(src, sampler, loc + (int2)( 0, 0)) * 1;
+
+
+ float4 dstPix = hypot(sum1, sum2) * div + bias;
+ write_imagef(dst, loc, dstPix);
+}
diff --git a/chromium/third_party/ffmpeg/libavfilter/opencl/tonemap.cl b/chromium/third_party/ffmpeg/libavfilter/opencl/tonemap.cl
new file mode 100644
index 00000000000..9448ba4552e
--- /dev/null
+++ b/chromium/third_party/ffmpeg/libavfilter/opencl/tonemap.cl
@@ -0,0 +1,272 @@
+/*
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#define REFERENCE_WHITE 100.0f
+extern float3 lrgb2yuv(float3);
+extern float lrgb2y(float3);
+extern float3 yuv2lrgb(float3);
+extern float3 lrgb2lrgb(float3);
+extern float get_luma_src(float3);
+extern float get_luma_dst(float3);
+extern float3 ootf(float3 c, float peak);
+extern float3 inverse_ootf(float3 c, float peak);
+extern float3 get_chroma_sample(float3, float3, float3, float3);
+
+struct detection_result {
+ float peak;
+ float average;
+};
+
+float hable_f(float in) {
+ float a = 0.15f, b = 0.50f, c = 0.10f, d = 0.20f, e = 0.02f, f = 0.30f;
+ return (in * (in * a + b * c) + d * e) / (in * (in * a + b) + d * f) - e / f;
+}
+
+float direct(float s, float peak) {
+ return s;
+}
+
+float linear(float s, float peak) {
+ return s * tone_param / peak;
+}
+
+float gamma(float s, float peak) {
+ float p = s > 0.05f ? s /peak : 0.05f / peak;
+ float v = powr(p, 1.0f / tone_param);
+ return s > 0.05f ? v : (s * v /0.05f);
+}
+
+float clip(float s, float peak) {
+ return clamp(s * tone_param, 0.0f, 1.0f);
+}
+
+float reinhard(float s, float peak) {
+ return s / (s + tone_param) * (peak + tone_param) / peak;
+}
+
+float hable(float s, float peak) {
+ return hable_f(s)/hable_f(peak);
+}
+
+float mobius(float s, float peak) {
+ float j = tone_param;
+ float a, b;
+
+ if (s <= j)
+ return s;
+
+ a = -j * j * (peak - 1.0f) / (j * j - 2.0f * j + peak);
+ b = (j * j - 2.0f * j * peak + peak) / max(peak - 1.0f, 1e-6f);
+
+ return (b * b + 2.0f * b * j + j * j) / (b - a) * (s + a) / (s + b);
+}
+
+// detect peak/average signal of a frame, the algorithm was ported from:
+// libplacebo (https://github.com/haasn/libplacebo)
+struct detection_result
+detect_peak_avg(global uint *util_buf, __local uint *sum_wg,
+ float signal, float peak) {
+// layout of the util buffer
+//
+// Name: : Size (units of 4-bytes)
+// average buffer : detection_frames + 1
+// peak buffer : detection_frames + 1
+// workgroup counter : 1
+// total of peak : 1
+// total of average : 1
+// frame index : 1
+// frame number : 1
+ global uint *avg_buf = util_buf;
+ global uint *peak_buf = avg_buf + DETECTION_FRAMES + 1;
+ global uint *counter_wg_p = peak_buf + DETECTION_FRAMES + 1;
+ global uint *max_total_p = counter_wg_p + 1;
+ global uint *avg_total_p = max_total_p + 1;
+ global uint *frame_idx_p = avg_total_p + 1;
+ global uint *scene_frame_num_p = frame_idx_p + 1;
+
+ uint frame_idx = *frame_idx_p;
+ uint scene_frame_num = *scene_frame_num_p;
+
+ size_t lidx = get_local_id(0);
+ size_t lidy = get_local_id(1);
+ size_t lsizex = get_local_size(0);
+ size_t lsizey = get_local_size(1);
+ uint num_wg = get_num_groups(0) * get_num_groups(1);
+ size_t group_idx = get_group_id(0);
+ size_t group_idy = get_group_id(1);
+ struct detection_result r = {peak, sdr_avg};
+ if (lidx == 0 && lidy == 0)
+ *sum_wg = 0;
+ barrier(CLK_LOCAL_MEM_FENCE);
+
+ // update workgroup sum
+ atomic_add(sum_wg, (uint)(signal * REFERENCE_WHITE));
+ barrier(CLK_LOCAL_MEM_FENCE);
+
+ // update frame peak/avg using work-group-average.
+ if (lidx == 0 && lidy == 0) {
+ uint avg_wg = *sum_wg / (lsizex * lsizey);
+ atomic_max(&peak_buf[frame_idx], avg_wg);
+ atomic_add(&avg_buf[frame_idx], avg_wg);
+ }
+
+ if (scene_frame_num > 0) {
+ float peak = (float)*max_total_p / (REFERENCE_WHITE * scene_frame_num);
+ float avg = (float)*avg_total_p / (REFERENCE_WHITE * scene_frame_num);
+ r.peak = max(1.0f, peak);
+ r.average = max(0.25f, avg);
+ }
+
+ if (lidx == 0 && lidy == 0 && atomic_add(counter_wg_p, 1) == num_wg - 1) {
+ *counter_wg_p = 0;
+ avg_buf[frame_idx] /= num_wg;
+
+ if (scene_threshold > 0.0f) {
+ uint cur_max = peak_buf[frame_idx];
+ uint cur_avg = avg_buf[frame_idx];
+ int diff = (int)(scene_frame_num * cur_avg) - (int)*avg_total_p;
+
+ if (abs(diff) > scene_frame_num * scene_threshold * REFERENCE_WHITE) {
+ for (uint i = 0; i < DETECTION_FRAMES + 1; i++)
+ avg_buf[i] = 0;
+ for (uint i = 0; i < DETECTION_FRAMES + 1; i++)
+ peak_buf[i] = 0;
+ *avg_total_p = *max_total_p = 0;
+ *scene_frame_num_p = 0;
+ avg_buf[frame_idx] = cur_avg;
+ peak_buf[frame_idx] = cur_max;
+ }
+ }
+ uint next = (frame_idx + 1) % (DETECTION_FRAMES + 1);
+ // add current frame, subtract next frame
+ *max_total_p += peak_buf[frame_idx] - peak_buf[next];
+ *avg_total_p += avg_buf[frame_idx] - avg_buf[next];
+ // reset next frame
+ peak_buf[next] = avg_buf[next] = 0;
+ *frame_idx_p = next;
+ *scene_frame_num_p = min(*scene_frame_num_p + 1,
+ (uint)DETECTION_FRAMES);
+ }
+ return r;
+}
+
+float3 map_one_pixel_rgb(float3 rgb, float peak, float average) {
+ float sig = max(max(rgb.x, max(rgb.y, rgb.z)), 1e-6f);
+
+ // Rescale the variables in order to bring it into a representation where
+ // 1.0 represents the dst_peak. This is because all of the tone mapping
+ // algorithms are defined in such a way that they map to the range [0.0, 1.0].
+ if (target_peak > 1.0f) {
+ sig *= 1.0f / target_peak;
+ peak *= 1.0f / target_peak;
+ }
+
+ float sig_old = sig;
+
+ // Scale the signal to compensate for differences in the average brightness
+ float slope = min(1.0f, sdr_avg / average);
+ sig *= slope;
+ peak *= slope;
+
+ // Desaturate the color using a coefficient dependent on the signal level
+ if (desat_param > 0.0f) {
+ float luma = get_luma_dst(rgb);
+ float coeff = max(sig - 0.18f, 1e-6f) / max(sig, 1e-6f);
+ coeff = native_powr(coeff, 10.0f / desat_param);
+ rgb = mix(rgb, (float3)luma, (float3)coeff);
+ sig = mix(sig, luma * slope, coeff);
+ }
+
+ sig = TONE_FUNC(sig, peak);
+
+ sig = min(sig, 1.0f);
+ rgb *= (sig/sig_old);
+ return rgb;
+}
+// map from source space YUV to destination space RGB
+float3 map_to_dst_space_from_yuv(float3 yuv, float peak) {
+ float3 c = yuv2lrgb(yuv);
+ c = ootf(c, peak);
+ c = lrgb2lrgb(c);
+ return c;
+}
+
+__kernel void tonemap(__write_only image2d_t dst1,
+ __read_only image2d_t src1,
+ __write_only image2d_t dst2,
+ __read_only image2d_t src2,
+ global uint *util_buf,
+ float peak
+ )
+{
+ __local uint sum_wg;
+ const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
+ CLK_ADDRESS_CLAMP_TO_EDGE |
+ CLK_FILTER_NEAREST);
+ int xi = get_global_id(0);
+ int yi = get_global_id(1);
+ // each work item process four pixels
+ int x = 2 * xi;
+ int y = 2 * yi;
+
+ float y0 = read_imagef(src1, sampler, (int2)(x, y)).x;
+ float y1 = read_imagef(src1, sampler, (int2)(x + 1, y)).x;
+ float y2 = read_imagef(src1, sampler, (int2)(x, y + 1)).x;
+ float y3 = read_imagef(src1, sampler, (int2)(x + 1, y + 1)).x;
+ float2 uv = read_imagef(src2, sampler, (int2)(xi, yi)).xy;
+
+ float3 c0 = map_to_dst_space_from_yuv((float3)(y0, uv.x, uv.y), peak);
+ float3 c1 = map_to_dst_space_from_yuv((float3)(y1, uv.x, uv.y), peak);
+ float3 c2 = map_to_dst_space_from_yuv((float3)(y2, uv.x, uv.y), peak);
+ float3 c3 = map_to_dst_space_from_yuv((float3)(y3, uv.x, uv.y), peak);
+
+ float sig0 = max(c0.x, max(c0.y, c0.z));
+ float sig1 = max(c1.x, max(c1.y, c1.z));
+ float sig2 = max(c2.x, max(c2.y, c2.z));
+ float sig3 = max(c3.x, max(c3.y, c3.z));
+ float sig = max(sig0, max(sig1, max(sig2, sig3)));
+
+ struct detection_result r = detect_peak_avg(util_buf, &sum_wg, sig, peak);
+
+ float3 c0_old = c0, c1_old = c1, c2_old = c2;
+ c0 = map_one_pixel_rgb(c0, r.peak, r.average);
+ c1 = map_one_pixel_rgb(c1, r.peak, r.average);
+ c2 = map_one_pixel_rgb(c2, r.peak, r.average);
+ c3 = map_one_pixel_rgb(c3, r.peak, r.average);
+
+ c0 = inverse_ootf(c0, target_peak);
+ c1 = inverse_ootf(c1, target_peak);
+ c2 = inverse_ootf(c2, target_peak);
+ c3 = inverse_ootf(c3, target_peak);
+
+ y0 = lrgb2y(c0);
+ y1 = lrgb2y(c1);
+ y2 = lrgb2y(c2);
+ y3 = lrgb2y(c3);
+ float3 chroma_c = get_chroma_sample(c0, c1, c2, c3);
+ float3 chroma = lrgb2yuv(chroma_c);
+
+ if (xi < get_image_width(dst2) && yi < get_image_height(dst2)) {
+ write_imagef(dst1, (int2)(x, y), (float4)(y0, 0.0f, 0.0f, 1.0f));
+ write_imagef(dst1, (int2)(x+1, y), (float4)(y1, 0.0f, 0.0f, 1.0f));
+ write_imagef(dst1, (int2)(x, y+1), (float4)(y2, 0.0f, 0.0f, 1.0f));
+ write_imagef(dst1, (int2)(x+1, y+1), (float4)(y3, 0.0f, 0.0f, 1.0f));
+ write_imagef(dst2, (int2)(xi, yi),
+ (float4)(chroma.y, chroma.z, 0.0f, 1.0f));
+ }
+}
diff --git a/chromium/third_party/ffmpeg/libavfilter/opencl_source.h b/chromium/third_party/ffmpeg/libavfilter/opencl_source.h
index 4bb996924e4..de4e66e5460 100644
--- a/chromium/third_party/ffmpeg/libavfilter/opencl_source.h
+++ b/chromium/third_party/ffmpeg/libavfilter/opencl_source.h
@@ -20,8 +20,10 @@
#define AVFILTER_OPENCL_SOURCE_H
extern const char *ff_opencl_source_avgblur;
+extern const char *ff_opencl_source_colorspace_common;
extern const char *ff_opencl_source_convolution;
extern const char *ff_opencl_source_overlay;
+extern const char *ff_opencl_source_tonemap;
extern const char *ff_opencl_source_unsharp;
#endif /* AVFILTER_OPENCL_SOURCE_H */
diff --git a/chromium/third_party/ffmpeg/libavfilter/setpts.c b/chromium/third_party/ffmpeg/libavfilter/setpts.c
index 4505498bf34..800ba6a83fc 100644
--- a/chromium/third_party/ffmpeg/libavfilter/setpts.c
+++ b/chromium/third_party/ffmpeg/libavfilter/setpts.c
@@ -57,6 +57,7 @@ static const char *const var_names[] = {
"RTCSTART", ///< wallclock (RTC) time at the start of the movie in micro seconds
"S", // Number of samples in the current frame
"SR", // Audio sample rate
+ "FR", ///< defined only for constant frame-rate video
NULL
};
@@ -81,6 +82,7 @@ enum var_name {
VAR_RTCSTART,
VAR_S,
VAR_SR,
+ VAR_FR,
VAR_VARS_NB
};
@@ -127,7 +129,8 @@ static int config_input(AVFilterLink *inlink)
setpts->var_values[VAR_SAMPLE_RATE] =
setpts->type == AVMEDIA_TYPE_AUDIO ? inlink->sample_rate : NAN;
- setpts->var_values[VAR_FRAME_RATE] = inlink->frame_rate.num &&
+ setpts->var_values[VAR_FRAME_RATE] =
+ setpts->var_values[VAR_FR] = inlink->frame_rate.num &&
inlink->frame_rate.den ?
av_q2d(inlink->frame_rate) : NAN;
diff --git a/chromium/third_party/ffmpeg/libavfilter/version.h b/chromium/third_party/ffmpeg/libavfilter/version.h
index a7be7e64afa..0ac3a2f3a95 100644
--- a/chromium/third_party/ffmpeg/libavfilter/version.h
+++ b/chromium/third_party/ffmpeg/libavfilter/version.h
@@ -30,7 +30,7 @@
#include "libavutil/version.h"
#define LIBAVFILTER_VERSION_MAJOR 7
-#define LIBAVFILTER_VERSION_MINOR 25
+#define LIBAVFILTER_VERSION_MINOR 26
#define LIBAVFILTER_VERSION_MICRO 100
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
diff --git a/chromium/third_party/ffmpeg/libavfilter/vf_avgblur_opencl.c b/chromium/third_party/ffmpeg/libavfilter/vf_avgblur_opencl.c
index 48cebb58870..f0e5f01e045 100644
--- a/chromium/third_party/ffmpeg/libavfilter/vf_avgblur_opencl.c
+++ b/chromium/third_party/ffmpeg/libavfilter/vf_avgblur_opencl.c
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2018 Dylan Fernando
+ * Copyright (c) 2018 Danil Iashchenko
*
* This file is part of FFmpeg.
*
@@ -20,16 +21,14 @@
#include "libavutil/common.h"
#include "libavutil/imgutils.h"
-#include "libavutil/mem.h"
#include "libavutil/opt.h"
-#include "libavutil/pixdesc.h"
#include "avfilter.h"
#include "internal.h"
#include "opencl.h"
#include "opencl_source.h"
#include "video.h"
-
+#include "boxblur.h"
typedef struct AverageBlurOpenCLContext {
OpenCLFilterContext ocf;
@@ -39,10 +38,16 @@ typedef struct AverageBlurOpenCLContext {
cl_kernel kernel_vert;
cl_command_queue command_queue;
- int radius;
+ int radiusH;
int radiusV;
int planes;
+ FilterParam luma_param;
+ FilterParam chroma_param;
+ FilterParam alpha_param;
+ int radius[4];
+ int power[4];
+
} AverageBlurOpenCLContext;
@@ -59,30 +64,16 @@ static int avgblur_opencl_init(AVFilterContext *avctx)
ctx->command_queue = clCreateCommandQueue(ctx->ocf.hwctx->context,
ctx->ocf.hwctx->device_id,
0, &cle);
- if (!ctx->command_queue) {
- av_log(avctx, AV_LOG_ERROR, "Failed to create OpenCL "
- "command queue: %d.\n", cle);
- err = AVERROR(EIO);
- goto fail;
- }
+ CL_FAIL_ON_ERROR(AVERROR(EIO), "Failed to create OpenCL "
+ "command queue %d.\n", cle);
ctx->kernel_horiz = clCreateKernel(ctx->ocf.program,"avgblur_horiz", &cle);
- if (!ctx->kernel_horiz) {
- av_log(avctx, AV_LOG_ERROR, "Failed to create kernel: %d.\n", cle);
- err = AVERROR(EIO);
- goto fail;
- }
+ CL_FAIL_ON_ERROR(AVERROR(EIO), "Failed to create horizontal "
+ "kernel %d.\n", cle);
ctx->kernel_vert = clCreateKernel(ctx->ocf.program,"avgblur_vert", &cle);
- if (!ctx->kernel_vert) {
- av_log(avctx, AV_LOG_ERROR, "Failed to create kernel: %d.\n", cle);
- err = AVERROR(EIO);
- goto fail;
- }
-
- if (ctx->radiusV <= 0) {
- ctx->radiusV = ctx->radius;
- }
+ CL_FAIL_ON_ERROR(AVERROR(EIO), "Failed to create vertical "
+ "kernel %d.\n", cle);
ctx->initialised = 1;
return 0;
@@ -97,6 +88,60 @@ fail:
return err;
}
+
+static int avgblur_opencl_make_filter_params(AVFilterLink *inlink)
+{
+ AVFilterContext *ctx = inlink->dst;
+ AverageBlurOpenCLContext *s = ctx->priv;
+ int i;
+
+ if (s->radiusV <= 0) {
+ s->radiusV = s->radiusH;
+ }
+
+ for (i = 0; i < 4; i++) {
+ s->power[i] = 1;
+ }
+ return 0;
+}
+
+
+static int boxblur_opencl_make_filter_params(AVFilterLink *inlink)
+{
+ AVFilterContext *ctx = inlink->dst;
+ AverageBlurOpenCLContext *s = ctx->priv;
+ int err, i;
+
+ err = ff_boxblur_eval_filter_params(inlink,
+ &s->luma_param,
+ &s->chroma_param,
+ &s->alpha_param);
+
+ if (err != 0) {
+ av_log(ctx, AV_LOG_ERROR, "Failed to evaluate "
+ "filter params: %d.\n", err);
+ return err;
+ }
+
+ s->radius[Y] = s->luma_param.radius;
+ s->radius[U] = s->radius[V] = s->chroma_param.radius;
+ s->radius[A] = s->alpha_param.radius;
+
+ s->power[Y] = s->luma_param.power;
+ s->power[U] = s->power[V] = s->chroma_param.power;
+ s->power[A] = s->alpha_param.power;
+
+ for (i = 0; i < 4; i++) {
+ if (s->power[i] == 0) {
+ s->power[i] = 1;
+ s->radius[i] = 0;
+ }
+ }
+
+ return 0;
+}
+
+
static int avgblur_opencl_filter_frame(AVFilterLink *inlink, AVFrame *input)
{
AVFilterContext *avctx = inlink->dst;
@@ -107,7 +152,7 @@ static int avgblur_opencl_filter_frame(AVFilterLink *inlink, AVFrame *input)
cl_int cle;
size_t global_work[2];
cl_mem src, dst, inter;
- int err, p, radius_x, radius_y;
+ int err, p, radius_x, radius_y, i;
av_log(ctx, AV_LOG_DEBUG, "Filter input: %s, %ux%u (%"PRId64").\n",
av_get_pix_fmt_name(input->format),
@@ -121,6 +166,16 @@ static int avgblur_opencl_filter_frame(AVFilterLink *inlink, AVFrame *input)
if (err < 0)
goto fail;
+ if (!strcmp(avctx->filter->name, "avgblur_opencl")) {
+ err = avgblur_opencl_make_filter_params(inlink);
+ if (err < 0)
+ goto fail;
+ } else if (!strcmp(avctx->filter->name, "boxblur_opencl")) {
+ err = boxblur_opencl_make_filter_params(inlink);
+ if (err < 0)
+ goto fail;
+ }
+
}
output = ff_get_video_buffer(outlink, outlink->w, outlink->h);
@@ -128,7 +183,6 @@ static int avgblur_opencl_filter_frame(AVFilterLink *inlink, AVFrame *input)
err = AVERROR(ENOMEM);
goto fail;
}
-
intermediate = ff_get_video_buffer(outlink, outlink->w, outlink->h);
if (!intermediate) {
err = AVERROR(ENOMEM);
@@ -137,13 +191,13 @@ static int avgblur_opencl_filter_frame(AVFilterLink *inlink, AVFrame *input)
for (p = 0; p < FF_ARRAY_ELEMS(output->data); p++) {
src = (cl_mem) input->data[p];
- dst = (cl_mem)output->data[p];
- inter = (cl_mem) intermediate->data[p];
+ dst = (cl_mem) output->data[p];
+ inter = (cl_mem)intermediate->data[p];
if (!dst)
break;
- radius_x = ctx->radius;
+ radius_x = ctx->radiusH;
radius_y = ctx->radiusV;
if (!(ctx->planes & (1 << p))) {
@@ -151,97 +205,52 @@ static int avgblur_opencl_filter_frame(AVFilterLink *inlink, AVFrame *input)
radius_y = 0;
}
- cle = clSetKernelArg(ctx->kernel_horiz, 0, sizeof(cl_mem), &inter);
- if (cle != CL_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "Failed to set kernel "
- "destination image argument: %d.\n", cle);
- err = AVERROR_UNKNOWN;
- goto fail;
- }
- cle = clSetKernelArg(ctx->kernel_horiz, 1, sizeof(cl_mem), &src);
- if (cle != CL_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "Failed to set kernel "
- "source image argument: %d.\n", cle);
- err = AVERROR_UNKNOWN;
- goto fail;
- }
- cle = clSetKernelArg(ctx->kernel_horiz, 2, sizeof(cl_int), &radius_x);
- if (cle != CL_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "Failed to set kernel "
- "sizeX argument: %d.\n", cle);
- err = AVERROR_UNKNOWN;
- goto fail;
- }
-
- err = ff_opencl_filter_work_size_from_image(avctx, global_work,
- intermediate, p, 0);
- if (err < 0)
- goto fail;
-
- av_log(avctx, AV_LOG_DEBUG, "Run kernel on plane %d "
- "(%"SIZE_SPECIFIER"x%"SIZE_SPECIFIER").\n",
- p, global_work[0], global_work[1]);
-
- cle = clEnqueueNDRangeKernel(ctx->command_queue, ctx->kernel_horiz, 2, NULL,
- global_work, NULL,
- 0, NULL, NULL);
- if (cle != CL_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "Failed to enqueue kernel: %d.\n",
- cle);
- err = AVERROR(EIO);
- goto fail;
- }
-
- cle = clSetKernelArg(ctx->kernel_vert, 0, sizeof(cl_mem), &dst);
- if (cle != CL_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "Failed to set kernel "
- "destination image argument: %d.\n", cle);
- err = AVERROR_UNKNOWN;
- goto fail;
- }
- cle = clSetKernelArg(ctx->kernel_vert, 1, sizeof(cl_mem), &inter);
- if (cle != CL_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "Failed to set kernel "
- "source image argument: %d.\n", cle);
- err = AVERROR_UNKNOWN;
- goto fail;
- }
- cle = clSetKernelArg(ctx->kernel_vert, 2, sizeof(cl_int), &radius_y);
- if (cle != CL_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "Failed to set kernel "
- "sizeY argument: %d.\n", cle);
- err = AVERROR_UNKNOWN;
- goto fail;
- }
-
- err = ff_opencl_filter_work_size_from_image(avctx, global_work,
- output, p, 0);
- if (err < 0)
- goto fail;
-
- av_log(avctx, AV_LOG_DEBUG, "Run kernel on plane %d "
- "(%"SIZE_SPECIFIER"x%"SIZE_SPECIFIER").\n",
- p, global_work[0], global_work[1]);
-
- cle = clEnqueueNDRangeKernel(ctx->command_queue, ctx->kernel_vert, 2, NULL,
- global_work, NULL,
- 0, NULL, NULL);
- if (cle != CL_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "Failed to enqueue kernel: %d.\n",
- cle);
- err = AVERROR(EIO);
- goto fail;
+ for (i = 0; i < ctx->power[p]; i++) {
+ CL_SET_KERNEL_ARG(ctx->kernel_horiz, 0, cl_mem, &inter);
+ CL_SET_KERNEL_ARG(ctx->kernel_horiz, 1, cl_mem, i == 0 ? &src : &dst);
+ if (!strcmp(avctx->filter->name, "avgblur_opencl")) {
+ CL_SET_KERNEL_ARG(ctx->kernel_horiz, 2, cl_int, &radius_x);
+ } else if (!strcmp(avctx->filter->name, "boxblur_opencl")) {
+ CL_SET_KERNEL_ARG(ctx->kernel_horiz, 2, cl_int, &ctx->radius[p]);
+ }
+
+ err = ff_opencl_filter_work_size_from_image(avctx, global_work,
+ i == 0 ? intermediate : output, p, 0);
+ if (err < 0)
+ goto fail;
+
+ av_log(avctx, AV_LOG_DEBUG, "Run kernel on plane %d "
+ "(%"SIZE_SPECIFIER"x%"SIZE_SPECIFIER").\n",
+ p, global_work[0], global_work[1]);
+
+ cle = clEnqueueNDRangeKernel(ctx->command_queue, ctx->kernel_horiz, 2, NULL,
+ global_work, NULL,
+ 0, NULL, NULL);
+ CL_FAIL_ON_ERROR(AVERROR(EIO), "Failed to enqueue horizontal "
+ "kernel: %d.\n", cle);
+
+ err = ff_opencl_filter_work_size_from_image(avctx, global_work,
+ i == 0 ? output : intermediate, p, 0);
+
+ CL_SET_KERNEL_ARG(ctx->kernel_vert, 0, cl_mem, &dst);
+ CL_SET_KERNEL_ARG(ctx->kernel_vert, 1, cl_mem, &inter);
+
+ if (!strcmp(avctx->filter->name, "avgblur_opencl")) {
+ CL_SET_KERNEL_ARG(ctx->kernel_vert, 2, cl_int, &radius_y);
+ } else if (!strcmp(avctx->filter->name, "boxblur_opencl")) {
+ CL_SET_KERNEL_ARG(ctx->kernel_vert, 2, cl_int, &ctx->radius[p]);
+ }
+
+ cle = clEnqueueNDRangeKernel(ctx->command_queue, ctx->kernel_vert, 2, NULL,
+ global_work, NULL,
+ 0, NULL, NULL);
+ CL_FAIL_ON_ERROR(AVERROR(EIO), "Failed to enqueue vertical "
+ "kernel: %d.\n", cle);
}
-
}
cle = clFinish(ctx->command_queue);
- if (cle != CL_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "Failed to finish command queue: %d.\n",
- cle);
- err = AVERROR(EIO);
- goto fail;
- }
+ CL_FAIL_ON_ERROR(AVERROR(EIO), "Failed to finish command queue: %d.\n", cle);
err = av_frame_copy_props(output, input);
if (err < 0)
@@ -264,12 +273,12 @@ fail:
return err;
}
+
static av_cold void avgblur_opencl_uninit(AVFilterContext *avctx)
{
AverageBlurOpenCLContext *ctx = avctx->priv;
cl_int cle;
-
if (ctx->kernel_horiz) {
cle = clReleaseKernel(ctx->kernel_horiz);
if (cle != CL_SUCCESS)
@@ -294,16 +303,6 @@ static av_cold void avgblur_opencl_uninit(AVFilterContext *avctx)
ff_opencl_filter_uninit(avctx);
}
-#define OFFSET(x) offsetof(AverageBlurOpenCLContext, x)
-#define FLAGS (AV_OPT_FLAG_FILTERING_PARAM | AV_OPT_FLAG_VIDEO_PARAM)
-static const AVOption avgblur_opencl_options[] = {
- { "sizeX", "set horizontal size", OFFSET(radius), AV_OPT_TYPE_INT, {.i64=1}, 1, 1024, FLAGS },
- { "planes", "set planes to filter", OFFSET(planes), AV_OPT_TYPE_INT, {.i64=0xF}, 0, 0xF, FLAGS },
- { "sizeY", "set vertical size", OFFSET(radiusV), AV_OPT_TYPE_INT, {.i64=0}, 0, 1024, FLAGS },
- { NULL }
-};
-
-AVFILTER_DEFINE_CLASS(avgblur_opencl);
static const AVFilterPad avgblur_opencl_inputs[] = {
{
@@ -315,6 +314,7 @@ static const AVFilterPad avgblur_opencl_inputs[] = {
{ NULL }
};
+
static const AVFilterPad avgblur_opencl_outputs[] = {
{
.name = "default",
@@ -324,6 +324,22 @@ static const AVFilterPad avgblur_opencl_outputs[] = {
{ NULL }
};
+
+#define OFFSET(x) offsetof(AverageBlurOpenCLContext, x)
+#define FLAGS (AV_OPT_FLAG_FILTERING_PARAM | AV_OPT_FLAG_VIDEO_PARAM)
+
+#if CONFIG_AVGBLUR_OPENCL_FILTER
+
+static const AVOption avgblur_opencl_options[] = {
+ { "sizeX", "set horizontal size", OFFSET(radiusH), AV_OPT_TYPE_INT, {.i64=1}, 1, 1024, FLAGS },
+ { "planes", "set planes to filter", OFFSET(planes), AV_OPT_TYPE_INT, {.i64=0xF}, 0, 0xF, FLAGS },
+ { "sizeY", "set vertical size", OFFSET(radiusV), AV_OPT_TYPE_INT, {.i64=0}, 0, 1024, FLAGS },
+ { NULL }
+};
+
+AVFILTER_DEFINE_CLASS(avgblur_opencl);
+
+
AVFilter ff_vf_avgblur_opencl = {
.name = "avgblur_opencl",
.description = NULL_IF_CONFIG_SMALL("Apply average blur filter"),
@@ -336,3 +352,44 @@ AVFilter ff_vf_avgblur_opencl = {
.outputs = avgblur_opencl_outputs,
.flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE,
};
+
+#endif /* CONFIG_AVGBLUR_OPENCL_FILTER */
+
+
+#if CONFIG_BOXBLUR_OPENCL_FILTER
+
+static const AVOption boxblur_opencl_options[] = {
+ { "luma_radius", "Radius of the luma blurring box", OFFSET(luma_param.radius_expr), AV_OPT_TYPE_STRING, {.str="2"}, .flags = FLAGS },
+ { "lr", "Radius of the luma blurring box", OFFSET(luma_param.radius_expr), AV_OPT_TYPE_STRING, {.str="2"}, .flags = FLAGS },
+ { "luma_power", "How many times should the boxblur be applied to luma", OFFSET(luma_param.power), AV_OPT_TYPE_INT, {.i64=2}, 0, INT_MAX, .flags = FLAGS },
+ { "lp", "How many times should the boxblur be applied to luma", OFFSET(luma_param.power), AV_OPT_TYPE_INT, {.i64=2}, 0, INT_MAX, .flags = FLAGS },
+
+ { "chroma_radius", "Radius of the chroma blurring box", OFFSET(chroma_param.radius_expr), AV_OPT_TYPE_STRING, {.str=NULL}, .flags = FLAGS },
+ { "cr", "Radius of the chroma blurring box", OFFSET(chroma_param.radius_expr), AV_OPT_TYPE_STRING, {.str=NULL}, .flags = FLAGS },
+ { "chroma_power", "How many times should the boxblur be applied to chroma", OFFSET(chroma_param.power), AV_OPT_TYPE_INT, {.i64=-1}, -1, INT_MAX, .flags = FLAGS },
+ { "cp", "How many times should the boxblur be applied to chroma", OFFSET(chroma_param.power), AV_OPT_TYPE_INT, {.i64=-1}, -1, INT_MAX, .flags = FLAGS },
+
+ { "alpha_radius", "Radius of the alpha blurring box", OFFSET(alpha_param.radius_expr), AV_OPT_TYPE_STRING, {.str=NULL}, .flags = FLAGS },
+ { "ar", "Radius of the alpha blurring box", OFFSET(alpha_param.radius_expr), AV_OPT_TYPE_STRING, {.str=NULL}, .flags = FLAGS },
+ { "alpha_power", "How many times should the boxblur be applied to alpha", OFFSET(alpha_param.power), AV_OPT_TYPE_INT, {.i64=-1}, -1, INT_MAX, .flags = FLAGS },
+ { "ap", "How many times should the boxblur be applied to alpha", OFFSET(alpha_param.power), AV_OPT_TYPE_INT, {.i64=-1}, -1, INT_MAX, .flags = FLAGS },
+
+ { NULL }
+};
+
+AVFILTER_DEFINE_CLASS(boxblur_opencl);
+
+AVFilter ff_vf_boxblur_opencl = {
+ .name = "boxblur_opencl",
+ .description = NULL_IF_CONFIG_SMALL("Apply boxblur filter to input video"),
+ .priv_size = sizeof(AverageBlurOpenCLContext),
+ .priv_class = &boxblur_opencl_class,
+ .init = &ff_opencl_filter_init,
+ .uninit = &avgblur_opencl_uninit,
+ .query_formats = &ff_opencl_filter_query_formats,
+ .inputs = avgblur_opencl_inputs,
+ .outputs = avgblur_opencl_outputs,
+ .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE,
+};
+
+#endif /* CONFIG_BOXBLUR_OPENCL_FILTER */
diff --git a/chromium/third_party/ffmpeg/libavfilter/vf_boxblur.c b/chromium/third_party/ffmpeg/libavfilter/vf_boxblur.c
index 8e43986846d..bde74084f09 100644
--- a/chromium/third_party/ffmpeg/libavfilter/vf_boxblur.c
+++ b/chromium/third_party/ffmpeg/libavfilter/vf_boxblur.c
@@ -27,39 +27,13 @@
#include "libavutil/avstring.h"
#include "libavutil/common.h"
-#include "libavutil/eval.h"
#include "libavutil/opt.h"
-#include "libavutil/pixdesc.h"
#include "avfilter.h"
#include "formats.h"
#include "internal.h"
#include "video.h"
+#include "boxblur.h"
-static const char *const var_names[] = {
- "w",
- "h",
- "cw",
- "ch",
- "hsub",
- "vsub",
- NULL
-};
-
-enum var_name {
- VAR_W,
- VAR_H,
- VAR_CW,
- VAR_CH,
- VAR_HSUB,
- VAR_VSUB,
- VARS_NB
-};
-
-typedef struct FilterParam {
- int radius;
- int power;
- char *radius_expr;
-} FilterParam;
typedef struct BoxBlurContext {
const AVClass *class;
@@ -73,40 +47,6 @@ typedef struct BoxBlurContext {
uint8_t *temp[2]; ///< temporary buffer used in blur_power()
} BoxBlurContext;
-#define Y 0
-#define U 1
-#define V 2
-#define A 3
-
-static av_cold int init(AVFilterContext *ctx)
-{
- BoxBlurContext *s = ctx->priv;
-
- if (!s->luma_param.radius_expr) {
- av_log(ctx, AV_LOG_ERROR, "Luma radius expression is not set.\n");
- return AVERROR(EINVAL);
- }
-
- /* fill missing params */
- if (!s->chroma_param.radius_expr) {
- s->chroma_param.radius_expr = av_strdup(s->luma_param.radius_expr);
- if (!s->chroma_param.radius_expr)
- return AVERROR(ENOMEM);
- }
- if (s->chroma_param.power < 0)
- s->chroma_param.power = s->luma_param.power;
-
- if (!s->alpha_param.radius_expr) {
- s->alpha_param.radius_expr = av_strdup(s->luma_param.radius_expr);
- if (!s->alpha_param.radius_expr)
- return AVERROR(ENOMEM);
- }
- if (s->alpha_param.power < 0)
- s->alpha_param.power = s->luma_param.power;
-
- return 0;
-}
-
static av_cold void uninit(AVFilterContext *ctx)
{
BoxBlurContext *s = ctx->priv;
@@ -138,9 +78,6 @@ static int config_input(AVFilterLink *inlink)
AVFilterContext *ctx = inlink->dst;
BoxBlurContext *s = ctx->priv;
int w = inlink->w, h = inlink->h;
- int cw, ch;
- double var_values[VARS_NB], res;
- char *expr;
int ret;
if (!(s->temp[0] = av_malloc(2*FFMAX(w, h))) ||
@@ -150,48 +87,16 @@ static int config_input(AVFilterLink *inlink)
s->hsub = desc->log2_chroma_w;
s->vsub = desc->log2_chroma_h;
- var_values[VAR_W] = inlink->w;
- var_values[VAR_H] = inlink->h;
- var_values[VAR_CW] = cw = w>>s->hsub;
- var_values[VAR_CH] = ch = h>>s->vsub;
- var_values[VAR_HSUB] = 1<<s->hsub;
- var_values[VAR_VSUB] = 1<<s->vsub;
-
-#define EVAL_RADIUS_EXPR(comp) \
- expr = s->comp##_param.radius_expr; \
- ret = av_expr_parse_and_eval(&res, expr, var_names, var_values, \
- NULL, NULL, NULL, NULL, NULL, 0, ctx); \
- s->comp##_param.radius = res; \
- if (ret < 0) { \
- av_log(NULL, AV_LOG_ERROR, \
- "Error when evaluating " #comp " radius expression '%s'\n", expr); \
- return ret; \
- }
- EVAL_RADIUS_EXPR(luma);
- EVAL_RADIUS_EXPR(chroma);
- EVAL_RADIUS_EXPR(alpha);
-
- av_log(ctx, AV_LOG_VERBOSE,
- "luma_radius:%d luma_power:%d "
- "chroma_radius:%d chroma_power:%d "
- "alpha_radius:%d alpha_power:%d "
- "w:%d chroma_w:%d h:%d chroma_h:%d\n",
- s->luma_param .radius, s->luma_param .power,
- s->chroma_param.radius, s->chroma_param.power,
- s->alpha_param .radius, s->alpha_param .power,
- w, cw, h, ch);
-
-#define CHECK_RADIUS_VAL(w_, h_, comp) \
- if (s->comp##_param.radius < 0 || \
- 2*s->comp##_param.radius > FFMIN(w_, h_)) { \
- av_log(ctx, AV_LOG_ERROR, \
- "Invalid " #comp " radius value %d, must be >= 0 and <= %d\n", \
- s->comp##_param.radius, FFMIN(w_, h_)/2); \
- return AVERROR(EINVAL); \
+ ret = ff_boxblur_eval_filter_params(inlink,
+ &s->luma_param,
+ &s->chroma_param,
+ &s->alpha_param);
+
+ if (ret != 0) {
+ av_log(ctx, AV_LOG_ERROR, "Failed to evaluate "
+ "filter params: %d.\n", ret);
+ return ret;
}
- CHECK_RADIUS_VAL(w, h, luma);
- CHECK_RADIUS_VAL(cw, ch, chroma);
- CHECK_RADIUS_VAL(w, h, alpha);
s->radius[Y] = s->luma_param.radius;
s->radius[U] = s->radius[V] = s->chroma_param.radius;
@@ -404,7 +309,6 @@ AVFilter ff_vf_boxblur = {
.description = NULL_IF_CONFIG_SMALL("Blur the input."),
.priv_size = sizeof(BoxBlurContext),
.priv_class = &boxblur_class,
- .init = init,
.uninit = uninit,
.query_formats = query_formats,
.inputs = avfilter_vf_boxblur_inputs,
diff --git a/chromium/third_party/ffmpeg/libavfilter/vf_colorconstancy.c b/chromium/third_party/ffmpeg/libavfilter/vf_colorconstancy.c
new file mode 100644
index 00000000000..7194688dfa0
--- /dev/null
+++ b/chromium/third_party/ffmpeg/libavfilter/vf_colorconstancy.c
@@ -0,0 +1,758 @@
+/*
+ * Copyright (c) 2018 Mina Sami
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/**
+ * @file
+ * Color Constancy filter
+ *
+ * @see http://colorconstancy.com/
+ *
+ * @cite
+ * J. van de Weijer, Th. Gevers, A. Gijsenij "Edge-Based Color Constancy".
+ */
+
+#include "libavutil/bprint.h"
+#include "libavutil/imgutils.h"
+#include "libavutil/opt.h"
+#include "libavutil/pixdesc.h"
+
+#include "avfilter.h"
+#include "formats.h"
+#include "internal.h"
+#include "video.h"
+
+#include <math.h>
+
+#define GREY_EDGE "greyedge"
+
+#define NUM_PLANES 3
+#define MAX_DIFF_ORD 2
+#define MAX_META_DATA 4
+#define MAX_DATA 4
+
+#define INDEX_TEMP 0
+#define INDEX_DX 1
+#define INDEX_DY 2
+#define INDEX_DXY 3
+#define INDEX_NORM INDEX_DX
+#define INDEX_SRC 0
+#define INDEX_DST 1
+#define INDEX_ORD 2
+#define INDEX_DIR 3
+#define DIR_X 0
+#define DIR_Y 1
+
+/**
+ * Used for passing data between threads.
+ */
+typedef struct ThreadData {
+ AVFrame *in, *out;
+ int meta_data[MAX_META_DATA];
+ double *data[MAX_DATA][NUM_PLANES];
+} ThreadData;
+
+/**
+ * Common struct for all algorithms contexts.
+ */
+typedef struct ColorConstancyContext {
+ const AVClass *class;
+
+ int difford;
+ int minknorm; /**< @minknorm = 0 : getMax instead */
+ double sigma;
+
+ int nb_threads;
+ int planeheight[4];
+ int planewidth[4];
+
+ int filtersize;
+ double *gauss[MAX_DIFF_ORD+1];
+
+ double white[NUM_PLANES];
+} ColorConstancyContext;
+
+#define OFFSET(x) offsetof(ColorConstancyContext, x)
+#define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM
+
+#define GINDX(s, i) ( (i) - ((s) >> 2) )
+
+/**
+ * Sets gauss filters used for calculating gauss derivatives. Filter size
+ * depends on sigma which is a user option hence we calculate these
+ * filters each time. Also each higher order depends on lower ones. Sigma
+ * can be zero only at difford = 0, then we only convert data to double
+ * instead.
+ *
+ * @param ctx the filter context.
+ *
+ * @return 0 in case of success, a negative value corresponding to an
+ * AVERROR code in case of failure.
+ */
+static int set_gauss(AVFilterContext *ctx)
+{
+ ColorConstancyContext *s = ctx->priv;
+ int filtersize = s->filtersize;
+ int difford = s->difford;
+ double sigma = s->sigma;
+ double sum1, sum2;
+ int i;
+
+ for (i = 0; i <= difford; ++i) {
+ s->gauss[i] = av_mallocz_array(filtersize, sizeof(*s->gauss[i]));
+ if (!s->gauss[i]) {
+ for (; i >= 0; --i) {
+ av_freep(&s->gauss[i]);
+ }
+ av_log(ctx, AV_LOG_ERROR, "Out of memory while allocating gauss buffers.\n");
+ return AVERROR(ENOMEM);
+ }
+ }
+
+ // Order 0
+ av_log(ctx, AV_LOG_TRACE, "Setting 0-d gauss with filtersize = %d.\n", filtersize);
+ sum1 = 0.0;
+ if (!sigma) {
+ s->gauss[0][0] = 1; // Copying data to double instead of convolution
+ } else {
+ for (i = 0; i < filtersize; ++i) {
+ s->gauss[0][i] = exp(- pow(GINDX(filtersize, i), 2.) / (2 * sigma * sigma)) / ( sqrt(2 * M_PI) * sigma );
+ sum1 += s->gauss[0][i];
+ }
+ for (i = 0; i < filtersize; ++i) {
+ s->gauss[0][i] /= sum1;
+ }
+ }
+ // Order 1
+ if (difford > 0) {
+ av_log(ctx, AV_LOG_TRACE, "Setting 1-d gauss with filtersize = %d.\n", filtersize);
+ sum1 = 0.0;
+ for (i = 0; i < filtersize; ++i) {
+ s->gauss[1][i] = - (GINDX(filtersize, i) / pow(sigma, 2)) * s->gauss[0][i];
+ sum1 += s->gauss[1][i] *GINDX(filtersize, i);
+ }
+
+ for (i = 0; i < filtersize; ++i) {
+ s->gauss[1][i] /= sum1;
+ }
+
+ // Order 2
+ if (difford > 1) {
+ av_log(ctx, AV_LOG_TRACE, "Setting 2-d gauss with filtersize = %d.\n", filtersize);
+ sum1 = 0.0;
+ for (i = 0; i < filtersize; ++i) {
+ s->gauss[2][i] = ( pow(GINDX(filtersize, i), 2) / pow(sigma, 4) - 1/pow(sigma, 2) )
+ * s->gauss[0][i];
+ sum1 += s->gauss[2][i];
+ }
+
+ sum2 = 0.0;
+ for (i = 0; i < filtersize; ++i) {
+ s->gauss[2][i] -= sum1 / (filtersize);
+ sum2 += (0.5 * GINDX(filtersize, i) * GINDX(filtersize, i) * s->gauss[2][i]);
+ }
+ for (i = 0; i < filtersize ; ++i) {
+ s->gauss[2][i] /= sum2;
+ }
+ }
+ }
+ return 0;
+}
+
+/**
+ * Frees up buffers used by grey edge for storing derivatives final
+ * and intermidiate results. Number of buffers and number of planes
+ * for last buffer are given so it can be safely called at allocation
+ * failure instances.
+ *
+ * @param td holds the buffers.
+ * @param nb_buff number of buffers to be freed.
+ * @param nb_planes number of planes for last buffer to be freed.
+ */
+static void cleanup_derivative_buffers(ThreadData *td, int nb_buff, int nb_planes)
+{
+ int b, p;
+
+ for (b = 0; b < nb_buff; ++b) {
+ for (p = 0; p < NUM_PLANES; ++p) {
+ av_freep(&td->data[b][p]);
+ }
+ }
+ // Final buffer may not be fully allocated at fail cases
+ for (p = 0; p < nb_planes; ++p) {
+ av_freep(&td->data[b][p]);
+ }
+}
+
+/**
+ * Allocates buffers used by grey edge for storing derivatives final
+ * and intermidiate results.
+ *
+ * @param ctx the filter context.
+ * @param td holds the buffers.
+ *
+ * @return 0 in case of success, a negative value corresponding to an
+ * AVERROR code in case of failure.
+ */
+static int setup_derivative_buffers(AVFilterContext* ctx, ThreadData *td)
+{
+ ColorConstancyContext *s = ctx->priv;
+ int nb_buff = s->difford + 1;
+ int b, p;
+
+ av_log(ctx, AV_LOG_TRACE, "Allocating %d buffer(s) for grey edge.\n", nb_buff);
+ for (b = 0; b <= nb_buff; ++b) { // We need difford + 1 buffers
+ for (p = 0; p < NUM_PLANES; ++p) {
+ td->data[b][p] = av_mallocz_array(s->planeheight[p] * s->planewidth[p], sizeof(*td->data[b][p]));
+ if (!td->data[b][p]) {
+ cleanup_derivative_buffers(td, b + 1, p);
+ av_log(ctx, AV_LOG_ERROR, "Out of memory while allocating derivatives buffers.\n");
+ return AVERROR(ENOMEM);
+ }
+ }
+ }
+ return 0;
+}
+
+#define CLAMP(x, mx) av_clip((x), 0, (mx-1))
+#define INDX2D(r, c, w) ( (r) * (w) + (c) )
+#define GAUSS(s, sr, sc, sls, sh, sw, g) ( (s)[ INDX2D(CLAMP((sr), (sh)), CLAMP((sc), (sw)), (sls)) ] * (g) )
+
+/**
+ * Slice calculation of gaussian derivatives. Applies 1-D gaussian derivative filter
+ * either horizontally or vertically according to meta data given in thread data.
+ * When convoluting horizontally source is always the in frame withing thread data
+ * while when convoluting vertically source is a buffer.
+ *
+ * @param ctx the filter context.
+ * @param arg data to be passed between threads.
+ * @param jobnr current job nubmer.
+ * @param nb_jobs total number of jobs.
+ *
+ * @return 0.
+ */
+static int slice_get_derivative(AVFilterContext* ctx, void* arg, int jobnr, int nb_jobs)
+{
+ ColorConstancyContext *s = ctx->priv;
+ ThreadData *td = arg;
+ AVFrame *in = td->in;
+ const int ord = td->meta_data[INDEX_ORD];
+ const int dir = td->meta_data[INDEX_DIR];
+ const int src_index = td->meta_data[INDEX_SRC];
+ const int dst_index = td->meta_data[INDEX_DST];
+ const int filtersize = s->filtersize;
+ const double *gauss = s->gauss[ord];
+ int plane;
+
+ for (plane = 0; plane < NUM_PLANES; ++plane) {
+ const int height = s->planeheight[plane];
+ const int width = s->planewidth[plane];
+ const int in_linesize = in->linesize[plane];
+ double *dst = td->data[dst_index][plane];
+ int slice_start, slice_end;
+ int r, c, g;
+
+ if (dir == DIR_X) {
+ /** Applying gauss horizontally along each row */
+ const uint8_t *src = in->data[plane];
+ slice_start = (height * jobnr ) / nb_jobs;
+ slice_end = (height * (jobnr + 1)) / nb_jobs;
+
+ for (r = slice_start; r < slice_end; ++r) {
+ for (c = 0; c < width; ++c) {
+ dst[INDX2D(r, c, width)] = 0;
+ for (g = 0; g < filtersize; ++g) {
+ dst[INDX2D(r, c, width)] += GAUSS(src, r, c + GINDX(filtersize, g),
+ in_linesize, height, width, gauss[GINDX(filtersize, g)]);
+ }
+ }
+ }
+ } else {
+ /** Applying gauss vertically along each column */
+ const double *src = td->data[src_index][plane];
+ slice_start = (width * jobnr ) / nb_jobs;
+ slice_end = (width * (jobnr + 1)) / nb_jobs;
+
+ for (c = slice_start; c < slice_end; ++c) {
+ for (r = 0; r < height; ++r) {
+ dst[INDX2D(r, c, width)] = 0;
+ for (g = 0; g < filtersize; ++g) {
+ dst[INDX2D(r, c, width)] += GAUSS(src, r + GINDX(filtersize, g), c,
+ width, height, width, gauss[GINDX(filtersize, g)]);
+ }
+ }
+ }
+ }
+
+ }
+ return 0;
+}
+
+/**
+ * Slice Frobius normalization of gaussian derivatives. Only called for difford values of
+ * 1 or 2.
+ *
+ * @param ctx the filter context.
+ * @param arg data to be passed between threads.
+ * @param jobnr current job nubmer.
+ * @param nb_jobs total number of jobs.
+ *
+ * @return 0.
+ */
+static int slice_normalize(AVFilterContext* ctx, void* arg, int jobnr, int nb_jobs)
+{
+ ColorConstancyContext *s = ctx->priv;
+ ThreadData *td = arg;
+ const int difford = s->difford;
+ int plane;
+
+ for (plane = 0; plane < NUM_PLANES; ++plane) {
+ const int height = s->planeheight[plane];
+ const int width = s->planewidth[plane];
+ const int64_t numpixels = width * (int64_t)height;
+ const int slice_start = (numpixels * jobnr ) / nb_jobs;
+ const int slice_end = (numpixels * (jobnr+1)) / nb_jobs;
+ const double *dx = td->data[INDEX_DX][plane];
+ const double *dy = td->data[INDEX_DY][plane];
+ double *norm = td->data[INDEX_NORM][plane];
+ int i;
+
+ if (difford == 1) {
+ for (i = slice_start; i < slice_end; ++i) {
+ norm[i] = sqrt( pow(dx[i], 2) + pow(dy[i], 2));
+ }
+ } else {
+ const double *dxy = td->data[INDEX_DXY][plane];
+ for (i = slice_start; i < slice_end; ++i) {
+ norm[i] = sqrt( pow(dx[i], 2) + 4 * pow(dxy[i], 2) + pow(dy[i], 2) );
+ }
+ }
+ }
+
+ return 0;
+}
+
+/**
+ * Utility function for setting up differentiation data/metadata.
+ *
+ * @param ctx the filter context.
+ * @param td to be used for passing data between threads.
+ * @param ord ord of differentiation.
+ * @param dir direction of differentiation.
+ * @param src index of source used for differentiation.
+ * @param dst index destination used for saving differentiation result.
+ * @param dim maximum dimension in current direction.
+ * @param nb_threads number of threads to use.
+ */
+static void av_always_inline
+get_deriv(AVFilterContext *ctx, ThreadData *td, int ord, int dir,
+ int src, int dst, int dim, int nb_threads) {
+ td->meta_data[INDEX_ORD] = ord;
+ td->meta_data[INDEX_DIR] = dir;
+ td->meta_data[INDEX_SRC] = src;
+ td->meta_data[INDEX_DST] = dst;
+ ctx->internal->execute(ctx, slice_get_derivative, td, NULL, FFMIN(dim, nb_threads));
+}
+
+/**
+ * Main control function for calculating gaussian derivatives.
+ *
+ * @param ctx the filter context.
+ * @param td holds the buffers used for storing results.
+ *
+ * @return 0 in case of success, a negative value corresponding to an
+ * AVERROR code in case of failure.
+ */
+static int get_derivative(AVFilterContext *ctx, ThreadData *td)
+{
+ ColorConstancyContext *s = ctx->priv;
+ int nb_threads = s->nb_threads;
+ int height = s->planeheight[1];
+ int width = s->planewidth[1];
+
+ switch(s->difford) {
+ case 0:
+ if (!s->sigma) { // Only copy once
+ get_deriv(ctx, td, 0, DIR_X, 0 , INDEX_NORM, height, nb_threads);
+ } else {
+ get_deriv(ctx, td, 0, DIR_X, 0, INDEX_TEMP, height, nb_threads);
+ get_deriv(ctx, td, 0, DIR_Y, INDEX_TEMP, INDEX_NORM, width , nb_threads);
+ // save to INDEX_NORM because this will not be normalied and
+ // end gry edge filter expects result to be found in INDEX_NORM
+ }
+ return 0;
+
+ case 1:
+ get_deriv(ctx, td, 1, DIR_X, 0, INDEX_TEMP, height, nb_threads);
+ get_deriv(ctx, td, 0, DIR_Y, INDEX_TEMP, INDEX_DX, width , nb_threads);
+
+ get_deriv(ctx, td, 0, DIR_X, 0, INDEX_TEMP, height, nb_threads);
+ get_deriv(ctx, td, 1, DIR_Y, INDEX_TEMP, INDEX_DY, width , nb_threads);
+ return 0;
+
+ case 2:
+ get_deriv(ctx, td, 2, DIR_X, 0, INDEX_TEMP, height, nb_threads);
+ get_deriv(ctx, td, 0, DIR_Y, INDEX_TEMP, INDEX_DX, width , nb_threads);
+
+ get_deriv(ctx, td, 0, DIR_X, 0, INDEX_TEMP, height, nb_threads);
+ get_deriv(ctx, td, 2, DIR_Y, INDEX_TEMP, INDEX_DY, width , nb_threads);
+
+ get_deriv(ctx, td, 1, DIR_X, 0, INDEX_TEMP, height, nb_threads);
+ get_deriv(ctx, td, 1, DIR_Y, INDEX_TEMP, INDEX_DXY, width , nb_threads);
+ return 0;
+
+ default:
+ av_log(ctx, AV_LOG_ERROR, "Unsupported difford value: %d.\n", s->difford);
+ return AVERROR(EINVAL);
+ }
+
+}
+
+/**
+ * Slice function for grey edge algorithm that does partial summing/maximizing
+ * of gaussian derivatives.
+ *
+ * @param ctx the filter context.
+ * @param arg data to be passed between threads.
+ * @param jobnr current job nubmer.
+ * @param nb_jobs total number of jobs.
+ *
+ * @return 0.
+ */
+static int filter_slice_grey_edge(AVFilterContext* ctx, void* arg, int jobnr, int nb_jobs)
+{
+ ColorConstancyContext *s = ctx->priv;
+ ThreadData *td = arg;
+ AVFrame *in = td->in;
+ int minknorm = s->minknorm;
+ const uint8_t thresh = 255;
+ int plane;
+
+ for (plane = 0; plane < NUM_PLANES; ++plane) {
+ const int height = s->planeheight[plane];
+ const int width = s->planewidth[plane];
+ const int in_linesize = in->linesize[plane];
+ const int slice_start = (height * jobnr) / nb_jobs;
+ const int slice_end = (height * (jobnr+1)) / nb_jobs;
+ const uint8_t *img_data = in->data[plane];
+ const double *src = td->data[INDEX_NORM][plane];
+ double *dst = td->data[INDEX_DST][plane];
+ int r, c;
+
+ dst[jobnr] = 0;
+ if (!minknorm) {
+ for (r = slice_start; r < slice_end; ++r) {
+ for (c = 0; c < width; ++c) {
+ dst[jobnr] = FFMAX( dst[jobnr], fabs(src[INDX2D(r, c, width)])
+ * (img_data[INDX2D(r, c, in_linesize)] < thresh) );
+ }
+ }
+ } else {
+ for (r = slice_start; r < slice_end; ++r) {
+ for (c = 0; c < width; ++c) {
+ dst[jobnr] += ( pow( fabs(src[INDX2D(r, c, width)] / 255.), minknorm)
+ * (img_data[INDX2D(r, c, in_linesize)] < thresh) );
+ }
+ }
+ }
+ }
+ return 0;
+}
+
+/**
+ * Main control function for grey edge algorithm.
+ *
+ * @param ctx the filter context.
+ * @param in frame to perfrom grey edge on.
+ *
+ * @return 0 in case of success, a negative value corresponding to an
+ * AVERROR code in case of failure.
+ */
+static int filter_grey_edge(AVFilterContext *ctx, AVFrame *in)
+{
+ ColorConstancyContext *s = ctx->priv;
+ ThreadData td;
+ int minknorm = s->minknorm;
+ int difford = s->difford;
+ double *white = s->white;
+ int nb_jobs = FFMIN3(s->planeheight[1], s->planewidth[1], s->nb_threads);
+ int plane, job, ret;
+
+ td.in = in;
+ ret = setup_derivative_buffers(ctx, &td);
+ if (ret) {
+ return ret;
+ }
+ get_derivative(ctx, &td);
+ if (difford > 0) {
+ ctx->internal->execute(ctx, slice_normalize, &td, NULL, nb_jobs);
+ }
+
+ ctx->internal->execute(ctx, filter_slice_grey_edge, &td, NULL, nb_jobs);
+ if (!minknorm) {
+ for (plane = 0; plane < NUM_PLANES; ++plane) {
+ white[plane] = 0; // All values are absolute
+ for (job = 0; job < nb_jobs; ++job) {
+ white[plane] = FFMAX(white[plane] , td.data[INDEX_DST][plane][job]);
+ }
+ }
+ } else {
+ for (plane = 0; plane < NUM_PLANES; ++plane) {
+ white[plane] = 0;
+ for (job = 0; job < nb_jobs; ++job) {
+ white[plane] += td.data[INDEX_DST][plane][job];
+ }
+ white[plane] = pow(white[plane], 1./minknorm);
+ }
+ }
+
+ cleanup_derivative_buffers(&td, difford + 1, NUM_PLANES);
+ return 0;
+}
+
+/**
+ * Normalizes estimated illumination since only illumination vector
+ * direction is required for color constancy.
+ *
+ * @param light the estimated illumination to be normalized in place
+ */
+static void normalize_light(double *light)
+{
+ double abs_val = pow( pow(light[0], 2.0) + pow(light[1], 2.0) + pow(light[2], 2.0), 0.5);
+ int plane;
+
+ // TODO: check if setting to 1.0 when estimated = 0.0 is the best thing to do
+
+ if (!abs_val) {
+ for (plane = 0; plane < NUM_PLANES; ++plane) {
+ light[plane] = 1.0;
+ }
+ } else {
+ for (plane = 0; plane < NUM_PLANES; ++plane) {
+ light[plane] = (light[plane] / abs_val);
+ if (!light[plane]) { // to avoid division by zero when correcting
+ light[plane] = 1.0;
+ }
+ }
+ }
+}
+
+/**
+ * Redirects to corresponding algorithm estimation function and performs normalization
+ * after estimation.
+ *
+ * @param ctx the filter context.
+ * @param in frame to perfrom estimation on.
+ *
+ * @return 0 in case of success, a negative value corresponding to an
+ * AVERROR code in case of failure.
+ */
+static int illumination_estimation(AVFilterContext *ctx, AVFrame *in)
+{
+ ColorConstancyContext *s = ctx->priv;
+ int ret;
+
+ ret = filter_grey_edge(ctx, in);
+
+ av_log(ctx, AV_LOG_DEBUG, "Estimated illumination= %f %f %f\n",
+ s->white[0], s->white[1], s->white[2]);
+ normalize_light(s->white);
+ av_log(ctx, AV_LOG_DEBUG, "Estimated illumination after normalization= %f %f %f\n",
+ s->white[0], s->white[1], s->white[2]);
+
+ return ret;
+}
+
+/**
+ * Performs simple correction via diagonal transformation model.
+ *
+ * @param ctx the filter context.
+ * @param arg data to be passed between threads.
+ * @param jobnr current job nubmer.
+ * @param nb_jobs total number of jobs.
+ *
+ * @return 0.
+ */
+static int diagonal_transformation(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
+{
+ ColorConstancyContext *s = ctx->priv;
+ ThreadData *td = arg;
+ AVFrame *in = td->in;
+ AVFrame *out = td->out;
+ double sqrt3 = pow(3.0, 0.5);
+ int plane;
+
+ for (plane = 0; plane < NUM_PLANES; ++plane) {
+ const int height = s->planeheight[plane];
+ const int width = s->planewidth[plane];
+ const int64_t numpixels = width * (int64_t)height;
+ const int slice_start = (numpixels * jobnr) / nb_jobs;
+ const int slice_end = (numpixels * (jobnr+1)) / nb_jobs;
+ const uint8_t *src = in->data[plane];
+ uint8_t *dst = out->data[plane];
+ double temp;
+ unsigned i;
+
+ for (i = slice_start; i < slice_end; ++i) {
+ temp = src[i] / (s->white[plane] * sqrt3);
+ dst[i] = av_clip_uint8((int)(temp + 0.5));
+ }
+ }
+ return 0;
+}
+
+/**
+ * Main control function for correcting scene illumination based on
+ * estimated illumination.
+ *
+ * @param ctx the filter context.
+ * @param in holds frame to correct
+ * @param out holds corrected frame
+ */
+static void chromatic_adaptation(AVFilterContext *ctx, AVFrame *in, AVFrame *out)
+{
+ ColorConstancyContext *s = ctx->priv;
+ ThreadData td;
+ int nb_jobs = FFMIN3(s->planeheight[1], s->planewidth[1], s->nb_threads);
+
+ td.in = in;
+ td.out = out;
+ ctx->internal->execute(ctx, diagonal_transformation, &td, NULL, nb_jobs);
+}
+
+static int query_formats(AVFilterContext *ctx)
+{
+ static const enum AVPixelFormat pix_fmts[] = {
+ // TODO: support more formats
+ // FIXME: error when saving to .jpg
+ AV_PIX_FMT_GBRP,
+ AV_PIX_FMT_NONE
+ };
+
+ return ff_set_common_formats(ctx, ff_make_format_list(pix_fmts));
+}
+
+static int config_props(AVFilterLink *inlink)
+{
+ AVFilterContext *ctx = inlink->dst;
+ ColorConstancyContext *s = ctx->priv;
+ const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(inlink->format);
+ const double break_off_sigma = 3.0;
+ double sigma = s->sigma;
+ int ret;
+
+ if (!sigma && s->difford) {
+ av_log(ctx, AV_LOG_ERROR, "Sigma can't be set to 0 when difford > 0.\n");
+ return AVERROR(EINVAL);
+ }
+
+ s->filtersize = 2 * floor(break_off_sigma * s->sigma + 0.5) + 1;
+ if (ret=set_gauss(ctx)) {
+ return ret;
+ }
+
+ s->nb_threads = ff_filter_get_nb_threads(ctx);
+ s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, desc->log2_chroma_w);
+ s->planewidth[0] = s->planewidth[3] = inlink->w;
+ s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h);
+ s->planeheight[0] = s->planeheight[3] = inlink->h;
+
+ return 0;
+}
+
+static int filter_frame(AVFilterLink *inlink, AVFrame *in)
+{
+ AVFilterContext *ctx = inlink->dst;
+ AVFilterLink *outlink = ctx->outputs[0];
+ AVFrame *out;
+ int ret;
+
+ ret = illumination_estimation(ctx, in);
+ if (ret) {
+ return ret;
+ }
+
+ if (av_frame_is_writable(in)) {
+ out = in;
+ } else {
+ out = ff_get_video_buffer(outlink, outlink->w, outlink->h);
+ if (!out) {
+ av_log(ctx, AV_LOG_ERROR, "Out of memory while allocating output video buffer.\n");
+ return AVERROR(ENOMEM);
+ }
+ av_frame_copy_props(out, in);
+ }
+ chromatic_adaptation(ctx, in, out);
+
+ return ff_filter_frame(outlink, out);
+}
+
+static av_cold void uninit(AVFilterContext *ctx)
+{
+ ColorConstancyContext *s = ctx->priv;
+ int difford = s->difford;
+ int i;
+
+ for (i = 0; i <= difford; ++i) {
+ av_freep(&s->gauss[i]);
+ }
+}
+
+static const AVFilterPad colorconstancy_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .config_props = config_props,
+ .filter_frame = filter_frame,
+ },
+ { NULL }
+};
+
+static const AVFilterPad colorconstancy_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ },
+ { NULL }
+};
+
+#if CONFIG_GREYEDGE_FILTER
+
+static const AVOption greyedge_options[] = {
+ { "difford", "set differentiation order", OFFSET(difford), AV_OPT_TYPE_INT, {.i64=1}, 0, 2, FLAGS },
+ { "minknorm", "set Minkowski norm", OFFSET(minknorm), AV_OPT_TYPE_INT, {.i64=1}, 0, 65535, FLAGS },
+ { "sigma", "set sigma", OFFSET(sigma), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 0.0, 1024.0, FLAGS },
+ { NULL }
+};
+
+AVFILTER_DEFINE_CLASS(greyedge);
+
+AVFilter ff_vf_greyedge = {
+ .name = GREY_EDGE,
+ .description = NULL_IF_CONFIG_SMALL("Estimates scene illumination by grey edge assumption."),
+ .priv_size = sizeof(ColorConstancyContext),
+ .priv_class = &greyedge_class,
+ .query_formats = query_formats,
+ .uninit = uninit,
+ .inputs = colorconstancy_inputs,
+ .outputs = colorconstancy_outputs,
+ .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS,
+};
+
+#endif /* CONFIG_GREY_EDGE_FILTER */
diff --git a/chromium/third_party/ffmpeg/libavfilter/vf_colorspace.c b/chromium/third_party/ffmpeg/libavfilter/vf_colorspace.c
index 71ea08a20fe..56621d15e26 100644
--- a/chromium/third_party/ffmpeg/libavfilter/vf_colorspace.c
+++ b/chromium/third_party/ffmpeg/libavfilter/vf_colorspace.c
@@ -33,6 +33,7 @@
#include "formats.h"
#include "internal.h"
#include "video.h"
+#include "colorspace.h"
enum DitherMode {
DITHER_NONE,
@@ -110,21 +111,13 @@ static const enum AVColorSpace default_csp[CS_NB + 1] = {
struct ColorPrimaries {
enum Whitepoint wp;
- double xr, yr, xg, yg, xb, yb;
+ struct PrimaryCoefficients coeff;
};
struct TransferCharacteristics {
double alpha, beta, gamma, delta;
};
-struct LumaCoefficients {
- double cr, cg, cb;
-};
-
-struct WhitepointCoefficients {
- double xw, yw;
-};
-
typedef struct ColorSpaceContext {
const AVClass *class;
@@ -286,57 +279,30 @@ static const struct WhitepointCoefficients whitepoint_coefficients[WP_NB] = {
};
static const struct ColorPrimaries color_primaries[AVCOL_PRI_NB] = {
- [AVCOL_PRI_BT709] = { WP_D65, 0.640, 0.330, 0.300, 0.600, 0.150, 0.060 },
- [AVCOL_PRI_BT470M] = { WP_C, 0.670, 0.330, 0.210, 0.710, 0.140, 0.080 },
- [AVCOL_PRI_BT470BG] = { WP_D65, 0.640, 0.330, 0.290, 0.600, 0.150, 0.060,},
- [AVCOL_PRI_SMPTE170M] = { WP_D65, 0.630, 0.340, 0.310, 0.595, 0.155, 0.070 },
- [AVCOL_PRI_SMPTE240M] = { WP_D65, 0.630, 0.340, 0.310, 0.595, 0.155, 0.070 },
- [AVCOL_PRI_SMPTE428] = { WP_E, 0.735, 0.265, 0.274, 0.718, 0.167, 0.009 },
- [AVCOL_PRI_SMPTE431] = { WP_DCI, 0.680, 0.320, 0.265, 0.690, 0.150, 0.060 },
- [AVCOL_PRI_SMPTE432] = { WP_D65, 0.680, 0.320, 0.265, 0.690, 0.150, 0.060 },
- [AVCOL_PRI_FILM] = { WP_C, 0.681, 0.319, 0.243, 0.692, 0.145, 0.049 },
- [AVCOL_PRI_BT2020] = { WP_D65, 0.708, 0.292, 0.170, 0.797, 0.131, 0.046 },
- [AVCOL_PRI_JEDEC_P22] = { WP_D65, 0.630, 0.340, 0.295, 0.605, 0.155, 0.077 },
+ [AVCOL_PRI_BT709] = { WP_D65, { 0.640, 0.330, 0.300, 0.600, 0.150, 0.060 } },
+ [AVCOL_PRI_BT470M] = { WP_C, { 0.670, 0.330, 0.210, 0.710, 0.140, 0.080 } },
+ [AVCOL_PRI_BT470BG] = { WP_D65, { 0.640, 0.330, 0.290, 0.600, 0.150, 0.060 } },
+ [AVCOL_PRI_SMPTE170M] = { WP_D65, { 0.630, 0.340, 0.310, 0.595, 0.155, 0.070 } },
+ [AVCOL_PRI_SMPTE240M] = { WP_D65, { 0.630, 0.340, 0.310, 0.595, 0.155, 0.070 } },
+ [AVCOL_PRI_SMPTE428] = { WP_E, { 0.735, 0.265, 0.274, 0.718, 0.167, 0.009 } },
+ [AVCOL_PRI_SMPTE431] = { WP_DCI, { 0.680, 0.320, 0.265, 0.690, 0.150, 0.060 } },
+ [AVCOL_PRI_SMPTE432] = { WP_D65, { 0.680, 0.320, 0.265, 0.690, 0.150, 0.060 } },
+ [AVCOL_PRI_FILM] = { WP_C, { 0.681, 0.319, 0.243, 0.692, 0.145, 0.049 } },
+ [AVCOL_PRI_BT2020] = { WP_D65, { 0.708, 0.292, 0.170, 0.797, 0.131, 0.046 } },
+ [AVCOL_PRI_JEDEC_P22] = { WP_D65, { 0.630, 0.340, 0.295, 0.605, 0.155, 0.077 } },
};
static const struct ColorPrimaries *get_color_primaries(enum AVColorPrimaries prm)
{
- const struct ColorPrimaries *coeffs;
+ const struct ColorPrimaries *p;
if (prm >= AVCOL_PRI_NB)
return NULL;
- coeffs = &color_primaries[prm];
- if (!coeffs->xr)
+ p = &color_primaries[prm];
+ if (!p->coeff.xr)
return NULL;
- return coeffs;
-}
-
-static void invert_matrix3x3(const double in[3][3], double out[3][3])
-{
- double m00 = in[0][0], m01 = in[0][1], m02 = in[0][2],
- m10 = in[1][0], m11 = in[1][1], m12 = in[1][2],
- m20 = in[2][0], m21 = in[2][1], m22 = in[2][2];
- int i, j;
- double det;
-
- out[0][0] = (m11 * m22 - m21 * m12);
- out[0][1] = -(m01 * m22 - m21 * m02);
- out[0][2] = (m01 * m12 - m11 * m02);
- out[1][0] = -(m10 * m22 - m20 * m12);
- out[1][1] = (m00 * m22 - m20 * m02);
- out[1][2] = -(m00 * m12 - m10 * m02);
- out[2][0] = (m10 * m21 - m20 * m11);
- out[2][1] = -(m00 * m21 - m20 * m01);
- out[2][2] = (m00 * m11 - m10 * m01);
-
- det = m00 * out[0][0] + m10 * out[0][1] + m20 * out[0][2];
- det = 1.0 / det;
-
- for (i = 0; i < 3; i++) {
- for (j = 0; j < 3; j++)
- out[i][j] *= det;
- }
+ return p;
}
static int fill_gamma_table(ColorSpaceContext *s)
@@ -380,49 +346,6 @@ static int fill_gamma_table(ColorSpaceContext *s)
}
/*
- * see e.g. http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html
- */
-static void fill_rgb2xyz_table(const struct ColorPrimaries *coeffs,
- double rgb2xyz[3][3])
-{
- const struct WhitepointCoefficients *wp = &whitepoint_coefficients[coeffs->wp];
- double i[3][3], sr, sg, sb, zw;
-
- rgb2xyz[0][0] = coeffs->xr / coeffs->yr;
- rgb2xyz[0][1] = coeffs->xg / coeffs->yg;
- rgb2xyz[0][2] = coeffs->xb / coeffs->yb;
- rgb2xyz[1][0] = rgb2xyz[1][1] = rgb2xyz[1][2] = 1.0;
- rgb2xyz[2][0] = (1.0 - coeffs->xr - coeffs->yr) / coeffs->yr;
- rgb2xyz[2][1] = (1.0 - coeffs->xg - coeffs->yg) / coeffs->yg;
- rgb2xyz[2][2] = (1.0 - coeffs->xb - coeffs->yb) / coeffs->yb;
- invert_matrix3x3(rgb2xyz, i);
- zw = 1.0 - wp->xw - wp->yw;
- sr = i[0][0] * wp->xw + i[0][1] * wp->yw + i[0][2] * zw;
- sg = i[1][0] * wp->xw + i[1][1] * wp->yw + i[1][2] * zw;
- sb = i[2][0] * wp->xw + i[2][1] * wp->yw + i[2][2] * zw;
- rgb2xyz[0][0] *= sr;
- rgb2xyz[0][1] *= sg;
- rgb2xyz[0][2] *= sb;
- rgb2xyz[1][0] *= sr;
- rgb2xyz[1][1] *= sg;
- rgb2xyz[1][2] *= sb;
- rgb2xyz[2][0] *= sr;
- rgb2xyz[2][1] *= sg;
- rgb2xyz[2][2] *= sb;
-}
-
-static void mul3x3(double dst[3][3], const double src1[3][3], const double src2[3][3])
-{
- int m, n;
-
- for (m = 0; m < 3; m++)
- for (n = 0; n < 3; n++)
- dst[m][n] = src2[m][0] * src1[0][n] +
- src2[m][1] * src1[1][n] +
- src2[m][2] * src1[2][n];
-}
-
-/*
* See http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html
* This function uses the Bradford mechanism.
*/
@@ -448,7 +371,7 @@ static void fill_whitepoint_conv_table(double out[3][3], enum WhitepointAdaptati
double mai[3][3], fac[3][3], tmp[3][3];
double rs, gs, bs, rd, gd, bd;
- invert_matrix3x3(ma, mai);
+ ff_matrix_invert_3x3(ma, mai);
rs = ma[0][0] * wp_src->xw + ma[0][1] * wp_src->yw + ma[0][2] * zw_src;
gs = ma[1][0] * wp_src->xw + ma[1][1] * wp_src->yw + ma[1][2] * zw_src;
bs = ma[2][0] * wp_src->xw + ma[2][1] * wp_src->yw + ma[2][2] * zw_src;
@@ -459,8 +382,8 @@ static void fill_whitepoint_conv_table(double out[3][3], enum WhitepointAdaptati
fac[1][1] = gd / gs;
fac[2][2] = bd / bs;
fac[0][1] = fac[0][2] = fac[1][0] = fac[1][2] = fac[2][0] = fac[2][1] = 0.0;
- mul3x3(tmp, ma, fac);
- mul3x3(out, tmp, mai);
+ ff_matrix_mul_3x3(tmp, ma, fac);
+ ff_matrix_mul_3x3(out, tmp, mai);
}
static void apply_lut(int16_t *buf[3], ptrdiff_t stride,
@@ -661,20 +584,23 @@ static int create_filtergraph(AVFilterContext *ctx,
sizeof(*s->in_primaries));
if (!s->lrgb2lrgb_passthrough) {
double rgb2xyz[3][3], xyz2rgb[3][3], rgb2rgb[3][3];
+ const struct WhitepointCoefficients *wp_out, *wp_in;
- fill_rgb2xyz_table(s->out_primaries, rgb2xyz);
- invert_matrix3x3(rgb2xyz, xyz2rgb);
- fill_rgb2xyz_table(s->in_primaries, rgb2xyz);
+ wp_out = &whitepoint_coefficients[s->out_primaries->wp];
+ wp_in = &whitepoint_coefficients[s->in_primaries->wp];
+ ff_fill_rgb2xyz_table(&s->out_primaries->coeff, wp_out, rgb2xyz);
+ ff_matrix_invert_3x3(rgb2xyz, xyz2rgb);
+ ff_fill_rgb2xyz_table(&s->in_primaries->coeff, wp_in, rgb2xyz);
if (s->out_primaries->wp != s->in_primaries->wp &&
s->wp_adapt != WP_ADAPT_IDENTITY) {
double wpconv[3][3], tmp[3][3];
fill_whitepoint_conv_table(wpconv, s->wp_adapt, s->in_primaries->wp,
s->out_primaries->wp);
- mul3x3(tmp, rgb2xyz, wpconv);
- mul3x3(rgb2rgb, tmp, xyz2rgb);
+ ff_matrix_mul_3x3(tmp, rgb2xyz, wpconv);
+ ff_matrix_mul_3x3(rgb2rgb, tmp, xyz2rgb);
} else {
- mul3x3(rgb2rgb, rgb2xyz, xyz2rgb);
+ ff_matrix_mul_3x3(rgb2rgb, rgb2xyz, xyz2rgb);
}
for (m = 0; m < 3; m++)
for (n = 0; n < 3; n++) {
@@ -799,7 +725,7 @@ static int create_filtergraph(AVFilterContext *ctx,
for (n = 0; n < 8; n++)
s->yuv_offset[0][n] = off;
fill_rgb2yuv_table(s->in_lumacoef, rgb2yuv);
- invert_matrix3x3(rgb2yuv, yuv2rgb);
+ ff_matrix_invert_3x3(rgb2yuv, yuv2rgb);
bits = 1 << (in_desc->comp[0].depth - 1);
for (n = 0; n < 3; n++) {
for (in_rng = s->in_y_rng, m = 0; m < 3; m++, in_rng = s->in_uv_rng) {
@@ -855,7 +781,7 @@ static int create_filtergraph(AVFilterContext *ctx,
double yuv2yuv[3][3];
int in_rng, out_rng;
- mul3x3(yuv2yuv, yuv2rgb, rgb2yuv);
+ ff_matrix_mul_3x3(yuv2yuv, yuv2rgb, rgb2yuv);
for (out_rng = s->out_y_rng, m = 0; m < 3; m++, out_rng = s->out_uv_rng) {
for (in_rng = s->in_y_rng, n = 0; n < 3; n++, in_rng = s->in_uv_rng) {
s->yuv2yuv_coeffs[m][n][0] =
diff --git a/chromium/third_party/ffmpeg/libavfilter/vf_convolution_opencl.c b/chromium/third_party/ffmpeg/libavfilter/vf_convolution_opencl.c
index 2df51e05340..00246b2e435 100644
--- a/chromium/third_party/ffmpeg/libavfilter/vf_convolution_opencl.c
+++ b/chromium/third_party/ffmpeg/libavfilter/vf_convolution_opencl.c
@@ -47,12 +47,16 @@ typedef struct ConvolutionOpenCLContext {
cl_float rdivs[4];
cl_float biases[4];
-} ConvolutionOpenCLContext;
+ cl_int planes;
+ cl_float scale;
+ cl_float delta;
+} ConvolutionOpenCLContext;
static int convolution_opencl_init(AVFilterContext *avctx)
{
ConvolutionOpenCLContext *ctx = avctx->priv;
+ const char *kernel_name;
cl_int cle;
int err;
@@ -63,19 +67,21 @@ static int convolution_opencl_init(AVFilterContext *avctx)
ctx->command_queue = clCreateCommandQueue(ctx->ocf.hwctx->context,
ctx->ocf.hwctx->device_id,
0, &cle);
- if (!ctx->command_queue) {
- av_log(avctx, AV_LOG_ERROR, "Failed to create OpenCL "
- "command queue: %d.\n", cle);
- err = AVERROR(EIO);
- goto fail;
- }
-
- ctx->kernel = clCreateKernel(ctx->ocf.program, "convolution_global", &cle);
- if (!ctx->kernel) {
- av_log(avctx, AV_LOG_ERROR, "Failed to create kernel: %d.\n", cle);
- err = AVERROR(EIO);
- goto fail;
+ CL_FAIL_ON_ERROR(AVERROR(EIO), "Failed to create OpenCL "
+ "command queue %d.\n", cle);
+
+ if (!strcmp(avctx->filter->name, "convolution_opencl")) {
+ kernel_name = "convolution_global";
+ } else if (!strcmp(avctx->filter->name, "sobel_opencl")) {
+ kernel_name = "sobel_global";
+ } else if (!strcmp(avctx->filter->name, "prewitt_opencl")){
+ kernel_name = "prewitt_global";
+ } else if (!strcmp(avctx->filter->name, "roberts_opencl")){
+ kernel_name = "roberts_global";
}
+ ctx->kernel = clCreateKernel(ctx->ocf.program, kernel_name, &cle);
+ CL_FAIL_ON_ERROR(AVERROR(EIO), "Failed to create "
+ "kernel %d.\n", cle);
ctx->initialised = 1;
return 0;
@@ -173,6 +179,8 @@ static int convolution_opencl_filter_frame(AVFilterLink *inlink, AVFrame *input)
size_t global_work[2];
cl_mem src, dst;
int err, p;
+ size_t origin[3] = {0, 0, 0};
+ size_t region[3] = {0, 0, 1};
av_log(ctx, AV_LOG_DEBUG, "Filter input: %s, %ux%u (%"PRId64").\n",
av_get_pix_fmt_name(input->format),
@@ -186,9 +194,14 @@ static int convolution_opencl_filter_frame(AVFilterLink *inlink, AVFrame *input)
if (err < 0)
goto fail;
- err = convolution_opencl_make_filter_params(avctx);
- if (err < 0)
- goto fail;
+ if (!strcmp(avctx->filter->name, "convolution_opencl")) {
+ err = convolution_opencl_make_filter_params(avctx);
+ if (err < 0)
+ goto fail;
+ } else {
+ ctx->delta /= 255.0;
+ }
+
}
output = ff_get_video_buffer(outlink, outlink->w, outlink->h);
@@ -204,70 +217,62 @@ static int convolution_opencl_filter_frame(AVFilterLink *inlink, AVFrame *input)
if (!dst)
break;
- cle = clSetKernelArg(ctx->kernel, 0, sizeof(cl_mem), &dst);
- if (cle != CL_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "Failed to set kernel "
- "destination image argument: %d.\n", cle);
- goto fail;
- }
- cle = clSetKernelArg(ctx->kernel, 1, sizeof(cl_mem), &src);
- if (cle != CL_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "Failed to set kernel "
- "source image argument: %d.\n", cle);
- goto fail;
- }
- cle = clSetKernelArg(ctx->kernel, 2, sizeof(cl_int), &ctx->dims[p]);
- if (cle != CL_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "Failed to set kernel "
- "matrix size argument: %d.\n", cle);
- goto fail;
- }
- cle = clSetKernelArg(ctx->kernel, 3, sizeof(cl_mem), &ctx->matrix[p]);
- if (cle != CL_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "Failed to set kernel "
- "matrix argument: %d.\n", cle);
- goto fail;
- }
- cle = clSetKernelArg(ctx->kernel, 4, sizeof(cl_float), &ctx->rdivs[p]);
- if (cle != CL_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "Failed to set kernel "
- "rdiv argument: %d.\n", cle);
- goto fail;
- }
- cle = clSetKernelArg(ctx->kernel, 5, sizeof(cl_float), &ctx->biases[p]);
- if (cle != CL_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "Failed to set kernel "
- "bias argument: %d.\n", cle);
- goto fail;
- }
-
-
- err = ff_opencl_filter_work_size_from_image(avctx, global_work, output, p, 0);
- if (err < 0)
- goto fail;
-
- av_log(avctx, AV_LOG_DEBUG, "Run kernel on plane %d "
- "(%"SIZE_SPECIFIER"x%"SIZE_SPECIFIER").\n",
- p, global_work[0], global_work[1]);
-
- cle = clEnqueueNDRangeKernel(ctx->command_queue, ctx->kernel, 2, NULL,
- global_work, NULL,
- 0, NULL, NULL);
- if (cle != CL_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "Failed to enqueue kernel: %d.\n",
- cle);
- err = AVERROR(EIO);
- goto fail;
+ if (!strcmp(avctx->filter->name, "convolution_opencl")) {
+ CL_SET_KERNEL_ARG(ctx->kernel, 0, cl_mem, &dst);
+ CL_SET_KERNEL_ARG(ctx->kernel, 1, cl_mem, &src);
+ CL_SET_KERNEL_ARG(ctx->kernel, 2, cl_int, &ctx->dims[p]);
+ CL_SET_KERNEL_ARG(ctx->kernel, 3, cl_mem, &ctx->matrix[p]);
+ CL_SET_KERNEL_ARG(ctx->kernel, 4, cl_float, &ctx->rdivs[p]);
+ CL_SET_KERNEL_ARG(ctx->kernel, 5, cl_float, &ctx->biases[p]);
+
+ err = ff_opencl_filter_work_size_from_image(avctx, global_work, output, p, 0);
+ if (err < 0)
+ goto fail;
+
+ av_log(avctx, AV_LOG_DEBUG, "Run kernel on plane %d "
+ "(%"SIZE_SPECIFIER"x%"SIZE_SPECIFIER").\n",
+ p, global_work[0], global_work[1]);
+
+ cle = clEnqueueNDRangeKernel(ctx->command_queue, ctx->kernel, 2, NULL,
+ global_work, NULL,
+ 0, NULL, NULL);
+ CL_FAIL_ON_ERROR(AVERROR(EIO), "Failed to enqueue "
+ "kernel: %d.\n", cle);
+ } else {
+ if (!(ctx->planes & (1 << p))) {
+ err = ff_opencl_filter_work_size_from_image(avctx, region, output, p, 0);
+ if (err < 0)
+ goto fail;
+
+ cle = clEnqueueCopyImage(ctx->command_queue, src, dst,
+ origin, origin, region, 0, NULL, NULL);
+ CL_FAIL_ON_ERROR(AVERROR(EIO), "Failed to copy plane %d: %d.\n",
+ p, cle);
+ } else {
+ CL_SET_KERNEL_ARG(ctx->kernel, 0, cl_mem, &dst);
+ CL_SET_KERNEL_ARG(ctx->kernel, 1, cl_mem, &src);
+ CL_SET_KERNEL_ARG(ctx->kernel, 2, cl_float, &ctx->scale);
+ CL_SET_KERNEL_ARG(ctx->kernel, 3, cl_float, &ctx->delta);
+
+ err = ff_opencl_filter_work_size_from_image(avctx, global_work, output, p, 0);
+ if (err < 0)
+ goto fail;
+
+ av_log(avctx, AV_LOG_DEBUG, "Run kernel on plane %d "
+ "(%"SIZE_SPECIFIER"x%"SIZE_SPECIFIER").\n",
+ p, global_work[0], global_work[1]);
+
+ cle = clEnqueueNDRangeKernel(ctx->command_queue, ctx->kernel, 2, NULL,
+ global_work, NULL,
+ 0, NULL, NULL);
+ CL_FAIL_ON_ERROR(AVERROR(EIO), "Failed to enqueue "
+ "kernel: %d.\n", cle);
+ }
}
}
cle = clFinish(ctx->command_queue);
- if (cle != CL_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "Failed to finish command queue: %d.\n",
- cle);
- err = AVERROR(EIO);
- goto fail;
- }
+ CL_FAIL_ON_ERROR(AVERROR(EIO), "Failed to finish command queue: %d.\n", cle);
err = av_frame_copy_props(output, input);
if (err < 0)
@@ -315,8 +320,30 @@ static av_cold void convolution_opencl_uninit(AVFilterContext *avctx)
ff_opencl_filter_uninit(avctx);
}
+static const AVFilterPad convolution_opencl_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .filter_frame = &convolution_opencl_filter_frame,
+ .config_props = &ff_opencl_filter_config_input,
+ },
+ { NULL }
+};
+
+static const AVFilterPad convolution_opencl_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .config_props = &ff_opencl_filter_config_output,
+ },
+ { NULL }
+};
+
#define OFFSET(x) offsetof(ConvolutionOpenCLContext, x)
#define FLAGS (AV_OPT_FLAG_FILTERING_PARAM | AV_OPT_FLAG_VIDEO_PARAM)
+
+#if CONFIG_CONVOLUTION_OPENCL_FILTER
+
static const AVOption convolution_opencl_options[] = {
{ "0m", "set matrix for 2nd plane", OFFSET(matrix_str[0]), AV_OPT_TYPE_STRING, {.str="0 0 0 0 1 0 0 0 0"}, 0, 0, FLAGS },
{ "1m", "set matrix for 2nd plane", OFFSET(matrix_str[1]), AV_OPT_TYPE_STRING, {.str="0 0 0 0 1 0 0 0 0"}, 0, 0, FLAGS },
@@ -335,30 +362,89 @@ static const AVOption convolution_opencl_options[] = {
AVFILTER_DEFINE_CLASS(convolution_opencl);
-static const AVFilterPad convolution_opencl_inputs[] = {
- {
- .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .filter_frame = &convolution_opencl_filter_frame,
- .config_props = &ff_opencl_filter_config_input,
- },
+AVFilter ff_vf_convolution_opencl = {
+ .name = "convolution_opencl",
+ .description = NULL_IF_CONFIG_SMALL("Apply convolution mask to input video"),
+ .priv_size = sizeof(ConvolutionOpenCLContext),
+ .priv_class = &convolution_opencl_class,
+ .init = &ff_opencl_filter_init,
+ .uninit = &convolution_opencl_uninit,
+ .query_formats = &ff_opencl_filter_query_formats,
+ .inputs = convolution_opencl_inputs,
+ .outputs = convolution_opencl_outputs,
+ .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE,
+};
+
+#endif /* CONFIG_CONVOLUTION_OPENCL_FILTER */
+
+#if CONFIG_SOBEL_OPENCL_FILTER
+
+static const AVOption sobel_opencl_options[] = {
+ { "planes", "set planes to filter", OFFSET(planes), AV_OPT_TYPE_INT, {.i64=15}, 0, 15, FLAGS},
+ { "scale", "set scale", OFFSET(scale), AV_OPT_TYPE_FLOAT, {.dbl=1.0}, 0.0, 65535, FLAGS},
+ { "delta", "set delta", OFFSET(delta), AV_OPT_TYPE_FLOAT, {.dbl=0}, -65535, 65535, FLAGS},
{ NULL }
};
-static const AVFilterPad convolution_opencl_outputs[] = {
- {
- .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .config_props = &ff_opencl_filter_config_output,
- },
+AVFILTER_DEFINE_CLASS(sobel_opencl);
+
+AVFilter ff_vf_sobel_opencl = {
+ .name = "sobel_opencl",
+ .description = NULL_IF_CONFIG_SMALL("Apply sobel operator"),
+ .priv_size = sizeof(ConvolutionOpenCLContext),
+ .priv_class = &sobel_opencl_class,
+ .init = &ff_opencl_filter_init,
+ .uninit = &convolution_opencl_uninit,
+ .query_formats = &ff_opencl_filter_query_formats,
+ .inputs = convolution_opencl_inputs,
+ .outputs = convolution_opencl_outputs,
+ .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE,
+};
+
+#endif /* CONFIG_SOBEL_OPENCL_FILTER */
+
+#if CONFIG_PREWITT_OPENCL_FILTER
+
+static const AVOption prewitt_opencl_options[] = {
+ { "planes", "set planes to filter", OFFSET(planes), AV_OPT_TYPE_INT, {.i64=15}, 0, 15, FLAGS},
+ { "scale", "set scale", OFFSET(scale), AV_OPT_TYPE_FLOAT, {.dbl=1.0}, 0.0, 65535, FLAGS},
+ { "delta", "set delta", OFFSET(delta), AV_OPT_TYPE_FLOAT, {.dbl=0}, -65535, 65535, FLAGS},
{ NULL }
};
-AVFilter ff_vf_convolution_opencl = {
- .name = "convolution_opencl",
- .description = NULL_IF_CONFIG_SMALL("Apply convolution mask to input video"),
+AVFILTER_DEFINE_CLASS(prewitt_opencl);
+
+AVFilter ff_vf_prewitt_opencl = {
+ .name = "prewitt_opencl",
+ .description = NULL_IF_CONFIG_SMALL("Apply prewitt operator"),
.priv_size = sizeof(ConvolutionOpenCLContext),
- .priv_class = &convolution_opencl_class,
+ .priv_class = &prewitt_opencl_class,
+ .init = &ff_opencl_filter_init,
+ .uninit = &convolution_opencl_uninit,
+ .query_formats = &ff_opencl_filter_query_formats,
+ .inputs = convolution_opencl_inputs,
+ .outputs = convolution_opencl_outputs,
+ .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE,
+};
+
+#endif /* CONFIG_PREWITT_OPENCL_FILTER */
+
+#if CONFIG_ROBERTS_OPENCL_FILTER
+
+static const AVOption roberts_opencl_options[] = {
+ { "planes", "set planes to filter", OFFSET(planes), AV_OPT_TYPE_INT, {.i64=15}, 0, 15, FLAGS},
+ { "scale", "set scale", OFFSET(scale), AV_OPT_TYPE_FLOAT, {.dbl=1.0}, 0.0, 65535, FLAGS},
+ { "delta", "set delta", OFFSET(delta), AV_OPT_TYPE_FLOAT, {.dbl=0}, -65535, 65535, FLAGS},
+ { NULL }
+};
+
+AVFILTER_DEFINE_CLASS(roberts_opencl);
+
+AVFilter ff_vf_roberts_opencl = {
+ .name = "roberts_opencl",
+ .description = NULL_IF_CONFIG_SMALL("Apply roberts operator"),
+ .priv_size = sizeof(ConvolutionOpenCLContext),
+ .priv_class = &roberts_opencl_class,
.init = &ff_opencl_filter_init,
.uninit = &convolution_opencl_uninit,
.query_formats = &ff_opencl_filter_query_formats,
@@ -366,3 +452,5 @@ AVFilter ff_vf_convolution_opencl = {
.outputs = convolution_opencl_outputs,
.flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE,
};
+
+#endif /* CONFIG_ROBERTS_OPENCL_FILTER */
diff --git a/chromium/third_party/ffmpeg/libavfilter/vf_drawtext.c b/chromium/third_party/ffmpeg/libavfilter/vf_drawtext.c
index 3affa736c7e..cca2cbcb88b 100644
--- a/chromium/third_party/ffmpeg/libavfilter/vf_drawtext.c
+++ b/chromium/third_party/ffmpeg/libavfilter/vf_drawtext.c
@@ -1407,8 +1407,8 @@ static int draw_text(AVFilterContext *ctx, AVFrame *frame,
update_color_with_alpha(s, &bordercolor, s->bordercolor);
update_color_with_alpha(s, &boxcolor , s->boxcolor );
- box_w = FFMIN(width - 1 , max_text_line_w);
- box_h = FFMIN(height - 1, y + s->max_glyph_h);
+ box_w = max_text_line_w;
+ box_h = y + s->max_glyph_h;
if (s->fix_bounds) {
diff --git a/chromium/third_party/ffmpeg/libavfilter/vf_lensfun.c b/chromium/third_party/ffmpeg/libavfilter/vf_lensfun.c
new file mode 100644
index 00000000000..fd14210addb
--- /dev/null
+++ b/chromium/third_party/ffmpeg/libavfilter/vf_lensfun.c
@@ -0,0 +1,548 @@
+/*
+ * Copyright (C) 2007 by Andrew Zabolotny (author of lensfun, from which this filter derives from)
+ * Copyright (C) 2018 Stephen Seo
+ *
+ * This file is part of FFmpeg.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+/**
+ * @file
+ * Lensfun filter, applies lens correction with parameters from the lensfun database
+ *
+ * @see https://lensfun.sourceforge.net/
+ */
+
+#include <float.h>
+#include <math.h>
+
+#include "libavutil/avassert.h"
+#include "libavutil/imgutils.h"
+#include "libavutil/opt.h"
+#include "libswscale/swscale.h"
+#include "avfilter.h"
+#include "formats.h"
+#include "internal.h"
+#include "video.h"
+
+#include <lensfun.h>
+
+#define LANCZOS_RESOLUTION 256
+
+enum Mode {
+ VIGNETTING = 0x1,
+ GEOMETRY_DISTORTION = 0x2,
+ SUBPIXEL_DISTORTION = 0x4
+};
+
+enum InterpolationType {
+ NEAREST,
+ LINEAR,
+ LANCZOS
+};
+
+typedef struct VignettingThreadData {
+ int width, height;
+ uint8_t *data_in;
+ int linesize_in;
+ int pixel_composition;
+ lfModifier *modifier;
+} VignettingThreadData;
+
+typedef struct DistortionCorrectionThreadData {
+ int width, height;
+ const float *distortion_coords;
+ const uint8_t *data_in;
+ uint8_t *data_out;
+ int linesize_in, linesize_out;
+ const float *interpolation;
+ int mode;
+ int interpolation_type;
+} DistortionCorrectionThreadData;
+
+typedef struct LensfunContext {
+ const AVClass *class;
+ const char *make, *model, *lens_model;
+ int mode;
+ float focal_length;
+ float aperture;
+ float focus_distance;
+ int target_geometry;
+ int reverse;
+ int interpolation_type;
+
+ float *distortion_coords;
+ float *interpolation;
+
+ lfLens *lens;
+ lfCamera *camera;
+ lfModifier *modifier;
+} LensfunContext;
+
+#define OFFSET(x) offsetof(LensfunContext, x)
+#define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM
+static const AVOption lensfun_options[] = {
+ { "make", "set camera maker", OFFSET(make), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 0, FLAGS },
+ { "model", "set camera model", OFFSET(model), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 0, FLAGS },
+ { "lens_model", "set lens model", OFFSET(lens_model), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 0, FLAGS },
+ { "mode", "set mode", OFFSET(mode), AV_OPT_TYPE_INT, {.i64=GEOMETRY_DISTORTION}, 0, VIGNETTING | GEOMETRY_DISTORTION | SUBPIXEL_DISTORTION, FLAGS, "mode" },
+ { "vignetting", "fix lens vignetting", 0, AV_OPT_TYPE_CONST, {.i64=VIGNETTING}, 0, 0, FLAGS, "mode" },
+ { "geometry", "correct geometry distortion", 0, AV_OPT_TYPE_CONST, {.i64=GEOMETRY_DISTORTION}, 0, 0, FLAGS, "mode" },
+ { "subpixel", "fix chromatic aberrations", 0, AV_OPT_TYPE_CONST, {.i64=SUBPIXEL_DISTORTION}, 0, 0, FLAGS, "mode" },
+ { "vig_geo", "fix lens vignetting and correct geometry distortion", 0, AV_OPT_TYPE_CONST, {.i64=VIGNETTING | GEOMETRY_DISTORTION}, 0, 0, FLAGS, "mode" },
+ { "vig_subpixel", "fix lens vignetting and chromatic aberrations", 0, AV_OPT_TYPE_CONST, {.i64=VIGNETTING | SUBPIXEL_DISTORTION}, 0, 0, FLAGS, "mode" },
+ { "distortion", "correct geometry distortion and chromatic aberrations", 0, AV_OPT_TYPE_CONST, {.i64=GEOMETRY_DISTORTION | SUBPIXEL_DISTORTION}, 0, 0, FLAGS, "mode" },
+ { "all", NULL, 0, AV_OPT_TYPE_CONST, {.i64=VIGNETTING | GEOMETRY_DISTORTION | SUBPIXEL_DISTORTION}, 0, 0, FLAGS, "mode" },
+ { "focal_length", "focal length of video (zoom; constant for the duration of the use of this filter)", OFFSET(focal_length), AV_OPT_TYPE_FLOAT, {.dbl=18}, 0.0, DBL_MAX, FLAGS },
+ { "aperture", "aperture (constant for the duration of the use of this filter)", OFFSET(aperture), AV_OPT_TYPE_FLOAT, {.dbl=3.5}, 0.0, DBL_MAX, FLAGS },
+ { "focus_distance", "focus distance (constant for the duration of the use of this filter)", OFFSET(focus_distance), AV_OPT_TYPE_FLOAT, {.dbl=1000.0f}, 0.0, DBL_MAX, FLAGS },
+ { "target_geometry", "target geometry of the lens correction (only when geometry correction is enabled)", OFFSET(target_geometry), AV_OPT_TYPE_INT, {.i64=LF_RECTILINEAR}, 0, INT_MAX, FLAGS, "lens_geometry" },
+ { "rectilinear", "rectilinear lens (default)", 0, AV_OPT_TYPE_CONST, {.i64=LF_RECTILINEAR}, 0, 0, FLAGS, "lens_geometry" },
+ { "fisheye", "fisheye lens", 0, AV_OPT_TYPE_CONST, {.i64=LF_FISHEYE}, 0, 0, FLAGS, "lens_geometry" },
+ { "panoramic", "panoramic (cylindrical)", 0, AV_OPT_TYPE_CONST, {.i64=LF_PANORAMIC}, 0, 0, FLAGS, "lens_geometry" },
+ { "equirectangular", "equirectangular", 0, AV_OPT_TYPE_CONST, {.i64=LF_EQUIRECTANGULAR}, 0, 0, FLAGS, "lens_geometry" },
+ { "fisheye_orthographic", "orthographic fisheye", 0, AV_OPT_TYPE_CONST, {.i64=LF_FISHEYE_ORTHOGRAPHIC}, 0, 0, FLAGS, "lens_geometry" },
+ { "fisheye_stereographic", "stereographic fisheye", 0, AV_OPT_TYPE_CONST, {.i64=LF_FISHEYE_STEREOGRAPHIC}, 0, 0, FLAGS, "lens_geometry" },
+ { "fisheye_equisolid", "equisolid fisheye", 0, AV_OPT_TYPE_CONST, {.i64=LF_FISHEYE_EQUISOLID}, 0, 0, FLAGS, "lens_geometry" },
+ { "fisheye_thoby", "fisheye as measured by thoby", 0, AV_OPT_TYPE_CONST, {.i64=LF_FISHEYE_THOBY}, 0, 0, FLAGS, "lens_geometry" },
+ { "reverse", "Does reverse correction (regular image to lens distorted)", OFFSET(reverse), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS },
+ { "interpolation", "Type of interpolation", OFFSET(interpolation_type), AV_OPT_TYPE_INT, {.i64=LINEAR}, 0, LANCZOS, FLAGS, "interpolation" },
+ { "nearest", NULL, 0, AV_OPT_TYPE_CONST, {.i64=NEAREST}, 0, 0, FLAGS, "interpolation" },
+ { "linear", NULL, 0, AV_OPT_TYPE_CONST, {.i64=LINEAR}, 0, 0, FLAGS, "interpolation" },
+ { "lanczos", NULL, 0, AV_OPT_TYPE_CONST, {.i64=LANCZOS}, 0, 0, FLAGS, "interpolation" },
+ { NULL }
+};
+
+AVFILTER_DEFINE_CLASS(lensfun);
+
+static av_cold int init(AVFilterContext *ctx)
+{
+ LensfunContext *lensfun = ctx->priv;
+ lfDatabase *db;
+ const lfCamera **cameras;
+ const lfLens **lenses;
+
+ if (!lensfun->make) {
+ av_log(ctx, AV_LOG_FATAL, "Option \"make\" not specified\n");
+ return AVERROR(EINVAL);
+ } else if (!lensfun->model) {
+ av_log(ctx, AV_LOG_FATAL, "Option \"model\" not specified\n");
+ return AVERROR(EINVAL);
+ } else if (!lensfun->lens_model) {
+ av_log(ctx, AV_LOG_FATAL, "Option \"lens_model\" not specified\n");
+ return AVERROR(EINVAL);
+ }
+
+ lensfun->lens = lf_lens_new();
+ lensfun->camera = lf_camera_new();
+
+ db = lf_db_new();
+ if (lf_db_load(db) != LF_NO_ERROR) {
+ lf_db_destroy(db);
+ av_log(ctx, AV_LOG_FATAL, "Failed to load lensfun database\n");
+ return AVERROR_INVALIDDATA;
+ }
+
+ cameras = lf_db_find_cameras(db, lensfun->make, lensfun->model);
+ if (cameras && *cameras) {
+ lf_camera_copy(lensfun->camera, *cameras);
+ av_log(ctx, AV_LOG_INFO, "Using camera %s\n", lensfun->camera->Model);
+ } else {
+ lf_free(cameras);
+ lf_db_destroy(db);
+ av_log(ctx, AV_LOG_FATAL, "Failed to find camera in lensfun database\n");
+ return AVERROR_INVALIDDATA;
+ }
+ lf_free(cameras);
+
+ lenses = lf_db_find_lenses_hd(db, lensfun->camera, NULL, lensfun->lens_model, 0);
+ if (lenses && *lenses) {
+ lf_lens_copy(lensfun->lens, *lenses);
+ av_log(ctx, AV_LOG_INFO, "Using lens %s\n", lensfun->lens->Model);
+ } else {
+ lf_free(lenses);
+ lf_db_destroy(db);
+ av_log(ctx, AV_LOG_FATAL, "Failed to find lens in lensfun database\n");
+ return AVERROR_INVALIDDATA;
+ }
+ lf_free(lenses);
+
+ lf_db_destroy(db);
+ return 0;
+}
+
+static int query_formats(AVFilterContext *ctx)
+{
+ // Some of the functions provided by lensfun require pixels in RGB format
+ static const enum AVPixelFormat fmts[] = {AV_PIX_FMT_RGB24, AV_PIX_FMT_NONE};
+ AVFilterFormats *fmts_list = ff_make_format_list(fmts);
+ return ff_set_common_formats(ctx, fmts_list);
+}
+
+static float lanczos_kernel(float x)
+{
+ if (x == 0.0f) {
+ return 1.0f;
+ } else if (x > -2.0f && x < 2.0f) {
+ return (2.0f * sin(M_PI * x) * sin(M_PI / 2.0f * x)) / (M_PI * M_PI * x * x);
+ } else {
+ return 0.0f;
+ }
+}
+
+static int config_props(AVFilterLink *inlink)
+{
+ AVFilterContext *ctx = inlink->dst;
+ LensfunContext *lensfun = ctx->priv;
+ int index;
+ float a;
+ int lensfun_mode = 0;
+
+ if (!lensfun->modifier) {
+ if (lensfun->camera && lensfun->lens) {
+ lensfun->modifier = lf_modifier_new(lensfun->lens,
+ lensfun->camera->CropFactor,
+ inlink->w,
+ inlink->h);
+ if (lensfun->mode & VIGNETTING)
+ lensfun_mode |= LF_MODIFY_VIGNETTING;
+ if (lensfun->mode & GEOMETRY_DISTORTION)
+ lensfun_mode |= LF_MODIFY_DISTORTION | LF_MODIFY_GEOMETRY | LF_MODIFY_SCALE;
+ if (lensfun->mode & SUBPIXEL_DISTORTION)
+ lensfun_mode |= LF_MODIFY_TCA;
+ lf_modifier_initialize(lensfun->modifier,
+ lensfun->lens,
+ LF_PF_U8,
+ lensfun->focal_length,
+ lensfun->aperture,
+ lensfun->focus_distance,
+ 0.0,
+ lensfun->target_geometry,
+ lensfun_mode,
+ lensfun->reverse);
+ } else {
+ // lensfun->camera and lensfun->lens should have been initialized
+ return AVERROR_BUG;
+ }
+ }
+
+ if (!lensfun->distortion_coords) {
+ if (lensfun->mode & SUBPIXEL_DISTORTION) {
+ lensfun->distortion_coords = av_malloc(sizeof(float) * inlink->w * inlink->h * 2 * 3);
+ if (!lensfun->distortion_coords)
+ return AVERROR(ENOMEM);
+ if (lensfun->mode & GEOMETRY_DISTORTION) {
+ // apply both geometry and subpixel distortion
+ lf_modifier_apply_subpixel_geometry_distortion(lensfun->modifier,
+ 0, 0,
+ inlink->w, inlink->h,
+ lensfun->distortion_coords);
+ } else {
+ // apply only subpixel distortion
+ lf_modifier_apply_subpixel_distortion(lensfun->modifier,
+ 0, 0,
+ inlink->w, inlink->h,
+ lensfun->distortion_coords);
+ }
+ } else if (lensfun->mode & GEOMETRY_DISTORTION) {
+ lensfun->distortion_coords = av_malloc(sizeof(float) * inlink->w * inlink->h * 2);
+ if (!lensfun->distortion_coords)
+ return AVERROR(ENOMEM);
+ // apply only geometry distortion
+ lf_modifier_apply_geometry_distortion(lensfun->modifier,
+ 0, 0,
+ inlink->w, inlink->h,
+ lensfun->distortion_coords);
+ }
+ }
+
+ if (!lensfun->interpolation)
+ if (lensfun->interpolation_type == LANCZOS) {
+ lensfun->interpolation = av_malloc(sizeof(float) * 4 * LANCZOS_RESOLUTION);
+ if (!lensfun->interpolation)
+ return AVERROR(ENOMEM);
+ for (index = 0; index < 4 * LANCZOS_RESOLUTION; ++index) {
+ if (index == 0) {
+ lensfun->interpolation[index] = 1.0f;
+ } else {
+ a = sqrtf((float)index / LANCZOS_RESOLUTION);
+ lensfun->interpolation[index] = lanczos_kernel(a);
+ }
+ }
+ }
+
+ return 0;
+}
+
+static int vignetting_filter_slice(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
+{
+ const VignettingThreadData *thread_data = arg;
+ const int slice_start = thread_data->height * jobnr / nb_jobs;
+ const int slice_end = thread_data->height * (jobnr + 1) / nb_jobs;
+
+ lf_modifier_apply_color_modification(thread_data->modifier,
+ thread_data->data_in + slice_start * thread_data->linesize_in,
+ 0,
+ slice_start,
+ thread_data->width,
+ slice_end - slice_start,
+ thread_data->pixel_composition,
+ thread_data->linesize_in);
+
+ return 0;
+}
+
+static float square(float x)
+{
+ return x * x;
+}
+
+static int distortion_correction_filter_slice(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
+{
+ const DistortionCorrectionThreadData *thread_data = arg;
+ const int slice_start = thread_data->height * jobnr / nb_jobs;
+ const int slice_end = thread_data->height * (jobnr + 1) / nb_jobs;
+
+ int x, y, i, j, rgb_index;
+ float interpolated, new_x, new_y, d, norm;
+ int new_x_int, new_y_int;
+ for (y = slice_start; y < slice_end; ++y)
+ for (x = 0; x < thread_data->width; ++x)
+ for (rgb_index = 0; rgb_index < 3; ++rgb_index) {
+ if (thread_data->mode & SUBPIXEL_DISTORTION) {
+ // subpixel (and possibly geometry) distortion correction was applied, correct distortion
+ switch(thread_data->interpolation_type) {
+ case NEAREST:
+ new_x_int = thread_data->distortion_coords[x * 2 * 3 + y * thread_data->width * 2 * 3 + rgb_index * 2] + 0.5f;
+ new_y_int = thread_data->distortion_coords[x * 2 * 3 + y * thread_data->width * 2 * 3 + rgb_index * 2 + 1] + 0.5f;
+ if (new_x_int < 0 || new_x_int >= thread_data->width || new_y_int < 0 || new_y_int >= thread_data->height) {
+ thread_data->data_out[x * 3 + rgb_index + y * thread_data->linesize_out] = 0;
+ } else {
+ thread_data->data_out[x * 3 + rgb_index + y * thread_data->linesize_out] = thread_data->data_in[new_x_int * 3 + rgb_index + new_y_int * thread_data->linesize_in];
+ }
+ break;
+ case LINEAR:
+ interpolated = 0.0f;
+ new_x = thread_data->distortion_coords[x * 2 * 3 + y * thread_data->width * 2 * 3 + rgb_index * 2];
+ new_x_int = new_x;
+ new_y = thread_data->distortion_coords[x * 2 * 3 + y * thread_data->width * 2 * 3 + rgb_index * 2 + 1];
+ new_y_int = new_y;
+ if (new_x_int < 0 || new_x_int + 1 >= thread_data->width || new_y_int < 0 || new_y_int + 1 >= thread_data->height) {
+ thread_data->data_out[x * 3 + rgb_index + y * thread_data->linesize_out] = 0;
+ } else {
+ thread_data->data_out[x * 3 + rgb_index + y * thread_data->linesize_out] =
+ thread_data->data_in[ new_x_int * 3 + rgb_index + new_y_int * thread_data->linesize_in] * (new_x_int + 1 - new_x) * (new_y_int + 1 - new_y)
+ + thread_data->data_in[(new_x_int + 1) * 3 + rgb_index + new_y_int * thread_data->linesize_in] * (new_x - new_x_int) * (new_y_int + 1 - new_y)
+ + thread_data->data_in[ new_x_int * 3 + rgb_index + (new_y_int + 1) * thread_data->linesize_in] * (new_x_int + 1 - new_x) * (new_y - new_y_int)
+ + thread_data->data_in[(new_x_int + 1) * 3 + rgb_index + (new_y_int + 1) * thread_data->linesize_in] * (new_x - new_x_int) * (new_y - new_y_int);
+ }
+ break;
+ case LANCZOS:
+ interpolated = 0.0f;
+ norm = 0.0f;
+ new_x = thread_data->distortion_coords[x * 2 * 3 + y * thread_data->width * 2 * 3 + rgb_index * 2];
+ new_x_int = new_x;
+ new_y = thread_data->distortion_coords[x * 2 * 3 + y * thread_data->width * 2 * 3 + rgb_index * 2 + 1];
+ new_y_int = new_y;
+ for (j = 0; j < 4; ++j)
+ for (i = 0; i < 4; ++i) {
+ if (new_x_int + i - 2 < 0 || new_x_int + i - 2 >= thread_data->width || new_y_int + j - 2 < 0 || new_y_int + j - 2 >= thread_data->height)
+ continue;
+ d = square(new_x - (new_x_int + i - 2)) * square(new_y - (new_y_int + j - 2));
+ if (d >= 4.0f)
+ continue;
+ d = thread_data->interpolation[(int)(d * LANCZOS_RESOLUTION)];
+ norm += d;
+ interpolated += thread_data->data_in[(new_x_int + i - 2) * 3 + rgb_index + (new_y_int + j - 2) * thread_data->linesize_in] * d;
+ }
+ if (norm == 0.0f) {
+ thread_data->data_out[x * 3 + rgb_index + y * thread_data->linesize_out] = 0;
+ } else {
+ interpolated /= norm;
+ thread_data->data_out[x * 3 + rgb_index + y * thread_data->linesize_out] = interpolated < 0.0f ? 0.0f : interpolated > 255.0f ? 255.0f : interpolated;
+ }
+ break;
+ }
+ } else if (thread_data->mode & GEOMETRY_DISTORTION) {
+ // geometry distortion correction was applied, correct distortion
+ switch(thread_data->interpolation_type) {
+ case NEAREST:
+ new_x_int = thread_data->distortion_coords[x * 2 + y * thread_data->width * 2] + 0.5f;
+ new_y_int = thread_data->distortion_coords[x * 2 + y * thread_data->width * 2 + 1] + 0.5f;
+ if (new_x_int < 0 || new_x_int >= thread_data->width || new_y_int < 0 || new_y_int >= thread_data->height) {
+ thread_data->data_out[x * 3 + rgb_index + y * thread_data->linesize_out] = 0;
+ } else {
+ thread_data->data_out[x * 3 + rgb_index + y * thread_data->linesize_out] = thread_data->data_in[new_x_int * 3 + rgb_index + new_y_int * thread_data->linesize_in];
+ }
+ break;
+ case LINEAR:
+ interpolated = 0.0f;
+ new_x = thread_data->distortion_coords[x * 2 + y * thread_data->width * 2];
+ new_x_int = new_x;
+ new_y = thread_data->distortion_coords[x * 2 + y * thread_data->width * 2 + 1];
+ new_y_int = new_y;
+ if (new_x_int < 0 || new_x_int + 1 >= thread_data->width || new_y_int < 0 || new_y_int + 1 >= thread_data->height) {
+ thread_data->data_out[x * 3 + rgb_index + y * thread_data->linesize_out] = 0;
+ } else {
+ thread_data->data_out[x * 3 + rgb_index + y * thread_data->linesize_out] =
+ thread_data->data_in[ new_x_int * 3 + rgb_index + new_y_int * thread_data->linesize_in] * (new_x_int + 1 - new_x) * (new_y_int + 1 - new_y)
+ + thread_data->data_in[(new_x_int + 1) * 3 + rgb_index + new_y_int * thread_data->linesize_in] * (new_x - new_x_int) * (new_y_int + 1 - new_y)
+ + thread_data->data_in[ new_x_int * 3 + rgb_index + (new_y_int + 1) * thread_data->linesize_in] * (new_x_int + 1 - new_x) * (new_y - new_y_int)
+ + thread_data->data_in[(new_x_int + 1) * 3 + rgb_index + (new_y_int + 1) * thread_data->linesize_in] * (new_x - new_x_int) * (new_y - new_y_int);
+ }
+ break;
+ case LANCZOS:
+ interpolated = 0.0f;
+ norm = 0.0f;
+ new_x = thread_data->distortion_coords[x * 2 + y * thread_data->width * 2];
+ new_x_int = new_x;
+ new_y = thread_data->distortion_coords[x * 2 + 1 + y * thread_data->width * 2];
+ new_y_int = new_y;
+ for (j = 0; j < 4; ++j)
+ for (i = 0; i < 4; ++i) {
+ if (new_x_int + i - 2 < 0 || new_x_int + i - 2 >= thread_data->width || new_y_int + j - 2 < 0 || new_y_int + j - 2 >= thread_data->height)
+ continue;
+ d = square(new_x - (new_x_int + i - 2)) * square(new_y - (new_y_int + j - 2));
+ if (d >= 4.0f)
+ continue;
+ d = thread_data->interpolation[(int)(d * LANCZOS_RESOLUTION)];
+ norm += d;
+ interpolated += thread_data->data_in[(new_x_int + i - 2) * 3 + rgb_index + (new_y_int + j - 2) * thread_data->linesize_in] * d;
+ }
+ if (norm == 0.0f) {
+ thread_data->data_out[x * 3 + rgb_index + y * thread_data->linesize_out] = 0;
+ } else {
+ interpolated /= norm;
+ thread_data->data_out[x * 3 + rgb_index + y * thread_data->linesize_out] = interpolated < 0.0f ? 0.0f : interpolated > 255.0f ? 255.0f : interpolated;
+ }
+ break;
+ }
+ } else {
+ // no distortion correction was applied
+ thread_data->data_out[x * 3 + rgb_index + y * thread_data->linesize_out] = thread_data->data_in[x * 3 + rgb_index + y * thread_data->linesize_in];
+ }
+ }
+
+ return 0;
+}
+
+static int filter_frame(AVFilterLink *inlink, AVFrame *in)
+{
+ AVFilterContext *ctx = inlink->dst;
+ LensfunContext *lensfun = ctx->priv;
+ AVFilterLink *outlink = ctx->outputs[0];
+ AVFrame *out;
+ VignettingThreadData vignetting_thread_data;
+ DistortionCorrectionThreadData distortion_correction_thread_data;
+
+ if (lensfun->mode & VIGNETTING) {
+ av_frame_make_writable(in);
+
+ vignetting_thread_data = (VignettingThreadData) {
+ .width = inlink->w,
+ .height = inlink->h,
+ .data_in = in->data[0],
+ .linesize_in = in->linesize[0],
+ .pixel_composition = LF_CR_3(RED, GREEN, BLUE),
+ .modifier = lensfun->modifier
+ };
+
+ ctx->internal->execute(ctx,
+ vignetting_filter_slice,
+ &vignetting_thread_data,
+ NULL,
+ FFMIN(outlink->h, ctx->graph->nb_threads));
+ }
+
+ if (lensfun->mode & (GEOMETRY_DISTORTION | SUBPIXEL_DISTORTION)) {
+ out = ff_get_video_buffer(outlink, outlink->w, outlink->h);
+ if (!out) {
+ av_frame_free(&in);
+ return AVERROR(ENOMEM);
+ }
+ av_frame_copy_props(out, in);
+
+ distortion_correction_thread_data = (DistortionCorrectionThreadData) {
+ .width = inlink->w,
+ .height = inlink->h,
+ .distortion_coords = lensfun->distortion_coords,
+ .data_in = in->data[0],
+ .data_out = out->data[0],
+ .linesize_in = in->linesize[0],
+ .linesize_out = out->linesize[0],
+ .interpolation = lensfun->interpolation,
+ .mode = lensfun->mode,
+ .interpolation_type = lensfun->interpolation_type
+ };
+
+ ctx->internal->execute(ctx,
+ distortion_correction_filter_slice,
+ &distortion_correction_thread_data,
+ NULL,
+ FFMIN(outlink->h, ctx->graph->nb_threads));
+
+ av_frame_free(&in);
+ return ff_filter_frame(outlink, out);
+ } else {
+ return ff_filter_frame(outlink, in);
+ }
+}
+
+static av_cold void uninit(AVFilterContext *ctx)
+{
+ LensfunContext *lensfun = ctx->priv;
+
+ if (lensfun->camera)
+ lf_camera_destroy(lensfun->camera);
+ if (lensfun->lens)
+ lf_lens_destroy(lensfun->lens);
+ if (lensfun->modifier)
+ lf_modifier_destroy(lensfun->modifier);
+ if (lensfun->distortion_coords)
+ av_free(lensfun->distortion_coords);
+ if (lensfun->interpolation)
+ av_free(lensfun->interpolation);
+}
+
+static const AVFilterPad lensfun_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .config_props = config_props,
+ .filter_frame = filter_frame,
+ },
+ { NULL }
+};
+
+static const AVFilterPad lensfun_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ },
+ { NULL }
+};
+
+AVFilter ff_vf_lensfun = {
+ .name = "lensfun",
+ .description = NULL_IF_CONFIG_SMALL("Apply correction to an image based on info derived from the lensfun database."),
+ .priv_size = sizeof(LensfunContext),
+ .init = init,
+ .uninit = uninit,
+ .query_formats = query_formats,
+ .inputs = lensfun_inputs,
+ .outputs = lensfun_outputs,
+ .priv_class = &lensfun_class,
+ .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS,
+};
diff --git a/chromium/third_party/ffmpeg/libavfilter/vf_minterpolate.c b/chromium/third_party/ffmpeg/libavfilter/vf_minterpolate.c
index d53431593d1..c6a5e63f90b 100644
--- a/chromium/third_party/ffmpeg/libavfilter/vf_minterpolate.c
+++ b/chromium/third_party/ffmpeg/libavfilter/vf_minterpolate.c
@@ -1122,8 +1122,8 @@ static void interpolate(AVFilterLink *inlink, AVFrame *avf_out)
for (y = 0; y < height; y++) {
for (x = 0; x < width; x++) {
avf_out->data[plane][x + y * avf_out->linesize[plane]] =
- alpha * mi_ctx->frames[2].avf->data[plane][x + y * mi_ctx->frames[2].avf->linesize[plane]] +
- ((ALPHA_MAX - alpha) * mi_ctx->frames[1].avf->data[plane][x + y * mi_ctx->frames[1].avf->linesize[plane]] + 512) >> 10;
+ (alpha * mi_ctx->frames[2].avf->data[plane][x + y * mi_ctx->frames[2].avf->linesize[plane]] +
+ (ALPHA_MAX - alpha) * mi_ctx->frames[1].avf->data[plane][x + y * mi_ctx->frames[1].avf->linesize[plane]] + 512) >> 10;
}
}
}
diff --git a/chromium/third_party/ffmpeg/libavfilter/vf_overlay_opencl.c b/chromium/third_party/ffmpeg/libavfilter/vf_overlay_opencl.c
index b43050df583..e9c853203b4 100644
--- a/chromium/third_party/ffmpeg/libavfilter/vf_overlay_opencl.c
+++ b/chromium/third_party/ffmpeg/libavfilter/vf_overlay_opencl.c
@@ -100,19 +100,11 @@ static int overlay_opencl_load(AVFilterContext *avctx,
ctx->command_queue = clCreateCommandQueue(ctx->ocf.hwctx->context,
ctx->ocf.hwctx->device_id,
0, &cle);
- if (!ctx->command_queue) {
- av_log(avctx, AV_LOG_ERROR, "Failed to create OpenCL "
- "command queue: %d.\n", cle);
- err = AVERROR(EIO);
- goto fail;
- }
+ CL_FAIL_ON_ERROR(AVERROR(EIO), "Failed to create OpenCL "
+ "command queue %d.\n", cle);
ctx->kernel = clCreateKernel(ctx->ocf.program, kernel, &cle);
- if (!ctx->kernel) {
- av_log(avctx, AV_LOG_ERROR, "Failed to create kernel: %d.\n", cle);
- err = AVERROR(EIO);
- goto fail;
- }
+ CL_FAIL_ON_ERROR(AVERROR(EIO), "Failed to create kernel %d.\n", cle);
ctx->initialised = 1;
return 0;
@@ -167,47 +159,39 @@ static int overlay_opencl_blend(FFFrameSync *fs)
kernel_arg = 0;
mem = (cl_mem)output->data[plane];
- cle = clSetKernelArg(ctx->kernel, kernel_arg++, sizeof(cl_mem), &mem);
- if (cle != CL_SUCCESS)
- goto fail_kernel_arg;
+ CL_SET_KERNEL_ARG(ctx->kernel, kernel_arg, cl_mem, &mem);
+ kernel_arg++;
mem = (cl_mem)input_main->data[plane];
- cle = clSetKernelArg(ctx->kernel, kernel_arg++, sizeof(cl_mem), &mem);
- if (cle != CL_SUCCESS)
- goto fail_kernel_arg;
+ CL_SET_KERNEL_ARG(ctx->kernel, kernel_arg, cl_mem, &mem);
+ kernel_arg++;
mem = (cl_mem)input_overlay->data[plane];
- cle = clSetKernelArg(ctx->kernel, kernel_arg++, sizeof(cl_mem), &mem);
- if (cle != CL_SUCCESS)
- goto fail_kernel_arg;
+ CL_SET_KERNEL_ARG(ctx->kernel, kernel_arg, cl_mem, &mem);
+ kernel_arg++;
if (ctx->alpha_separate) {
mem = (cl_mem)input_overlay->data[ctx->nb_planes];
- cle = clSetKernelArg(ctx->kernel, kernel_arg++, sizeof(cl_mem), &mem);
- if (cle != CL_SUCCESS)
- goto fail_kernel_arg;
+ CL_SET_KERNEL_ARG(ctx->kernel, kernel_arg, cl_mem, &mem);
+ kernel_arg++;
}
x = ctx->x_position / (plane == 0 ? 1 : ctx->x_subsample);
y = ctx->y_position / (plane == 0 ? 1 : ctx->y_subsample);
- cle = clSetKernelArg(ctx->kernel, kernel_arg++, sizeof(cl_int), &x);
- if (cle != CL_SUCCESS)
- goto fail_kernel_arg;
- cle = clSetKernelArg(ctx->kernel, kernel_arg++, sizeof(cl_int), &y);
- if (cle != CL_SUCCESS)
- goto fail_kernel_arg;
+ CL_SET_KERNEL_ARG(ctx->kernel, kernel_arg, cl_int, &x);
+ kernel_arg++;
+ CL_SET_KERNEL_ARG(ctx->kernel, kernel_arg, cl_int, &y);
+ kernel_arg++;
if (ctx->alpha_separate) {
cl_int alpha_adj_x = plane == 0 ? 1 : ctx->x_subsample;
cl_int alpha_adj_y = plane == 0 ? 1 : ctx->y_subsample;
- cle = clSetKernelArg(ctx->kernel, kernel_arg++, sizeof(cl_int), &alpha_adj_x);
- if (cle != CL_SUCCESS)
- goto fail_kernel_arg;
- cle = clSetKernelArg(ctx->kernel, kernel_arg++, sizeof(cl_int), &alpha_adj_y);
- if (cle != CL_SUCCESS)
- goto fail_kernel_arg;
+ CL_SET_KERNEL_ARG(ctx->kernel, kernel_arg, cl_int, &alpha_adj_x);
+ kernel_arg++;
+ CL_SET_KERNEL_ARG(ctx->kernel, kernel_arg, cl_int, &alpha_adj_y);
+ kernel_arg++;
}
err = ff_opencl_filter_work_size_from_image(avctx, global_work,
@@ -217,21 +201,12 @@ static int overlay_opencl_blend(FFFrameSync *fs)
cle = clEnqueueNDRangeKernel(ctx->command_queue, ctx->kernel, 2, NULL,
global_work, NULL, 0, NULL, NULL);
- if (cle != CL_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "Failed to enqueue "
- "overlay kernel for plane %d: %d.\n", cle, plane);
- err = AVERROR(EIO);
- goto fail;
- }
+ CL_FAIL_ON_ERROR(AVERROR(EIO), "Failed to enqueue overlay kernel "
+ "for plane %d: %d.\n", plane, cle);
}
cle = clFinish(ctx->command_queue);
- if (cle != CL_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "Failed to finish "
- "command queue: %d.\n", cle);
- err = AVERROR(EIO);
- goto fail;
- }
+ CL_FAIL_ON_ERROR(AVERROR(EIO), "Failed to finish command queue: %d.\n", cle);
err = av_frame_copy_props(output, input_main);
@@ -241,10 +216,6 @@ static int overlay_opencl_blend(FFFrameSync *fs)
return ff_filter_frame(outlink, output);
-fail_kernel_arg:
- av_log(avctx, AV_LOG_ERROR, "Failed to set kernel arg %d: %d.\n",
- kernel_arg, cle);
- err = AVERROR(EIO);
fail:
av_frame_free(&output);
return err;
diff --git a/chromium/third_party/ffmpeg/libavfilter/vf_program_opencl.c b/chromium/third_party/ffmpeg/libavfilter/vf_program_opencl.c
index a0027923fb2..dfb25652bc2 100644
--- a/chromium/third_party/ffmpeg/libavfilter/vf_program_opencl.c
+++ b/chromium/third_party/ffmpeg/libavfilter/vf_program_opencl.c
@@ -148,21 +148,11 @@ static int program_opencl_run(AVFilterContext *avctx)
cle = clEnqueueNDRangeKernel(ctx->command_queue, ctx->kernel, 2, NULL,
global_work, NULL, 0, NULL, NULL);
- if (cle != CL_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "Failed to enqueue kernel: %d.\n",
- cle);
- err = AVERROR(EIO);
- goto fail;
- }
+ CL_FAIL_ON_ERROR(AVERROR(EIO), "Failed to enqueue kernel: %d.\n", cle);
}
cle = clFinish(ctx->command_queue);
- if (cle != CL_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "Failed to finish command queue: %d.\n",
- cle);
- err = AVERROR(EIO);
- goto fail;
- }
+ CL_FAIL_ON_ERROR(AVERROR(EIO), "Failed to finish command queue: %d.\n", cle);
if (ctx->nb_inputs > 0) {
err = av_frame_copy_props(output, ctx->frames[0]);
diff --git a/chromium/third_party/ffmpeg/libavfilter/vf_sr.c b/chromium/third_party/ffmpeg/libavfilter/vf_sr.c
new file mode 100644
index 00000000000..2107e5a4c80
--- /dev/null
+++ b/chromium/third_party/ffmpeg/libavfilter/vf_sr.c
@@ -0,0 +1,354 @@
+/*
+ * Copyright (c) 2018 Sergey Lavrushkin
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/**
+ * @file
+ * Filter implementing image super-resolution using deep convolutional networks.
+ * https://arxiv.org/abs/1501.00092
+ * https://arxiv.org/abs/1609.05158
+ */
+
+#include "avfilter.h"
+#include "formats.h"
+#include "internal.h"
+#include "libavutil/opt.h"
+#include "libavformat/avio.h"
+#include "libswscale/swscale.h"
+#include "dnn_interface.h"
+
+typedef enum {SRCNN, ESPCN} SRModel;
+
+typedef struct SRContext {
+ const AVClass *class;
+
+ SRModel model_type;
+ char* model_filename;
+ DNNBackendType backend_type;
+ DNNModule* dnn_module;
+ DNNModel* model;
+ DNNData input, output;
+ int scale_factor;
+ struct SwsContext* sws_context;
+ int sws_slice_h;
+} SRContext;
+
+#define OFFSET(x) offsetof(SRContext, x)
+#define FLAGS AV_OPT_FLAG_FILTERING_PARAM | AV_OPT_FLAG_VIDEO_PARAM
+static const AVOption sr_options[] = {
+ { "model", "specifies what DNN model to use", OFFSET(model_type), AV_OPT_TYPE_FLAGS, { .i64 = 0 }, 0, 1, FLAGS, "model_type" },
+ { "srcnn", "Super-Resolution Convolutional Neural Network model (scale factor should be specified for custom SRCNN model)", 0, AV_OPT_TYPE_CONST, { .i64 = 0 }, 0, 0, FLAGS, "model_type" },
+ { "espcn", "Efficient Sub-Pixel Convolutional Neural Network model", 0, AV_OPT_TYPE_CONST, { .i64 = 1 }, 0, 0, FLAGS, "model_type" },
+ { "dnn_backend", "DNN backend used for model execution", OFFSET(backend_type), AV_OPT_TYPE_FLAGS, { .i64 = 0 }, 0, 1, FLAGS, "backend" },
+ { "native", "native backend flag", 0, AV_OPT_TYPE_CONST, { .i64 = 0 }, 0, 0, FLAGS, "backend" },
+#if (CONFIG_LIBTENSORFLOW == 1)
+ { "tensorflow", "tensorflow backend flag", 0, AV_OPT_TYPE_CONST, { .i64 = 1 }, 0, 0, FLAGS, "backend" },
+#endif
+ {"scale_factor", "scale factor for SRCNN model", OFFSET(scale_factor), AV_OPT_TYPE_INT, { .i64 = 2 }, 2, 4, FLAGS},
+ { "model_filename", "path to model file specifying network architecture and its parameters", OFFSET(model_filename), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 0, FLAGS },
+ { NULL }
+};
+
+AVFILTER_DEFINE_CLASS(sr);
+
+static av_cold int init(AVFilterContext* context)
+{
+ SRContext* sr_context = context->priv;
+
+ sr_context->dnn_module = ff_get_dnn_module(sr_context->backend_type);
+ if (!sr_context->dnn_module){
+ av_log(context, AV_LOG_ERROR, "could not create DNN module for requested backend\n");
+ return AVERROR(ENOMEM);
+ }
+ if (!sr_context->model_filename){
+ av_log(context, AV_LOG_VERBOSE, "model file for network was not specified, using default network for x2 upsampling\n");
+ sr_context->scale_factor = 2;
+ switch (sr_context->model_type){
+ case SRCNN:
+ sr_context->model = (sr_context->dnn_module->load_default_model)(DNN_SRCNN);
+ break;
+ case ESPCN:
+ sr_context->model = (sr_context->dnn_module->load_default_model)(DNN_ESPCN);
+ }
+ }
+ else{
+ sr_context->model = (sr_context->dnn_module->load_model)(sr_context->model_filename);
+ }
+ if (!sr_context->model){
+ av_log(context, AV_LOG_ERROR, "could not load DNN model\n");
+ return AVERROR(EIO);
+ }
+
+ return 0;
+}
+
+static int query_formats(AVFilterContext* context)
+{
+ const enum AVPixelFormat pixel_formats[] = {AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P,
+ AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_GRAY8,
+ AV_PIX_FMT_NONE};
+ AVFilterFormats* formats_list;
+
+ formats_list = ff_make_format_list(pixel_formats);
+ if (!formats_list){
+ av_log(context, AV_LOG_ERROR, "could not create formats list\n");
+ return AVERROR(ENOMEM);
+ }
+ return ff_set_common_formats(context, formats_list);
+}
+
+static int config_props(AVFilterLink* inlink)
+{
+ AVFilterContext* context = inlink->dst;
+ SRContext* sr_context = context->priv;
+ AVFilterLink* outlink = context->outputs[0];
+ DNNReturnType result;
+ int sws_src_h, sws_src_w, sws_dst_h, sws_dst_w;
+
+ switch (sr_context->model_type){
+ case SRCNN:
+ sr_context->input.width = inlink->w * sr_context->scale_factor;
+ sr_context->input.height = inlink->h * sr_context->scale_factor;
+ break;
+ case ESPCN:
+ sr_context->input.width = inlink->w;
+ sr_context->input.height = inlink->h;
+ }
+ sr_context->input.channels = 1;
+
+ result = (sr_context->model->set_input_output)(sr_context->model->model, &sr_context->input, &sr_context->output);
+ if (result != DNN_SUCCESS){
+ av_log(context, AV_LOG_ERROR, "could not set input and output for the model\n");
+ return AVERROR(EIO);
+ }
+ else{
+ outlink->h = sr_context->output.height;
+ outlink->w = sr_context->output.width;
+ switch (sr_context->model_type){
+ case SRCNN:
+ sr_context->sws_context = sws_getContext(inlink->w, inlink->h, inlink->format,
+ outlink->w, outlink->h, outlink->format, SWS_BICUBIC, NULL, NULL, NULL);
+ if (!sr_context->sws_context){
+ av_log(context, AV_LOG_ERROR, "could not create SwsContext\n");
+ return AVERROR(ENOMEM);
+ }
+ sr_context->sws_slice_h = inlink->h;
+ break;
+ case ESPCN:
+ if (inlink->format == AV_PIX_FMT_GRAY8){
+ sr_context->sws_context = NULL;
+ }
+ else{
+ sws_src_h = sr_context->input.height;
+ sws_src_w = sr_context->input.width;
+ sws_dst_h = sr_context->output.height;
+ sws_dst_w = sr_context->output.width;
+
+ switch (inlink->format){
+ case AV_PIX_FMT_YUV420P:
+ sws_src_h = (sws_src_h >> 1) + (sws_src_h % 2 != 0 ? 1 : 0);
+ sws_src_w = (sws_src_w >> 1) + (sws_src_w % 2 != 0 ? 1 : 0);
+ sws_dst_h = (sws_dst_h >> 1) + (sws_dst_h % 2 != 0 ? 1 : 0);
+ sws_dst_w = (sws_dst_w >> 1) + (sws_dst_w % 2 != 0 ? 1 : 0);
+ break;
+ case AV_PIX_FMT_YUV422P:
+ sws_src_w = (sws_src_w >> 1) + (sws_src_w % 2 != 0 ? 1 : 0);
+ sws_dst_w = (sws_dst_w >> 1) + (sws_dst_w % 2 != 0 ? 1 : 0);
+ break;
+ case AV_PIX_FMT_YUV444P:
+ break;
+ case AV_PIX_FMT_YUV410P:
+ sws_src_h = (sws_src_h >> 2) + (sws_src_h % 4 != 0 ? 1 : 0);
+ sws_src_w = (sws_src_w >> 2) + (sws_src_w % 4 != 0 ? 1 : 0);
+ sws_dst_h = (sws_dst_h >> 2) + (sws_dst_h % 4 != 0 ? 1 : 0);
+ sws_dst_w = (sws_dst_w >> 2) + (sws_dst_w % 4 != 0 ? 1 : 0);
+ break;
+ case AV_PIX_FMT_YUV411P:
+ sws_src_w = (sws_src_w >> 2) + (sws_src_w % 4 != 0 ? 1 : 0);
+ sws_dst_w = (sws_dst_w >> 2) + (sws_dst_w % 4 != 0 ? 1 : 0);
+ break;
+ default:
+ av_log(context, AV_LOG_ERROR, "could not create SwsContext for input pixel format");
+ return AVERROR(EIO);
+ }
+ sr_context->sws_context = sws_getContext(sws_src_w, sws_src_h, AV_PIX_FMT_GRAY8,
+ sws_dst_w, sws_dst_h, AV_PIX_FMT_GRAY8, SWS_BICUBIC, NULL, NULL, NULL);
+ if (!sr_context->sws_context){
+ av_log(context, AV_LOG_ERROR, "could not create SwsContext\n");
+ return AVERROR(ENOMEM);
+ }
+ sr_context->sws_slice_h = sws_src_h;
+ }
+ }
+
+ return 0;
+ }
+}
+
+typedef struct ThreadData{
+ uint8_t* data;
+ int data_linesize, height, width;
+} ThreadData;
+
+static int uint8_to_float(AVFilterContext* context, void* arg, int jobnr, int nb_jobs)
+{
+ SRContext* sr_context = context->priv;
+ const ThreadData* td = arg;
+ const int slice_start = (td->height * jobnr ) / nb_jobs;
+ const int slice_end = (td->height * (jobnr + 1)) / nb_jobs;
+ const uint8_t* src = td->data + slice_start * td->data_linesize;
+ float* dst = sr_context->input.data + slice_start * td->width;
+ int y, x;
+
+ for (y = slice_start; y < slice_end; ++y){
+ for (x = 0; x < td->width; ++x){
+ dst[x] = (float)src[x] / 255.0f;
+ }
+ src += td->data_linesize;
+ dst += td->width;
+ }
+
+ return 0;
+}
+
+static int float_to_uint8(AVFilterContext* context, void* arg, int jobnr, int nb_jobs)
+{
+ SRContext* sr_context = context->priv;
+ const ThreadData* td = arg;
+ const int slice_start = (td->height * jobnr ) / nb_jobs;
+ const int slice_end = (td->height * (jobnr + 1)) / nb_jobs;
+ const float* src = sr_context->output.data + slice_start * td->width;
+ uint8_t* dst = td->data + slice_start * td->data_linesize;
+ int y, x;
+
+ for (y = slice_start; y < slice_end; ++y){
+ for (x = 0; x < td->width; ++x){
+ dst[x] = (uint8_t)(255.0f * FFMIN(src[x], 1.0f));
+ }
+ src += td->width;
+ dst += td->data_linesize;
+ }
+
+ return 0;
+}
+
+static int filter_frame(AVFilterLink* inlink, AVFrame* in)
+{
+ AVFilterContext* context = inlink->dst;
+ SRContext* sr_context = context->priv;
+ AVFilterLink* outlink = context->outputs[0];
+ AVFrame* out = ff_get_video_buffer(outlink, outlink->w, outlink->h);
+ ThreadData td;
+ int nb_threads;
+ DNNReturnType dnn_result;
+
+ if (!out){
+ av_log(context, AV_LOG_ERROR, "could not allocate memory for output frame\n");
+ av_frame_free(&in);
+ return AVERROR(ENOMEM);
+ }
+ av_frame_copy_props(out, in);
+ out->height = sr_context->output.height;
+ out->width = sr_context->output.width;
+ switch (sr_context->model_type){
+ case SRCNN:
+ sws_scale(sr_context->sws_context, (const uint8_t **)in->data, in->linesize,
+ 0, sr_context->sws_slice_h, out->data, out->linesize);
+ td.data = out->data[0];
+ td.data_linesize = out->linesize[0];
+ td.height = out->height;
+ td.width = out->width;
+ break;
+ case ESPCN:
+ if (sr_context->sws_context){
+ sws_scale(sr_context->sws_context, (const uint8_t **)(in->data + 1), in->linesize + 1,
+ 0, sr_context->sws_slice_h, out->data + 1, out->linesize + 1);
+ sws_scale(sr_context->sws_context, (const uint8_t **)(in->data + 2), in->linesize + 2,
+ 0, sr_context->sws_slice_h, out->data + 2, out->linesize + 2);
+ }
+ td.data = in->data[0];
+ td.data_linesize = in->linesize[0];
+ td.height = in->height;
+ td.width = in->width;
+ }
+
+ nb_threads = ff_filter_get_nb_threads(context);
+ context->internal->execute(context, uint8_to_float, &td, NULL, FFMIN(td.height, nb_threads));
+ av_frame_free(&in);
+
+ dnn_result = (sr_context->dnn_module->execute_model)(sr_context->model);
+ if (dnn_result != DNN_SUCCESS){
+ av_log(context, AV_LOG_ERROR, "failed to execute loaded model\n");
+ return AVERROR(EIO);
+ }
+
+ td.data = out->data[0];
+ td.data_linesize = out->linesize[0];
+ td.height = out->height;
+ td.width = out->width;
+ context->internal->execute(context, float_to_uint8, &td, NULL, FFMIN(td.height, nb_threads));
+
+ return ff_filter_frame(outlink, out);
+}
+
+static av_cold void uninit(AVFilterContext* context)
+{
+ SRContext* sr_context = context->priv;
+
+ if (sr_context->dnn_module){
+ (sr_context->dnn_module->free_model)(&sr_context->model);
+ av_freep(&sr_context->dnn_module);
+ }
+
+ if (sr_context->sws_context){
+ sws_freeContext(sr_context->sws_context);
+ }
+}
+
+static const AVFilterPad sr_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .config_props = config_props,
+ .filter_frame = filter_frame,
+ },
+ { NULL }
+};
+
+static const AVFilterPad sr_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ },
+ { NULL }
+};
+
+AVFilter ff_vf_sr = {
+ .name = "sr",
+ .description = NULL_IF_CONFIG_SMALL("Apply DNN-based image super resolution to the input."),
+ .priv_size = sizeof(SRContext),
+ .init = init,
+ .uninit = uninit,
+ .query_formats = query_formats,
+ .inputs = sr_inputs,
+ .outputs = sr_outputs,
+ .priv_class = &sr_class,
+ .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS,
+};
+
diff --git a/chromium/third_party/ffmpeg/libavfilter/vf_srcnn.c b/chromium/third_party/ffmpeg/libavfilter/vf_srcnn.c
deleted file mode 100644
index bba54f67803..00000000000
--- a/chromium/third_party/ffmpeg/libavfilter/vf_srcnn.c
+++ /dev/null
@@ -1,250 +0,0 @@
-/*
- * Copyright (c) 2018 Sergey Lavrushkin
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * Filter implementing image super-resolution using deep convolutional networks.
- * https://arxiv.org/abs/1501.00092
- */
-
-#include "avfilter.h"
-#include "formats.h"
-#include "internal.h"
-#include "libavutil/opt.h"
-#include "libavformat/avio.h"
-#include "dnn_interface.h"
-
-typedef struct SRCNNContext {
- const AVClass *class;
-
- char* model_filename;
- float* input_output_buf;
- DNNBackendType backend_type;
- DNNModule* dnn_module;
- DNNModel* model;
- DNNData input_output;
-} SRCNNContext;
-
-#define OFFSET(x) offsetof(SRCNNContext, x)
-#define FLAGS AV_OPT_FLAG_FILTERING_PARAM | AV_OPT_FLAG_VIDEO_PARAM
-static const AVOption srcnn_options[] = {
- { "dnn_backend", "DNN backend used for model execution", OFFSET(backend_type), AV_OPT_TYPE_FLAGS, { .i64 = 0 }, 0, 1, FLAGS, "backend" },
- { "native", "native backend flag", 0, AV_OPT_TYPE_CONST, { .i64 = 0 }, 0, 0, FLAGS, "backend" },
-#if (CONFIG_LIBTENSORFLOW == 1)
- { "tensorflow", "tensorflow backend flag", 0, AV_OPT_TYPE_CONST, { .i64 = 1 }, 0, 0, FLAGS, "backend" },
-#endif
- { "model_filename", "path to model file specifying network architecture and its parameters", OFFSET(model_filename), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 0, FLAGS },
- { NULL }
-};
-
-AVFILTER_DEFINE_CLASS(srcnn);
-
-static av_cold int init(AVFilterContext* context)
-{
- SRCNNContext* srcnn_context = context->priv;
-
- srcnn_context->dnn_module = ff_get_dnn_module(srcnn_context->backend_type);
- if (!srcnn_context->dnn_module){
- av_log(context, AV_LOG_ERROR, "could not create DNN module for requested backend\n");
- return AVERROR(ENOMEM);
- }
- if (!srcnn_context->model_filename){
- av_log(context, AV_LOG_VERBOSE, "model file for network was not specified, using default network for x2 upsampling\n");
- srcnn_context->model = (srcnn_context->dnn_module->load_default_model)(DNN_SRCNN);
- }
- else{
- srcnn_context->model = (srcnn_context->dnn_module->load_model)(srcnn_context->model_filename);
- }
- if (!srcnn_context->model){
- av_log(context, AV_LOG_ERROR, "could not load DNN model\n");
- return AVERROR(EIO);
- }
-
- return 0;
-}
-
-static int query_formats(AVFilterContext* context)
-{
- const enum AVPixelFormat pixel_formats[] = {AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P,
- AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_GRAY8,
- AV_PIX_FMT_NONE};
- AVFilterFormats* formats_list;
-
- formats_list = ff_make_format_list(pixel_formats);
- if (!formats_list){
- av_log(context, AV_LOG_ERROR, "could not create formats list\n");
- return AVERROR(ENOMEM);
- }
- return ff_set_common_formats(context, formats_list);
-}
-
-static int config_props(AVFilterLink* inlink)
-{
- AVFilterContext* context = inlink->dst;
- SRCNNContext* srcnn_context = context->priv;
- DNNReturnType result;
-
- srcnn_context->input_output_buf = av_malloc(inlink->h * inlink->w * sizeof(float));
- if (!srcnn_context->input_output_buf){
- av_log(context, AV_LOG_ERROR, "could not allocate memory for input/output buffer\n");
- return AVERROR(ENOMEM);
- }
-
- srcnn_context->input_output.data = srcnn_context->input_output_buf;
- srcnn_context->input_output.width = inlink->w;
- srcnn_context->input_output.height = inlink->h;
- srcnn_context->input_output.channels = 1;
-
- result = (srcnn_context->model->set_input_output)(srcnn_context->model->model, &srcnn_context->input_output, &srcnn_context->input_output);
- if (result != DNN_SUCCESS){
- av_log(context, AV_LOG_ERROR, "could not set input and output for the model\n");
- return AVERROR(EIO);
- }
- else{
- return 0;
- }
-}
-
-typedef struct ThreadData{
- uint8_t* out;
- int out_linesize, height, width;
-} ThreadData;
-
-static int uint8_to_float(AVFilterContext* context, void* arg, int jobnr, int nb_jobs)
-{
- SRCNNContext* srcnn_context = context->priv;
- const ThreadData* td = arg;
- const int slice_start = (td->height * jobnr ) / nb_jobs;
- const int slice_end = (td->height * (jobnr + 1)) / nb_jobs;
- const uint8_t* src = td->out + slice_start * td->out_linesize;
- float* dst = srcnn_context->input_output_buf + slice_start * td->width;
- int y, x;
-
- for (y = slice_start; y < slice_end; ++y){
- for (x = 0; x < td->width; ++x){
- dst[x] = (float)src[x] / 255.0f;
- }
- src += td->out_linesize;
- dst += td->width;
- }
-
- return 0;
-}
-
-static int float_to_uint8(AVFilterContext* context, void* arg, int jobnr, int nb_jobs)
-{
- SRCNNContext* srcnn_context = context->priv;
- const ThreadData* td = arg;
- const int slice_start = (td->height * jobnr ) / nb_jobs;
- const int slice_end = (td->height * (jobnr + 1)) / nb_jobs;
- const float* src = srcnn_context->input_output_buf + slice_start * td->width;
- uint8_t* dst = td->out + slice_start * td->out_linesize;
- int y, x;
-
- for (y = slice_start; y < slice_end; ++y){
- for (x = 0; x < td->width; ++x){
- dst[x] = (uint8_t)(255.0f * FFMIN(src[x], 1.0f));
- }
- src += td->width;
- dst += td->out_linesize;
- }
-
- return 0;
-}
-
-static int filter_frame(AVFilterLink* inlink, AVFrame* in)
-{
- AVFilterContext* context = inlink->dst;
- SRCNNContext* srcnn_context = context->priv;
- AVFilterLink* outlink = context->outputs[0];
- AVFrame* out = ff_get_video_buffer(outlink, outlink->w, outlink->h);
- ThreadData td;
- int nb_threads;
- DNNReturnType dnn_result;
-
- if (!out){
- av_log(context, AV_LOG_ERROR, "could not allocate memory for output frame\n");
- av_frame_free(&in);
- return AVERROR(ENOMEM);
- }
- av_frame_copy_props(out, in);
- av_frame_copy(out, in);
- av_frame_free(&in);
- td.out = out->data[0];
- td.out_linesize = out->linesize[0];
- td.height = out->height;
- td.width = out->width;
-
- nb_threads = ff_filter_get_nb_threads(context);
- context->internal->execute(context, uint8_to_float, &td, NULL, FFMIN(td.height, nb_threads));
-
- dnn_result = (srcnn_context->dnn_module->execute_model)(srcnn_context->model);
- if (dnn_result != DNN_SUCCESS){
- av_log(context, AV_LOG_ERROR, "failed to execute loaded model\n");
- return AVERROR(EIO);
- }
-
- context->internal->execute(context, float_to_uint8, &td, NULL, FFMIN(td.height, nb_threads));
-
- return ff_filter_frame(outlink, out);
-}
-
-static av_cold void uninit(AVFilterContext* context)
-{
- SRCNNContext* srcnn_context = context->priv;
-
- if (srcnn_context->dnn_module){
- (srcnn_context->dnn_module->free_model)(&srcnn_context->model);
- av_freep(&srcnn_context->dnn_module);
- }
- av_freep(&srcnn_context->input_output_buf);
-}
-
-static const AVFilterPad srcnn_inputs[] = {
- {
- .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .config_props = config_props,
- .filter_frame = filter_frame,
- },
- { NULL }
-};
-
-static const AVFilterPad srcnn_outputs[] = {
- {
- .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- },
- { NULL }
-};
-
-AVFilter ff_vf_srcnn = {
- .name = "srcnn",
- .description = NULL_IF_CONFIG_SMALL("Apply super resolution convolutional neural network to the input. Use bicubic upsamping with corresponding scaling factor before."),
- .priv_size = sizeof(SRCNNContext),
- .init = init,
- .uninit = uninit,
- .query_formats = query_formats,
- .inputs = srcnn_inputs,
- .outputs = srcnn_outputs,
- .priv_class = &srcnn_class,
- .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS,
-};
-
diff --git a/chromium/third_party/ffmpeg/libavfilter/vf_tonemap_opencl.c b/chromium/third_party/ffmpeg/libavfilter/vf_tonemap_opencl.c
new file mode 100644
index 00000000000..241f95e6c30
--- /dev/null
+++ b/chromium/third_party/ffmpeg/libavfilter/vf_tonemap_opencl.c
@@ -0,0 +1,603 @@
+/*
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+#include <float.h>
+
+#include "libavutil/avassert.h"
+#include "libavutil/bprint.h"
+#include "libavutil/common.h"
+#include "libavutil/imgutils.h"
+#include "libavutil/mastering_display_metadata.h"
+#include "libavutil/mem.h"
+#include "libavutil/opt.h"
+#include "libavutil/pixdesc.h"
+
+#include "avfilter.h"
+#include "internal.h"
+#include "opencl.h"
+#include "opencl_source.h"
+#include "video.h"
+#include "colorspace.h"
+
+// TODO:
+// - seperate peak-detection from tone-mapping kernel to solve
+// one-frame-delay issue.
+// - import colorspace matrix generation from vf_colorspace.c
+// - more format support
+
+#define DETECTION_FRAMES 63
+#define REFERENCE_WHITE 100.0f
+
+enum TonemapAlgorithm {
+ TONEMAP_NONE,
+ TONEMAP_LINEAR,
+ TONEMAP_GAMMA,
+ TONEMAP_CLIP,
+ TONEMAP_REINHARD,
+ TONEMAP_HABLE,
+ TONEMAP_MOBIUS,
+ TONEMAP_MAX,
+};
+
+typedef struct TonemapOpenCLContext {
+ OpenCLFilterContext ocf;
+
+ enum AVColorSpace colorspace, colorspace_in, colorspace_out;
+ enum AVColorTransferCharacteristic trc, trc_in, trc_out;
+ enum AVColorPrimaries primaries, primaries_in, primaries_out;
+ enum AVColorRange range, range_in, range_out;
+ enum AVChromaLocation chroma_loc;
+
+ enum TonemapAlgorithm tonemap;
+ enum AVPixelFormat format;
+ double peak;
+ double param;
+ double desat_param;
+ double target_peak;
+ double scene_threshold;
+ int initialised;
+ cl_kernel kernel;
+ cl_command_queue command_queue;
+ cl_mem util_mem;
+} TonemapOpenCLContext;
+
+static const char *yuv_coff[AVCOL_SPC_NB] = {
+ [AVCOL_SPC_BT709] = "rgb2yuv_bt709",
+ [AVCOL_SPC_BT2020_NCL] = "rgb2yuv_bt2020",
+};
+
+static const char *rgb_coff[AVCOL_SPC_NB] = {
+ [AVCOL_SPC_BT709] = "yuv2rgb_bt709",
+ [AVCOL_SPC_BT2020_NCL] = "yuv2rgb_bt2020",
+};
+
+static const char *linearize_funcs[AVCOL_TRC_NB] = {
+ [AVCOL_TRC_SMPTE2084] = "eotf_st2084",
+ [AVCOL_TRC_ARIB_STD_B67] = "inverse_oetf_hlg",
+};
+
+static const char *delinearize_funcs[AVCOL_TRC_NB] = {
+ [AVCOL_TRC_BT709] = "inverse_eotf_bt1886",
+ [AVCOL_TRC_BT2020_10] = "inverse_eotf_bt1886",
+};
+
+static const struct LumaCoefficients luma_coefficients[AVCOL_SPC_NB] = {
+ [AVCOL_SPC_BT709] = { 0.2126, 0.7152, 0.0722 },
+ [AVCOL_SPC_BT2020_NCL] = { 0.2627, 0.6780, 0.0593 },
+};
+
+static struct PrimaryCoefficients primaries_table[AVCOL_PRI_NB] = {
+ [AVCOL_PRI_BT709] = { 0.640, 0.330, 0.300, 0.600, 0.150, 0.060 },
+ [AVCOL_PRI_BT2020] = { 0.708, 0.292, 0.170, 0.797, 0.131, 0.046 },
+};
+
+static struct WhitepointCoefficients whitepoint_table[AVCOL_PRI_NB] = {
+ [AVCOL_PRI_BT709] = { 0.3127, 0.3290 },
+ [AVCOL_PRI_BT2020] = { 0.3127, 0.3290 },
+};
+
+static const char *tonemap_func[TONEMAP_MAX] = {
+ [TONEMAP_NONE] = "direct",
+ [TONEMAP_LINEAR] = "linear",
+ [TONEMAP_GAMMA] = "gamma",
+ [TONEMAP_CLIP] = "clip",
+ [TONEMAP_REINHARD] = "reinhard",
+ [TONEMAP_HABLE] = "hable",
+ [TONEMAP_MOBIUS] = "mobius",
+};
+
+static void get_rgb2rgb_matrix(enum AVColorPrimaries in, enum AVColorPrimaries out,
+ double rgb2rgb[3][3]) {
+ double rgb2xyz[3][3], xyz2rgb[3][3];
+
+ ff_fill_rgb2xyz_table(&primaries_table[out], &whitepoint_table[out], rgb2xyz);
+ ff_matrix_invert_3x3(rgb2xyz, xyz2rgb);
+ ff_fill_rgb2xyz_table(&primaries_table[in], &whitepoint_table[in], rgb2xyz);
+ ff_matrix_mul_3x3(rgb2rgb, rgb2xyz, xyz2rgb);
+}
+
+#define OPENCL_SOURCE_NB 3
+// Average light level for SDR signals. This is equal to a signal level of 0.5
+// under a typical presentation gamma of about 2.0.
+static const float sdr_avg = 0.25f;
+
+static int tonemap_opencl_init(AVFilterContext *avctx)
+{
+ TonemapOpenCLContext *ctx = avctx->priv;
+ int rgb2rgb_passthrough = 1;
+ double rgb2rgb[3][3];
+ struct LumaCoefficients luma_src, luma_dst;
+ cl_int cle;
+ int err;
+ AVBPrint header;
+ const char *opencl_sources[OPENCL_SOURCE_NB];
+
+ av_bprint_init(&header, 1024, AV_BPRINT_SIZE_AUTOMATIC);
+
+ switch(ctx->tonemap) {
+ case TONEMAP_GAMMA:
+ if (isnan(ctx->param))
+ ctx->param = 1.8f;
+ break;
+ case TONEMAP_REINHARD:
+ if (!isnan(ctx->param))
+ ctx->param = (1.0f - ctx->param) / ctx->param;
+ break;
+ case TONEMAP_MOBIUS:
+ if (isnan(ctx->param))
+ ctx->param = 0.3f;
+ break;
+ }
+
+ if (isnan(ctx->param))
+ ctx->param = 1.0f;
+
+ // SDR peak is 1.0f
+ ctx->target_peak = 1.0f;
+ av_log(ctx, AV_LOG_DEBUG, "tone mapping transfer from %s to %s\n",
+ av_color_transfer_name(ctx->trc_in),
+ av_color_transfer_name(ctx->trc_out));
+ av_log(ctx, AV_LOG_DEBUG, "mapping colorspace from %s to %s\n",
+ av_color_space_name(ctx->colorspace_in),
+ av_color_space_name(ctx->colorspace_out));
+ av_log(ctx, AV_LOG_DEBUG, "mapping primaries from %s to %s\n",
+ av_color_primaries_name(ctx->primaries_in),
+ av_color_primaries_name(ctx->primaries_out));
+ av_log(ctx, AV_LOG_DEBUG, "mapping range from %s to %s\n",
+ av_color_range_name(ctx->range_in),
+ av_color_range_name(ctx->range_out));
+ // checking valid value just because of limited implementaion
+ // please remove when more functionalities are implemented
+ av_assert0(ctx->trc_out == AVCOL_TRC_BT709 ||
+ ctx->trc_out == AVCOL_TRC_BT2020_10);
+ av_assert0(ctx->trc_in == AVCOL_TRC_SMPTE2084||
+ ctx->trc_in == AVCOL_TRC_ARIB_STD_B67);
+ av_assert0(ctx->colorspace_in == AVCOL_SPC_BT2020_NCL ||
+ ctx->colorspace_in == AVCOL_SPC_BT709);
+ av_assert0(ctx->primaries_in == AVCOL_PRI_BT2020 ||
+ ctx->primaries_in == AVCOL_PRI_BT709);
+
+ av_bprintf(&header, "__constant const float tone_param = %.4ff;\n",
+ ctx->param);
+ av_bprintf(&header, "__constant const float desat_param = %.4ff;\n",
+ ctx->desat_param);
+ av_bprintf(&header, "__constant const float target_peak = %.4ff;\n",
+ ctx->target_peak);
+ av_bprintf(&header, "__constant const float sdr_avg = %.4ff;\n", sdr_avg);
+ av_bprintf(&header, "__constant const float scene_threshold = %.4ff;\n",
+ ctx->scene_threshold);
+ av_bprintf(&header, "#define TONE_FUNC %s\n", tonemap_func[ctx->tonemap]);
+ av_bprintf(&header, "#define DETECTION_FRAMES %d\n", DETECTION_FRAMES);
+
+ if (ctx->primaries_out != ctx->primaries_in) {
+ get_rgb2rgb_matrix(ctx->primaries_in, ctx->primaries_out, rgb2rgb);
+ rgb2rgb_passthrough = 0;
+ }
+ if (ctx->range_in == AVCOL_RANGE_JPEG)
+ av_bprintf(&header, "#define FULL_RANGE_IN\n");
+
+ if (ctx->range_out == AVCOL_RANGE_JPEG)
+ av_bprintf(&header, "#define FULL_RANGE_OUT\n");
+
+ av_bprintf(&header, "#define chroma_loc %d\n", (int)ctx->chroma_loc);
+
+ if (rgb2rgb_passthrough)
+ av_bprintf(&header, "#define RGB2RGB_PASSTHROUGH\n");
+ else {
+ av_bprintf(&header, "__constant float rgb2rgb[9] = {\n");
+ av_bprintf(&header, " %.4ff, %.4ff, %.4ff,\n",
+ rgb2rgb[0][0], rgb2rgb[0][1], rgb2rgb[0][2]);
+ av_bprintf(&header, " %.4ff, %.4ff, %.4ff,\n",
+ rgb2rgb[1][0], rgb2rgb[1][1], rgb2rgb[1][2]);
+ av_bprintf(&header, " %.4ff, %.4ff, %.4ff};\n",
+ rgb2rgb[2][0], rgb2rgb[2][1], rgb2rgb[2][2]);
+ }
+
+ av_bprintf(&header, "#define rgb_matrix %s\n",
+ rgb_coff[ctx->colorspace_in]);
+ av_bprintf(&header, "#define yuv_matrix %s\n",
+ yuv_coff[ctx->colorspace_out]);
+
+ luma_src = luma_coefficients[ctx->colorspace_in];
+ luma_dst = luma_coefficients[ctx->colorspace_out];
+ av_bprintf(&header, "constant float3 luma_src = {%.4ff, %.4ff, %.4ff};\n",
+ luma_src.cr, luma_src.cg, luma_src.cb);
+ av_bprintf(&header, "constant float3 luma_dst = {%.4ff, %.4ff, %.4ff};\n",
+ luma_dst.cr, luma_dst.cg, luma_dst.cb);
+
+ av_bprintf(&header, "#define linearize %s\n", linearize_funcs[ctx->trc_in]);
+ av_bprintf(&header, "#define delinearize %s\n",
+ delinearize_funcs[ctx->trc_out]);
+
+ if (ctx->trc_in == AVCOL_TRC_ARIB_STD_B67)
+ av_bprintf(&header, "#define ootf_impl ootf_hlg\n");
+
+ if (ctx->trc_out == AVCOL_TRC_ARIB_STD_B67)
+ av_bprintf(&header, "#define inverse_ootf_impl inverse_ootf_hlg\n");
+
+ av_log(avctx, AV_LOG_DEBUG, "Generated OpenCL header:\n%s\n", header.str);
+ opencl_sources[0] = header.str;
+ opencl_sources[1] = ff_opencl_source_tonemap;
+ opencl_sources[2] = ff_opencl_source_colorspace_common;
+ err = ff_opencl_filter_load_program(avctx, opencl_sources, OPENCL_SOURCE_NB);
+
+ av_bprint_finalize(&header, NULL);
+ if (err < 0)
+ goto fail;
+
+ ctx->command_queue = clCreateCommandQueue(ctx->ocf.hwctx->context,
+ ctx->ocf.hwctx->device_id,
+ 0, &cle);
+ CL_FAIL_ON_ERROR(AVERROR(EIO), "Failed to create OpenCL "
+ "command queue %d.\n", cle);
+
+ ctx->kernel = clCreateKernel(ctx->ocf.program, "tonemap", &cle);
+ CL_FAIL_ON_ERROR(AVERROR(EIO), "Failed to create kernel %d.\n", cle);
+
+ ctx->util_mem =
+ clCreateBuffer(ctx->ocf.hwctx->context, 0,
+ (2 * DETECTION_FRAMES + 7) * sizeof(unsigned),
+ NULL, &cle);
+ CL_FAIL_ON_ERROR(AVERROR(EIO), "Failed to create util buffer: %d.\n", cle);
+
+ ctx->initialised = 1;
+ return 0;
+
+fail:
+ if (ctx->util_mem)
+ clReleaseMemObject(ctx->util_mem);
+ if (ctx->command_queue)
+ clReleaseCommandQueue(ctx->command_queue);
+ if (ctx->kernel)
+ clReleaseKernel(ctx->kernel);
+ return err;
+}
+
+static int tonemap_opencl_config_output(AVFilterLink *outlink)
+{
+ AVFilterContext *avctx = outlink->src;
+ TonemapOpenCLContext *s = avctx->priv;
+ int ret;
+ if (s->format == AV_PIX_FMT_NONE)
+ av_log(avctx, AV_LOG_WARNING, "format not set, use default format NV12\n");
+ else {
+ if (s->format != AV_PIX_FMT_P010 &&
+ s->format != AV_PIX_FMT_NV12) {
+ av_log(avctx, AV_LOG_ERROR, "unsupported output format,"
+ "only p010/nv12 supported now\n");
+ return AVERROR(EINVAL);
+ }
+ }
+
+ s->ocf.output_format = s->format == AV_PIX_FMT_NONE ? AV_PIX_FMT_NV12 : s->format;
+ ret = ff_opencl_filter_config_output(outlink);
+ if (ret < 0)
+ return ret;
+
+ return 0;
+}
+
+static int launch_kernel(AVFilterContext *avctx, cl_kernel kernel,
+ AVFrame *output, AVFrame *input, float peak) {
+ TonemapOpenCLContext *ctx = avctx->priv;
+ int err = AVERROR(ENOSYS);
+ size_t global_work[2];
+ size_t local_work[2];
+ cl_int cle;
+
+ CL_SET_KERNEL_ARG(kernel, 0, cl_mem, &output->data[0]);
+ CL_SET_KERNEL_ARG(kernel, 1, cl_mem, &input->data[0]);
+ CL_SET_KERNEL_ARG(kernel, 2, cl_mem, &output->data[1]);
+ CL_SET_KERNEL_ARG(kernel, 3, cl_mem, &input->data[1]);
+ CL_SET_KERNEL_ARG(kernel, 4, cl_mem, &ctx->util_mem);
+ CL_SET_KERNEL_ARG(kernel, 5, cl_float, &peak);
+
+ local_work[0] = 16;
+ local_work[1] = 16;
+ // Note the work size based on uv plane, as we process a 2x2 quad in one workitem
+ err = ff_opencl_filter_work_size_from_image(avctx, global_work, output,
+ 1, 16);
+ if (err < 0)
+ return err;
+
+ cle = clEnqueueNDRangeKernel(ctx->command_queue, kernel, 2, NULL,
+ global_work, local_work,
+ 0, NULL, NULL);
+ CL_FAIL_ON_ERROR(AVERROR(EIO), "Failed to enqueue kernel: %d.\n", cle);
+ return 0;
+fail:
+ return err;
+}
+
+static double determine_signal_peak(AVFrame *in)
+{
+ AVFrameSideData *sd = av_frame_get_side_data(in, AV_FRAME_DATA_CONTENT_LIGHT_LEVEL);
+ double peak = 0;
+
+ if (sd) {
+ AVContentLightMetadata *clm = (AVContentLightMetadata *)sd->data;
+ peak = clm->MaxCLL / REFERENCE_WHITE;
+ }
+
+ sd = av_frame_get_side_data(in, AV_FRAME_DATA_MASTERING_DISPLAY_METADATA);
+ if (!peak && sd) {
+ AVMasteringDisplayMetadata *metadata = (AVMasteringDisplayMetadata *)sd->data;
+ if (metadata->has_luminance)
+ peak = av_q2d(metadata->max_luminance) / REFERENCE_WHITE;
+ }
+
+ // For untagged source, use peak of 10000 if SMPTE ST.2084
+ // otherwise assume HLG with reference display peak 1000.
+ if (!peak)
+ peak = in->color_trc == AVCOL_TRC_SMPTE2084 ? 100.0f : 10.0f;
+
+ return peak;
+}
+
+static void update_metadata(AVFrame *in, double peak) {
+ AVFrameSideData *sd = av_frame_get_side_data(in, AV_FRAME_DATA_CONTENT_LIGHT_LEVEL);
+
+ if (sd) {
+ AVContentLightMetadata *clm = (AVContentLightMetadata *)sd->data;
+ clm->MaxCLL = (unsigned)(peak * REFERENCE_WHITE);
+ }
+
+ sd = av_frame_get_side_data(in, AV_FRAME_DATA_MASTERING_DISPLAY_METADATA);
+ if (sd) {
+ AVMasteringDisplayMetadata *metadata = (AVMasteringDisplayMetadata *)sd->data;
+ if (metadata->has_luminance)
+ metadata->max_luminance =av_d2q(peak * REFERENCE_WHITE, 10000);
+ }
+}
+
+static int tonemap_opencl_filter_frame(AVFilterLink *inlink, AVFrame *input)
+{
+ AVFilterContext *avctx = inlink->dst;
+ AVFilterLink *outlink = avctx->outputs[0];
+ TonemapOpenCLContext *ctx = avctx->priv;
+ AVFrame *output = NULL;
+ cl_int cle;
+ int err;
+ double peak = ctx->peak;
+
+ AVHWFramesContext *input_frames_ctx =
+ (AVHWFramesContext*)input->hw_frames_ctx->data;
+
+ av_log(ctx, AV_LOG_DEBUG, "Filter input: %s, %ux%u (%"PRId64").\n",
+ av_get_pix_fmt_name(input->format),
+ input->width, input->height, input->pts);
+
+ if (!input->hw_frames_ctx)
+ return AVERROR(EINVAL);
+
+ output = ff_get_video_buffer(outlink, outlink->w, outlink->h);
+ if (!output) {
+ err = AVERROR(ENOMEM);
+ goto fail;
+ }
+
+ err = av_frame_copy_props(output, input);
+ if (err < 0)
+ goto fail;
+
+ if (!peak)
+ peak = determine_signal_peak(input);
+
+ if (ctx->trc != -1)
+ output->color_trc = ctx->trc;
+ if (ctx->primaries != -1)
+ output->color_primaries = ctx->primaries;
+ if (ctx->colorspace != -1)
+ output->colorspace = ctx->colorspace;
+ if (ctx->range != -1)
+ output->color_range = ctx->range;
+
+ ctx->trc_in = input->color_trc;
+ ctx->trc_out = output->color_trc;
+ ctx->colorspace_in = input->colorspace;
+ ctx->colorspace_out = output->colorspace;
+ ctx->primaries_in = input->color_primaries;
+ ctx->primaries_out = output->color_primaries;
+ ctx->range_in = input->color_range;
+ ctx->range_out = output->color_range;
+ ctx->chroma_loc = output->chroma_location;
+
+ if (!ctx->initialised) {
+ if (!(input->color_trc == AVCOL_TRC_SMPTE2084 ||
+ input->color_trc == AVCOL_TRC_ARIB_STD_B67)) {
+ av_log(ctx, AV_LOG_ERROR, "unsupported transfer function characteristic.\n");
+ err = AVERROR(ENOSYS);
+ goto fail;
+ }
+
+ if (input_frames_ctx->sw_format != AV_PIX_FMT_P010) {
+ av_log(ctx, AV_LOG_ERROR, "unsupported format in tonemap_opencl.\n");
+ err = AVERROR(ENOSYS);
+ goto fail;
+ }
+
+ err = tonemap_opencl_init(avctx);
+ if (err < 0)
+ goto fail;
+ }
+
+ switch(input_frames_ctx->sw_format) {
+ case AV_PIX_FMT_P010:
+ err = launch_kernel(avctx, ctx->kernel, output, input, peak);
+ if (err < 0) goto fail;
+ break;
+ default:
+ err = AVERROR(ENOSYS);
+ goto fail;
+ }
+
+ cle = clFinish(ctx->command_queue);
+ CL_FAIL_ON_ERROR(AVERROR(EIO), "Failed to finish command queue: %d.\n", cle);
+
+ av_frame_free(&input);
+
+ update_metadata(output, ctx->target_peak);
+
+ av_log(ctx, AV_LOG_DEBUG, "Tone-mapping output: %s, %ux%u (%"PRId64").\n",
+ av_get_pix_fmt_name(output->format),
+ output->width, output->height, output->pts);
+#ifndef NDEBUG
+ {
+ uint32_t *ptr, *max_total_p, *avg_total_p, *frame_number_p;
+ float peak_detected, avg_detected;
+ unsigned map_size = (2 * DETECTION_FRAMES + 7) * sizeof(unsigned);
+ ptr = (void *)clEnqueueMapBuffer(ctx->command_queue, ctx->util_mem,
+ CL_TRUE, CL_MAP_READ, 0, map_size,
+ 0, NULL, NULL, &cle);
+ // For the layout of the util buffer, refer tonemap.cl
+ if (ptr) {
+ max_total_p = ptr + 2 * (DETECTION_FRAMES + 1) + 1;
+ avg_total_p = max_total_p + 1;
+ frame_number_p = avg_total_p + 2;
+ peak_detected = (float)*max_total_p / (REFERENCE_WHITE * (*frame_number_p));
+ avg_detected = (float)*avg_total_p / (REFERENCE_WHITE * (*frame_number_p));
+ av_log(ctx, AV_LOG_DEBUG, "peak %f, avg %f will be used for next frame\n",
+ peak_detected, avg_detected);
+ clEnqueueUnmapMemObject(ctx->command_queue, ctx->util_mem, ptr, 0,
+ NULL, NULL);
+ }
+ }
+#endif
+
+ return ff_filter_frame(outlink, output);
+
+fail:
+ clFinish(ctx->command_queue);
+ av_frame_free(&input);
+ av_frame_free(&output);
+ return err;
+}
+
+static av_cold void tonemap_opencl_uninit(AVFilterContext *avctx)
+{
+ TonemapOpenCLContext *ctx = avctx->priv;
+ cl_int cle;
+
+ if (ctx->util_mem)
+ clReleaseMemObject(ctx->util_mem);
+ if (ctx->kernel) {
+ cle = clReleaseKernel(ctx->kernel);
+ if (cle != CL_SUCCESS)
+ av_log(avctx, AV_LOG_ERROR, "Failed to release "
+ "kernel: %d.\n", cle);
+ }
+
+ if (ctx->command_queue) {
+ cle = clReleaseCommandQueue(ctx->command_queue);
+ if (cle != CL_SUCCESS)
+ av_log(avctx, AV_LOG_ERROR, "Failed to release "
+ "command queue: %d.\n", cle);
+ }
+
+ ff_opencl_filter_uninit(avctx);
+}
+
+#define OFFSET(x) offsetof(TonemapOpenCLContext, x)
+#define FLAGS (AV_OPT_FLAG_FILTERING_PARAM | AV_OPT_FLAG_VIDEO_PARAM)
+static const AVOption tonemap_opencl_options[] = {
+ { "tonemap", "tonemap algorithm selection", OFFSET(tonemap), AV_OPT_TYPE_INT, {.i64 = TONEMAP_NONE}, TONEMAP_NONE, TONEMAP_MAX - 1, FLAGS, "tonemap" },
+ { "none", 0, 0, AV_OPT_TYPE_CONST, {.i64 = TONEMAP_NONE}, 0, 0, FLAGS, "tonemap" },
+ { "linear", 0, 0, AV_OPT_TYPE_CONST, {.i64 = TONEMAP_LINEAR}, 0, 0, FLAGS, "tonemap" },
+ { "gamma", 0, 0, AV_OPT_TYPE_CONST, {.i64 = TONEMAP_GAMMA}, 0, 0, FLAGS, "tonemap" },
+ { "clip", 0, 0, AV_OPT_TYPE_CONST, {.i64 = TONEMAP_CLIP}, 0, 0, FLAGS, "tonemap" },
+ { "reinhard", 0, 0, AV_OPT_TYPE_CONST, {.i64 = TONEMAP_REINHARD}, 0, 0, FLAGS, "tonemap" },
+ { "hable", 0, 0, AV_OPT_TYPE_CONST, {.i64 = TONEMAP_HABLE}, 0, 0, FLAGS, "tonemap" },
+ { "mobius", 0, 0, AV_OPT_TYPE_CONST, {.i64 = TONEMAP_MOBIUS}, 0, 0, FLAGS, "tonemap" },
+ { "transfer", "set transfer characteristic", OFFSET(trc), AV_OPT_TYPE_INT, {.i64 = AVCOL_TRC_BT709}, -1, INT_MAX, FLAGS, "transfer" },
+ { "t", "set transfer characteristic", OFFSET(trc), AV_OPT_TYPE_INT, {.i64 = AVCOL_TRC_BT709}, -1, INT_MAX, FLAGS, "transfer" },
+ { "bt709", 0, 0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_TRC_BT709}, 0, 0, FLAGS, "transfer" },
+ { "bt2020", 0, 0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_TRC_BT2020_10}, 0, 0, FLAGS, "transfer" },
+ { "matrix", "set colorspace matrix", OFFSET(colorspace), AV_OPT_TYPE_INT, {.i64 = -1}, -1, INT_MAX, FLAGS, "matrix" },
+ { "m", "set colorspace matrix", OFFSET(colorspace), AV_OPT_TYPE_INT, {.i64 = -1}, -1, INT_MAX, FLAGS, "matrix" },
+ { "bt709", 0, 0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_BT709}, 0, 0, FLAGS, "matrix" },
+ { "bt2020", 0, 0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_BT2020_NCL}, 0, 0, FLAGS, "matrix" },
+ { "primaries", "set color primaries", OFFSET(primaries), AV_OPT_TYPE_INT, {.i64 = -1}, -1, INT_MAX, FLAGS, "primaries" },
+ { "p", "set color primaries", OFFSET(primaries), AV_OPT_TYPE_INT, {.i64 = -1}, -1, INT_MAX, FLAGS, "primaries" },
+ { "bt709", 0, 0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_PRI_BT709}, 0, 0, FLAGS, "primaries" },
+ { "bt2020", 0, 0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_PRI_BT2020}, 0, 0, FLAGS, "primaries" },
+ { "range", "set color range", OFFSET(range), AV_OPT_TYPE_INT, {.i64 = -1}, -1, INT_MAX, FLAGS, "range" },
+ { "r", "set color range", OFFSET(range), AV_OPT_TYPE_INT, {.i64 = -1}, -1, INT_MAX, FLAGS, "range" },
+ { "tv", 0, 0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_RANGE_MPEG}, 0, 0, FLAGS, "range" },
+ { "pc", 0, 0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_RANGE_JPEG}, 0, 0, FLAGS, "range" },
+ { "limited", 0, 0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_RANGE_MPEG}, 0, 0, FLAGS, "range" },
+ { "full", 0, 0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_RANGE_JPEG}, 0, 0, FLAGS, "range" },
+ { "format", "output pixel format", OFFSET(format), AV_OPT_TYPE_PIXEL_FMT, {.i64 = AV_PIX_FMT_NONE}, AV_PIX_FMT_NONE, INT_MAX, FLAGS, "fmt" },
+ { "peak", "signal peak override", OFFSET(peak), AV_OPT_TYPE_DOUBLE, {.dbl = 0}, 0, DBL_MAX, FLAGS },
+ { "param", "tonemap parameter", OFFSET(param), AV_OPT_TYPE_DOUBLE, {.dbl = NAN}, DBL_MIN, DBL_MAX, FLAGS },
+ { "desat", "desaturation parameter", OFFSET(desat_param), AV_OPT_TYPE_DOUBLE, {.dbl = 0.5}, 0, DBL_MAX, FLAGS },
+ { "threshold", "scene detection threshold", OFFSET(scene_threshold), AV_OPT_TYPE_DOUBLE, {.dbl = 0.2}, 0, DBL_MAX, FLAGS },
+ { NULL }
+};
+
+AVFILTER_DEFINE_CLASS(tonemap_opencl);
+
+static const AVFilterPad tonemap_opencl_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .filter_frame = &tonemap_opencl_filter_frame,
+ .config_props = &ff_opencl_filter_config_input,
+ },
+ { NULL }
+};
+
+static const AVFilterPad tonemap_opencl_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .config_props = &tonemap_opencl_config_output,
+ },
+ { NULL }
+};
+
+AVFilter ff_vf_tonemap_opencl = {
+ .name = "tonemap_opencl",
+ .description = NULL_IF_CONFIG_SMALL("perform HDR to SDR conversion with tonemapping"),
+ .priv_size = sizeof(TonemapOpenCLContext),
+ .priv_class = &tonemap_opencl_class,
+ .init = &ff_opencl_filter_init,
+ .uninit = &tonemap_opencl_uninit,
+ .query_formats = &ff_opencl_filter_query_formats,
+ .inputs = tonemap_opencl_inputs,
+ .outputs = tonemap_opencl_outputs,
+ .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE,
+};
diff --git a/chromium/third_party/ffmpeg/libavfilter/vf_unsharp_opencl.c b/chromium/third_party/ffmpeg/libavfilter/vf_unsharp_opencl.c
index 19c91857cb7..d76d1b1733d 100644
--- a/chromium/third_party/ffmpeg/libavfilter/vf_unsharp_opencl.c
+++ b/chromium/third_party/ffmpeg/libavfilter/vf_unsharp_opencl.c
@@ -76,12 +76,8 @@ static int unsharp_opencl_init(AVFilterContext *avctx)
ctx->command_queue = clCreateCommandQueue(ctx->ocf.hwctx->context,
ctx->ocf.hwctx->device_id,
0, &cle);
- if (!ctx->command_queue) {
- av_log(avctx, AV_LOG_ERROR, "Failed to create OpenCL "
- "command queue: %d.\n", cle);
- err = AVERROR(EIO);
- goto fail;
- }
+ CL_FAIL_ON_ERROR(AVERROR(EIO), "Failed to create OpenCL "
+ "command queue %d.\n", cle);
// Use global kernel if mask size will be too big for the local store..
ctx->global = (ctx->luma_size_x > 17.0f ||
@@ -92,11 +88,7 @@ static int unsharp_opencl_init(AVFilterContext *avctx)
ctx->kernel = clCreateKernel(ctx->ocf.program,
ctx->global ? "unsharp_global"
: "unsharp_local", &cle);
- if (!ctx->kernel) {
- av_log(avctx, AV_LOG_ERROR, "Failed to create kernel: %d.\n", cle);
- err = AVERROR(EIO);
- goto fail;
- }
+ CL_FAIL_ON_ERROR(AVERROR(EIO), "Failed to create kernel %d.\n", cle);
ctx->initialised = 1;
return 0;
@@ -176,12 +168,8 @@ static int unsharp_opencl_make_filter_params(AVFilterContext *avctx)
CL_MEM_COPY_HOST_PTR |
CL_MEM_HOST_NO_ACCESS,
matrix_bytes, matrix, &cle);
- if (!buffer) {
- av_log(avctx, AV_LOG_ERROR, "Failed to create matrix buffer: "
- "%d.\n", cle);
- err = AVERROR(EIO);
- goto fail;
- }
+ CL_FAIL_ON_ERROR(AVERROR(EIO), "Failed to create matrix buffer: "
+ "%d.\n", cle);
ctx->plane[p].matrix = buffer;
} else {
buffer = clCreateBuffer(ctx->ocf.hwctx->context,
@@ -190,12 +178,8 @@ static int unsharp_opencl_make_filter_params(AVFilterContext *avctx)
CL_MEM_HOST_NO_ACCESS,
sizeof(ctx->plane[p].blur_x),
ctx->plane[p].blur_x, &cle);
- if (!buffer) {
- av_log(avctx, AV_LOG_ERROR, "Failed to create x-coef buffer: "
- "%d.\n", cle);
- err = AVERROR(EIO);
- goto fail;
- }
+ CL_FAIL_ON_ERROR(AVERROR(EIO), "Failed to create x-coef buffer: "
+ "%d.\n", cle);
ctx->plane[p].coef_x = buffer;
buffer = clCreateBuffer(ctx->ocf.hwctx->context,
@@ -204,12 +188,8 @@ static int unsharp_opencl_make_filter_params(AVFilterContext *avctx)
CL_MEM_HOST_NO_ACCESS,
sizeof(ctx->plane[p].blur_y),
ctx->plane[p].blur_y, &cle);
- if (!buffer) {
- av_log(avctx, AV_LOG_ERROR, "Failed to create y-coef buffer: "
- "%d.\n", cle);
- err = AVERROR(EIO);
- goto fail;
- }
+ CL_FAIL_ON_ERROR(AVERROR(EIO), "Failed to create y-coef buffer: "
+ "%d.\n", cle);
ctx->plane[p].coef_y = buffer;
}
@@ -268,56 +248,17 @@ static int unsharp_opencl_filter_frame(AVFilterLink *inlink, AVFrame *input)
if (!dst)
break;
- cle = clSetKernelArg(ctx->kernel, 0, sizeof(cl_mem), &dst);
- if (cle != CL_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "Failed to set kernel "
- "destination image argument: %d.\n", cle);
- goto fail;
- }
- cle = clSetKernelArg(ctx->kernel, 1, sizeof(cl_mem), &src);
- if (cle != CL_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "Failed to set kernel "
- "source image argument: %d.\n", cle);
- goto fail;
- }
- cle = clSetKernelArg(ctx->kernel, 2, sizeof(cl_int), &ctx->plane[p].size_x);
- if (cle != CL_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "Failed to set kernel "
- "matrix size argument: %d.\n", cle);
- goto fail;
- }
- cle = clSetKernelArg(ctx->kernel, 3, sizeof(cl_int), &ctx->plane[p].size_y);
- if (cle != CL_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "Failed to set kernel "
- "matrix size argument: %d.\n", cle);
- goto fail;
- }
- cle = clSetKernelArg(ctx->kernel, 4, sizeof(cl_float), &ctx->plane[p].amount);
- if (cle != CL_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "Failed to set kernel "
- "amount argument: %d.\n", cle);
- goto fail;
- }
+ CL_SET_KERNEL_ARG(ctx->kernel, 0, cl_mem, &dst);
+ CL_SET_KERNEL_ARG(ctx->kernel, 1, cl_mem, &src);
+ CL_SET_KERNEL_ARG(ctx->kernel, 2, cl_int, &ctx->plane[p].size_x);
+ CL_SET_KERNEL_ARG(ctx->kernel, 3, cl_int, &ctx->plane[p].size_y);
+ CL_SET_KERNEL_ARG(ctx->kernel, 4, cl_float, &ctx->plane[p].amount);
+
if (ctx->global) {
- cle = clSetKernelArg(ctx->kernel, 5, sizeof(cl_mem), &ctx->plane[p].matrix);
- if (cle != CL_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "Failed to set kernel "
- "matrix argument: %d.\n", cle);
- goto fail;
- }
+ CL_SET_KERNEL_ARG(ctx->kernel, 5, cl_mem, &ctx->plane[p].matrix);
} else {
- cle = clSetKernelArg(ctx->kernel, 5, sizeof(cl_mem), &ctx->plane[p].coef_x);
- if (cle != CL_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "Failed to set kernel "
- "x-coef argument: %d.\n", cle);
- goto fail;
- }
- cle = clSetKernelArg(ctx->kernel, 6, sizeof(cl_mem), &ctx->plane[p].coef_y);
- if (cle != CL_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "Failed to set kernel "
- "y-coef argument: %d.\n", cle);
- goto fail;
- }
+ CL_SET_KERNEL_ARG(ctx->kernel, 5, cl_mem, &ctx->plane[p].coef_x);
+ CL_SET_KERNEL_ARG(ctx->kernel, 6, cl_mem, &ctx->plane[p].coef_y);
}
err = ff_opencl_filter_work_size_from_image(avctx, global_work, output, p,
@@ -335,21 +276,11 @@ static int unsharp_opencl_filter_frame(AVFilterLink *inlink, AVFrame *input)
cle = clEnqueueNDRangeKernel(ctx->command_queue, ctx->kernel, 2, NULL,
global_work, ctx->global ? NULL : local_work,
0, NULL, NULL);
- if (cle != CL_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "Failed to enqueue kernel: %d.\n",
- cle);
- err = AVERROR(EIO);
- goto fail;
- }
+ CL_FAIL_ON_ERROR(AVERROR(EIO), "Failed to enqueue kernel: %d.\n", cle);
}
cle = clFinish(ctx->command_queue);
- if (cle != CL_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "Failed to finish command queue: %d.\n",
- cle);
- err = AVERROR(EIO);
- goto fail;
- }
+ CL_FAIL_ON_ERROR(AVERROR(EIO), "Failed to finish command queue: %d.\n", cle);
err = av_frame_copy_props(output, input);
if (err < 0)
diff --git a/chromium/third_party/ffmpeg/libavfilter/vf_weave.c b/chromium/third_party/ffmpeg/libavfilter/vf_weave.c
index 037f5d1cf20..663d79f5115 100644
--- a/chromium/third_party/ffmpeg/libavfilter/vf_weave.c
+++ b/chromium/third_party/ffmpeg/libavfilter/vf_weave.c
@@ -84,6 +84,8 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
AVFilterLink *outlink = ctx->outputs[0];
AVFrame *out;
int i;
+ int weave;
+ int field1, field2;
if (!s->prev) {
s->prev = in;
@@ -98,26 +100,18 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
}
av_frame_copy_props(out, in);
+ weave = (s->double_weave && !(inlink->frame_count_out & 1));
+ field1 = weave ? s->first_field : (!s->first_field);
+ field2 = weave ? (!s->first_field) : s->first_field;
for (i = 0; i < s->nb_planes; i++) {
- if (s->double_weave && !(inlink->frame_count_out & 1)) {
- av_image_copy_plane(out->data[i] + out->linesize[i] * s->first_field,
- out->linesize[i] * 2,
- in->data[i], in->linesize[i],
- s->linesize[i], s->planeheight[i]);
- av_image_copy_plane(out->data[i] + out->linesize[i] * !s->first_field,
- out->linesize[i] * 2,
- s->prev->data[i], s->prev->linesize[i],
- s->linesize[i], s->planeheight[i]);
- } else {
- av_image_copy_plane(out->data[i] + out->linesize[i] * !s->first_field,
- out->linesize[i] * 2,
- in->data[i], in->linesize[i],
- s->linesize[i], s->planeheight[i]);
- av_image_copy_plane(out->data[i] + out->linesize[i] * s->first_field,
- out->linesize[i] * 2,
- s->prev->data[i], s->prev->linesize[i],
- s->linesize[i], s->planeheight[i]);
- }
+ av_image_copy_plane(out->data[i] + out->linesize[i] * field1,
+ out->linesize[i] * 2,
+ in->data[i], in->linesize[i],
+ s->linesize[i], s->planeheight[i]);
+ av_image_copy_plane(out->data[i] + out->linesize[i] * field2,
+ out->linesize[i] * 2,
+ s->prev->data[i], s->prev->linesize[i],
+ s->linesize[i], s->planeheight[i]);
}
out->pts = s->double_weave ? s->prev->pts : in->pts / 2;
diff --git a/chromium/third_party/ffmpeg/libavformat/Makefile b/chromium/third_party/ffmpeg/libavformat/Makefile
index 8fb075f06fe..f2f3aabdc29 100644
--- a/chromium/third_party/ffmpeg/libavformat/Makefile
+++ b/chromium/third_party/ffmpeg/libavformat/Makefile
@@ -302,7 +302,7 @@ OBJS-$(CONFIG_MM_DEMUXER) += mm.o
OBJS-$(CONFIG_MMF_DEMUXER) += mmf.o
OBJS-$(CONFIG_MMF_MUXER) += mmf.o rawenc.o
OBJS-$(CONFIG_MOV_DEMUXER) += mov.o mov_chan.o mov_esds.o replaygain.o
-OBJS-$(CONFIG_MOV_MUXER) += movenc.o avc.o hevc.o vpcc.o \
+OBJS-$(CONFIG_MOV_MUXER) += movenc.o av1.o avc.o hevc.o vpcc.o \
movenchint.o mov_chan.o rtp.o \
movenccenc.o rawutils.o
OBJS-$(CONFIG_MP2_MUXER) += rawenc.o
diff --git a/chromium/third_party/ffmpeg/libavformat/aadec.c b/chromium/third_party/ffmpeg/libavformat/aadec.c
index 8d39b1d9baa..d83f283ffe3 100644
--- a/chromium/third_party/ffmpeg/libavformat/aadec.c
+++ b/chromium/third_party/ffmpeg/libavformat/aadec.c
@@ -35,6 +35,9 @@
#define MAX_TOC_ENTRIES 16
#define MAX_DICTIONARY_ENTRIES 128
#define TEA_BLOCK_SIZE 8
+#define CHAPTER_HEADER_SIZE 8
+#define TIMEPREC 1000
+#define MP3_FRAME_SIZE 104
typedef struct AADemuxContext {
AVClass *class;
@@ -46,6 +49,9 @@ typedef struct AADemuxContext {
struct AVTEA *tea_ctx;
uint8_t file_key[16];
int64_t current_chapter_size;
+ int64_t content_start;
+ int64_t content_end;
+ int seek_offset;
} AADemuxContext;
static int get_second_size(char *codec_name)
@@ -69,7 +75,7 @@ static int aa_read_header(AVFormatContext *s)
uint32_t nkey, nval, toc_size, npairs, header_seed = 0, start;
char key[128], val[128], codec_name[64] = {0};
uint8_t output[24], dst[8], src[8];
- int64_t largest_size = -1, current_size = -1;
+ int64_t largest_size = -1, current_size = -1, chapter_pos;
struct toc_entry {
uint32_t offset;
uint32_t size;
@@ -172,19 +178,24 @@ static int aa_read_header(AVFormatContext *s)
st->codecpar->codec_id = AV_CODEC_ID_MP3;
st->codecpar->sample_rate = 22050;
st->need_parsing = AVSTREAM_PARSE_FULL_RAW;
- st->start_time = 0;
+ avpriv_set_pts_info(st, 64, 8, 32000 * TIMEPREC);
+ // encoded audio frame is MP3_FRAME_SIZE bytes (+1 with padding, unlikely)
} else if (!strcmp(codec_name, "acelp85")) {
st->codecpar->codec_id = AV_CODEC_ID_SIPR;
st->codecpar->block_align = 19;
st->codecpar->channels = 1;
st->codecpar->sample_rate = 8500;
+ st->codecpar->bit_rate = 8500;
st->need_parsing = AVSTREAM_PARSE_FULL_RAW;
+ avpriv_set_pts_info(st, 64, 8, 8500 * TIMEPREC);
} else if (!strcmp(codec_name, "acelp16")) {
st->codecpar->codec_id = AV_CODEC_ID_SIPR;
st->codecpar->block_align = 20;
st->codecpar->channels = 1;
st->codecpar->sample_rate = 16000;
+ st->codecpar->bit_rate = 16000;
st->need_parsing = AVSTREAM_PARSE_FULL_RAW;
+ avpriv_set_pts_info(st, 64, 8, 16000 * TIMEPREC);
}
/* determine, and jump to audio start offset */
@@ -197,7 +208,30 @@ static int aa_read_header(AVFormatContext *s)
}
start = TOC[largest_idx].offset;
avio_seek(pb, start, SEEK_SET);
+
+ // extract chapter positions. since all formats have constant bit rate, use it
+ // as time base in bytes/s, for easy stream position <-> timestamp conversion
+ st->start_time = 0;
+ c->content_start = start;
+ c->content_end = start + largest_size;
+
+ while ((chapter_pos = avio_tell(pb)) >= 0 && chapter_pos < c->content_end) {
+ int chapter_idx = s->nb_chapters;
+ uint32_t chapter_size = avio_rb32(pb);
+ if (chapter_size == 0) break;
+ chapter_pos -= start + CHAPTER_HEADER_SIZE * chapter_idx;
+ avio_skip(pb, 4 + chapter_size);
+ if (!avpriv_new_chapter(s, chapter_idx, st->time_base,
+ chapter_pos * TIMEPREC, (chapter_pos + chapter_size) * TIMEPREC, NULL))
+ return AVERROR(ENOMEM);
+ }
+
+ st->duration = (largest_size - CHAPTER_HEADER_SIZE * s->nb_chapters) * TIMEPREC;
+
+ ff_update_cur_dts(s, st, 0);
+ avio_seek(pb, start, SEEK_SET);
c->current_chapter_size = 0;
+ c->seek_offset = 0;
return 0;
}
@@ -213,6 +247,12 @@ static int aa_read_packet(AVFormatContext *s, AVPacket *pkt)
int written = 0;
int ret;
AADemuxContext *c = s->priv_data;
+ uint64_t pos = avio_tell(s->pb);
+
+ // are we at the end of the audio content?
+ if (pos >= c->content_end) {
+ return AVERROR_EOF;
+ }
// are we at the start of a chapter?
if (c->current_chapter_size == 0) {
@@ -223,6 +263,7 @@ static int aa_read_packet(AVFormatContext *s, AVPacket *pkt)
av_log(s, AV_LOG_DEBUG, "Chapter %d (%" PRId64 " bytes)\n", c->chapter_idx, c->current_chapter_size);
c->chapter_idx = c->chapter_idx + 1;
avio_skip(s->pb, 4); // data start offset
+ pos += 8;
c->current_codec_second_size = c->codec_second_size;
}
@@ -234,7 +275,9 @@ static int aa_read_packet(AVFormatContext *s, AVPacket *pkt)
// decrypt c->current_codec_second_size bytes
blocks = c->current_codec_second_size / TEA_BLOCK_SIZE;
for (i = 0; i < blocks; i++) {
- avio_read(s->pb, src, TEA_BLOCK_SIZE);
+ ret = avio_read(s->pb, src, TEA_BLOCK_SIZE);
+ if (ret != TEA_BLOCK_SIZE)
+ return (ret < 0) ? ret : AVERROR_EOF;
av_tea_init(c->tea_ctx, c->file_key, 16);
av_tea_crypt(c->tea_ctx, dst, src, 1, NULL, 1);
memcpy(buf + written, dst, TEA_BLOCK_SIZE);
@@ -242,7 +285,9 @@ static int aa_read_packet(AVFormatContext *s, AVPacket *pkt)
}
trailing_bytes = c->current_codec_second_size % TEA_BLOCK_SIZE;
if (trailing_bytes != 0) { // trailing bytes are left unencrypted!
- avio_read(s->pb, src, trailing_bytes);
+ ret = avio_read(s->pb, src, trailing_bytes);
+ if (ret != trailing_bytes)
+ return (ret < 0) ? ret : AVERROR_EOF;
memcpy(buf + written, src, trailing_bytes);
written = written + trailing_bytes;
}
@@ -252,14 +297,69 @@ static int aa_read_packet(AVFormatContext *s, AVPacket *pkt)
if (c->current_chapter_size <= 0)
c->current_chapter_size = 0;
- ret = av_new_packet(pkt, written);
+ if (c->seek_offset > written)
+ c->seek_offset = 0; // ignore wrong estimate
+
+ ret = av_new_packet(pkt, written - c->seek_offset);
if (ret < 0)
return ret;
- memcpy(pkt->data, buf, written);
+ memcpy(pkt->data, buf + c->seek_offset, written - c->seek_offset);
+ pkt->pos = pos;
+ c->seek_offset = 0;
return 0;
}
+static int aa_read_seek(AVFormatContext *s,
+ int stream_index, int64_t timestamp, int flags)
+{
+ AADemuxContext *c = s->priv_data;
+ AVChapter *ch;
+ int64_t chapter_pos, chapter_start, chapter_size;
+ int chapter_idx = 0;
+
+ // find chapter containing seek timestamp
+ if (timestamp < 0)
+ timestamp = 0;
+
+ while (chapter_idx < s->nb_chapters && timestamp >= s->chapters[chapter_idx]->end) {
+ ++chapter_idx;
+ }
+
+ if (chapter_idx >= s->nb_chapters) {
+ chapter_idx = s->nb_chapters - 1;
+ if (chapter_idx < 0) return -1; // there is no chapter.
+ timestamp = s->chapters[chapter_idx]->end;
+ }
+
+ ch = s->chapters[chapter_idx];
+
+ // sync by clamping timestamp to nearest valid block position in its chapter
+ chapter_size = ch->end / TIMEPREC - ch->start / TIMEPREC;
+ chapter_pos = av_rescale_rnd((timestamp - ch->start) / TIMEPREC,
+ 1, c->codec_second_size,
+ (flags & AVSEEK_FLAG_BACKWARD) ? AV_ROUND_DOWN : AV_ROUND_UP)
+ * c->codec_second_size;
+ if (chapter_pos >= chapter_size)
+ chapter_pos = chapter_size;
+ chapter_start = c->content_start + (ch->start / TIMEPREC) + CHAPTER_HEADER_SIZE * (1 + chapter_idx);
+
+ // reinit read state
+ avio_seek(s->pb, chapter_start + chapter_pos, SEEK_SET);
+ c->current_codec_second_size = c->codec_second_size;
+ c->current_chapter_size = chapter_size - chapter_pos;
+ c->chapter_idx = 1 + chapter_idx;
+
+ // for unaligned frames, estimate offset of first frame in block (assume no padding)
+ if (s->streams[0]->codecpar->codec_id == AV_CODEC_ID_MP3) {
+ c->seek_offset = (MP3_FRAME_SIZE - chapter_pos % MP3_FRAME_SIZE) % MP3_FRAME_SIZE;
+ }
+
+ ff_update_cur_dts(s, s->streams[0], ch->start + (chapter_pos + c->seek_offset) * TIMEPREC);
+
+ return 1;
+}
+
static int aa_probe(AVProbeData *p)
{
uint8_t *buf = p->buf;
@@ -305,6 +405,7 @@ AVInputFormat ff_aa_demuxer = {
.read_probe = aa_probe,
.read_header = aa_read_header,
.read_packet = aa_read_packet,
+ .read_seek = aa_read_seek,
.read_close = aa_read_close,
- .flags = AVFMT_GENERIC_INDEX,
+ .flags = AVFMT_NO_BYTE_SEEK | AVFMT_NOGENSEARCH,
};
diff --git a/chromium/third_party/ffmpeg/libavformat/amr.c b/chromium/third_party/ffmpeg/libavformat/amr.c
index f954803d461..de347058f3f 100644
--- a/chromium/third_party/ffmpeg/libavformat/amr.c
+++ b/chromium/third_party/ffmpeg/libavformat/amr.c
@@ -184,12 +184,11 @@ static int amrnb_probe(AVProbeData *p)
while (i < p->buf_size) {
mode = b[i] >> 3 & 0x0F;
if (mode < 9 && (b[i] & 0x4) == 0x4) {
- int last = mode;
+ int last = b[i];
int size = amrnb_packed_size[mode];
while (size--) {
if (b[++i] != last)
break;
- last = b[i];
}
if (size > 0) {
valid++;
@@ -201,7 +200,7 @@ static int amrnb_probe(AVProbeData *p)
i++;
}
}
- if (valid > 100 && valid > invalid)
+ if (valid > 100 && valid >> 4 > invalid)
return AVPROBE_SCORE_EXTENSION / 2 + 1;
return 0;
}
@@ -241,12 +240,11 @@ static int amrwb_probe(AVProbeData *p)
while (i < p->buf_size) {
mode = b[i] >> 3 & 0x0F;
if (mode < 10 && (b[i] & 0x4) == 0x4) {
- int last = mode;
+ int last = b[i];
int size = amrwb_packed_size[mode];
while (size--) {
if (b[++i] != last)
break;
- last = b[i];
}
if (size > 0) {
valid++;
@@ -258,8 +256,8 @@ static int amrwb_probe(AVProbeData *p)
i++;
}
}
- if (valid > 100 && valid > invalid)
- return AVPROBE_SCORE_EXTENSION / 2 - 1;
+ if (valid > 100 && valid >> 4 > invalid)
+ return AVPROBE_SCORE_EXTENSION / 2 + 1;
return 0;
}
diff --git a/chromium/third_party/ffmpeg/libavformat/apngdec.c b/chromium/third_party/ffmpeg/libavformat/apngdec.c
index ffff03710a0..f9a97e56813 100644
--- a/chromium/third_party/ffmpeg/libavformat/apngdec.c
+++ b/chromium/third_party/ffmpeg/libavformat/apngdec.c
@@ -44,7 +44,6 @@ typedef struct APNGDemuxContext {
int max_fps;
int default_fps;
- int64_t pkt_pts;
int pkt_duration;
int is_key_frame;
@@ -390,9 +389,8 @@ static int apng_read_packet(AVFormatContext *s, AVPacket *pkt)
if (ctx->is_key_frame)
pkt->flags |= AV_PKT_FLAG_KEY;
- pkt->pts = ctx->pkt_pts;
+ pkt->pts = pkt->dts = AV_NOPTS_VALUE;
pkt->duration = ctx->pkt_duration;
- ctx->pkt_pts += ctx->pkt_duration;
return ret;
case MKTAG('I', 'E', 'N', 'D'):
ctx->cur_loop++;
diff --git a/chromium/third_party/ffmpeg/libavformat/asfdec_o.c b/chromium/third_party/ffmpeg/libavformat/asfdec_o.c
index 5122e33c787..b4b2698368f 100644
--- a/chromium/third_party/ffmpeg/libavformat/asfdec_o.c
+++ b/chromium/third_party/ffmpeg/libavformat/asfdec_o.c
@@ -706,7 +706,8 @@ static int parse_video_info(AVIOContext *pb, AVStream *st)
st->codecpar->codec_id = ff_codec_get_id(ff_codec_bmp_tags, tag);
size_bmp = FFMAX(size_asf, size_bmp);
- if (size_bmp > BMP_HEADER_SIZE) {
+ if (size_bmp > BMP_HEADER_SIZE &&
+ size_bmp < INT_MAX - AV_INPUT_BUFFER_PADDING_SIZE) {
int ret;
st->codecpar->extradata_size = size_bmp - BMP_HEADER_SIZE;
if (!(st->codecpar->extradata = av_malloc(st->codecpar->extradata_size +
diff --git a/chromium/third_party/ffmpeg/libavformat/av1.c b/chromium/third_party/ffmpeg/libavformat/av1.c
new file mode 100644
index 00000000000..7db29c8d764
--- /dev/null
+++ b/chromium/third_party/ffmpeg/libavformat/av1.c
@@ -0,0 +1,108 @@
+/*
+ * AV1 helper functions for muxers
+ * Copyright (c) 2018 James Almer <jamrial@gmail.com>
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include "libavutil/mem.h"
+#include "libavcodec/av1.h"
+#include "libavcodec/av1_parse.h"
+#include "av1.h"
+#include "avio.h"
+
+int ff_av1_filter_obus(AVIOContext *pb, const uint8_t *buf, int size)
+{
+ const uint8_t *end = buf + size;
+ int64_t obu_size;
+ int start_pos, type, temporal_id, spatial_id;
+
+ size = 0;
+ while (buf < end) {
+ int ret = parse_obu_header(buf, end - buf, &obu_size, &start_pos,
+ &type, &temporal_id, &spatial_id);
+ if (ret < 0)
+ return ret;
+
+ obu_size += start_pos;
+ if (obu_size > INT_MAX)
+ return AVERROR_INVALIDDATA;
+
+ switch (type) {
+ case AV1_OBU_TEMPORAL_DELIMITER:
+ case AV1_OBU_REDUNDANT_FRAME_HEADER:
+ case AV1_OBU_PADDING:
+ break;
+ default:
+ avio_write(pb, buf, obu_size);
+ size += obu_size;
+ break;
+ }
+ buf += obu_size;
+ }
+
+ return size;
+}
+
+int ff_av1_filter_obus_buf(const uint8_t *buf, uint8_t **out, int *size)
+{
+ AVIOContext *pb;
+ int ret;
+
+ ret = avio_open_dyn_buf(&pb);
+ if (ret < 0)
+ return ret;
+
+ ret = ff_av1_filter_obus(pb, buf, *size);
+ if (ret < 0)
+ return ret;
+
+ av_freep(out);
+ *size = avio_close_dyn_buf(pb, out);
+
+ return ret;
+}
+
+int ff_isom_write_av1c(AVIOContext *pb, const uint8_t *buf, int size)
+{
+ int64_t obu_size;
+ int start_pos, type, temporal_id, spatial_id;
+
+ while (size > 0) {
+ int ret = parse_obu_header(buf, size, &obu_size, &start_pos,
+ &type, &temporal_id, &spatial_id);
+ if (ret < 0)
+ return ret;
+
+ obu_size += start_pos;
+ if (obu_size > INT_MAX)
+ return AVERROR_INVALIDDATA;
+
+ switch (type) {
+ case AV1_OBU_SEQUENCE_HEADER:
+ case AV1_OBU_METADATA:
+ avio_write(pb, buf, obu_size);
+ break;
+ default:
+ break;
+ }
+ size -= obu_size;
+ buf += obu_size;
+ }
+
+ return 0;
+}
diff --git a/chromium/third_party/ffmpeg/libavformat/av1.h b/chromium/third_party/ffmpeg/libavformat/av1.h
new file mode 100644
index 00000000000..9f2a71f3535
--- /dev/null
+++ b/chromium/third_party/ffmpeg/libavformat/av1.h
@@ -0,0 +1,70 @@
+/*
+ * AV1 helper functions for muxers
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef AVFORMAT_AV1_H
+#define AVFORMAT_AV1_H
+
+#include <stdint.h>
+
+#include "avio.h"
+
+/**
+ * Filter out AV1 OBUs not meant to be present in ISOBMFF sample data and write
+ * the resulting bitstream to the provided AVIOContext.
+ *
+ * @param pb pointer to the AVIOContext where the filtered bitstream shall be
+ * written
+ * @param buf input data buffer
+ * @param size size of the input data buffer
+ *
+ * @return the amount of bytes written in case of success, a negative AVERROR
+ * code in case of failure
+ */
+int ff_av1_filter_obus(AVIOContext *pb, const uint8_t *buf, int size);
+
+/**
+ * Filter out AV1 OBUs not meant to be present in ISOBMFF sample data and write
+ * the resulting bitstream to a newly allocated data buffer.
+ *
+ * @param pb pointer to the AVIOContext where the filtered bitstream shall be
+ * written
+ * @param buf input data buffer
+ * @param out pointer to pointer that will hold the allocated data buffer
+ * @param size size of the input data buffer. The size of the resulting output
+ data buffer will be written here
+ *
+ * @return the amount of bytes written in case of success, a negative AVERROR
+ * code in case of failure. On failure, out and size are unchanged
+ */
+int ff_av1_filter_obus_buf(const uint8_t *buf, uint8_t **out, int *size);
+
+/**
+ * Writes AV1 extradata (Sequence Header and Metadata OBUs) to the provided
+ * AVIOContext.
+ *
+ * @param pb pointer to the AVIOContext where the hvcC shall be written
+ * @param buf input data buffer
+ * @param size size in bytes of the input data buffer
+ *
+ * @return >= 0 in case of success, a negative AVERROR code in case of failure
+ */
+int ff_isom_write_av1c(AVIOContext *pb, const uint8_t *buf, int size);
+
+#endif /* AVFORMAT_AV1_H */
diff --git a/chromium/third_party/ffmpeg/libavformat/avformat.h b/chromium/third_party/ffmpeg/libavformat/avformat.h
index ade918f99ce..fdaffa5bf41 100644
--- a/chromium/third_party/ffmpeg/libavformat/avformat.h
+++ b/chromium/third_party/ffmpeg/libavformat/avformat.h
@@ -1483,7 +1483,9 @@ typedef struct AVFormatContext {
* This flag is mainly intended for testing.
*/
#define AVFMT_FLAG_BITEXACT 0x0400
-#define AVFMT_FLAG_MP4A_LATM 0x8000 ///< Enable RTP MP4A-LATM payload
+#if FF_API_LAVF_MP4A_LATM
+#define AVFMT_FLAG_MP4A_LATM 0x8000 ///< Deprecated, does nothing.
+#endif
#define AVFMT_FLAG_SORT_DTS 0x10000 ///< try to interleave outputted packets by dts (using this flag can slow demuxing down)
#define AVFMT_FLAG_PRIV_OPT 0x20000 ///< Enable use of private options by delaying codec open (this could be made default once all code is converted)
#if FF_API_LAVF_KEEPSIDE_FLAG
diff --git a/chromium/third_party/ffmpeg/libavformat/aviobuf.c b/chromium/third_party/ffmpeg/libavformat/aviobuf.c
index e752d0e1a65..5a33f82950c 100644
--- a/chromium/third_party/ffmpeg/libavformat/aviobuf.c
+++ b/chromium/third_party/ffmpeg/libavformat/aviobuf.c
@@ -1202,9 +1202,9 @@ int avio_close(AVIOContext *s)
av_freep(&s->opaque);
av_freep(&s->buffer);
if (s->write_flag)
- av_log(s, AV_LOG_DEBUG, "Statistics: %d seeks, %d writeouts\n", s->seek_count, s->writeout_count);
+ av_log(s, AV_LOG_VERBOSE, "Statistics: %d seeks, %d writeouts\n", s->seek_count, s->writeout_count);
else
- av_log(s, AV_LOG_DEBUG, "Statistics: %"PRId64" bytes read, %d seeks\n", s->bytes_read, s->seek_count);
+ av_log(s, AV_LOG_VERBOSE, "Statistics: %"PRId64" bytes read, %d seeks\n", s->bytes_read, s->seek_count);
av_opt_free(s);
avio_context_free(&s);
diff --git a/chromium/third_party/ffmpeg/libavformat/bink.c b/chromium/third_party/ffmpeg/libavformat/bink.c
index 8a05082fcd8..567a38cd73d 100644
--- a/chromium/third_party/ffmpeg/libavformat/bink.c
+++ b/chromium/third_party/ffmpeg/libavformat/bink.c
@@ -92,6 +92,8 @@ static int read_header(AVFormatContext *s)
uint16_t flags;
int keyframe;
int ret;
+ uint32_t signature;
+ uint8_t revision;
vst = avformat_new_stream(s, NULL);
if (!vst)
@@ -160,14 +162,14 @@ static int read_header(AVFormatContext *s)
return AVERROR(EIO);
}
- if (bink->num_audio_tracks) {
- uint32_t signature = (vst->codecpar->codec_tag & 0xFFFFFF);
- uint8_t revision = ((vst->codecpar->codec_tag >> 24) % 0xFF);
+ signature = (vst->codecpar->codec_tag & 0xFFFFFF);
+ revision = ((vst->codecpar->codec_tag >> 24) % 0xFF);
- if ((signature == AV_RL32("BIK") && (revision == 0x6b)) || /* k */
- (signature == AV_RL32("KB2") && (revision == 0x69 || revision == 0x6a || revision == 0x6b))) /* i,j,k */
- avio_skip(pb, 4); /* unknown new field */
+ if ((signature == AV_RL32("BIK") && (revision == 'k')) ||
+ (signature == AV_RL32("KB2") && (revision == 'i' || revision == 'j' || revision == 'k')))
+ avio_skip(pb, 4); /* unknown new field */
+ if (bink->num_audio_tracks) {
avio_skip(pb, 4 * bink->num_audio_tracks); /* max decoded size */
for (i = 0; i < bink->num_audio_tracks; i++) {
diff --git a/chromium/third_party/ffmpeg/libavformat/hlsenc.c b/chromium/third_party/ffmpeg/libavformat/hlsenc.c
index 2268f898b08..b5644f05c44 100644
--- a/chromium/third_party/ffmpeg/libavformat/hlsenc.c
+++ b/chromium/third_party/ffmpeg/libavformat/hlsenc.c
@@ -2178,7 +2178,7 @@ static int hls_write_packet(AVFormatContext *s, AVPacket *pkt)
if (vs->sequence - vs->nb_entries > hls->start_sequence && hls->init_time > 0) {
/* reset end_pts, hls->recording_time at end of the init hls list */
int init_list_dur = hls->init_time * vs->nb_entries * AV_TIME_BASE;
- int after_init_list_dur = (vs->sequence - vs->nb_entries ) * hls->time * AV_TIME_BASE;
+ int after_init_list_dur = (vs->sequence - hls->start_sequence - vs->nb_entries ) * (hls->time * AV_TIME_BASE);
hls->recording_time = hls->time * AV_TIME_BASE;
end_pts = init_list_dur + after_init_list_dur ;
}
diff --git a/chromium/third_party/ffmpeg/libavformat/icecast.c b/chromium/third_party/ffmpeg/libavformat/icecast.c
index 02e3e387886..c93b06b553a 100644
--- a/chromium/third_party/ffmpeg/libavformat/icecast.c
+++ b/chromium/third_party/ffmpeg/libavformat/icecast.c
@@ -96,7 +96,7 @@ static int icecast_open(URLContext *h, const char *uri, int flags)
if (flags & AVIO_FLAG_READ)
return AVERROR(ENOSYS);
- av_bprint_init(&bp, 0, 1);
+ av_bprint_init(&bp, 0, AV_BPRINT_SIZE_AUTOMATIC);
// Build header strings
cat_header(&bp, "Ice-Name", s->name);
diff --git a/chromium/third_party/ffmpeg/libavformat/isom.c b/chromium/third_party/ffmpeg/libavformat/isom.c
index 2792371c250..ce66d1bcd41 100644
--- a/chromium/third_party/ffmpeg/libavformat/isom.c
+++ b/chromium/third_party/ffmpeg/libavformat/isom.c
@@ -188,6 +188,7 @@ const AVCodecTag ff_codec_movvideo_tags[] = {
{ AV_CODEC_ID_VP8, MKTAG('v', 'p', '0', '8') }, /* VP8 */
{ AV_CODEC_ID_VP9, MKTAG('v', 'p', '0', '9') }, /* VP9 */
+ { AV_CODEC_ID_AV1, MKTAG('a', 'v', '0', '1') }, /* AV1 */
{ AV_CODEC_ID_MPEG1VIDEO, MKTAG('m', '1', 'v', ' ') },
{ AV_CODEC_ID_MPEG1VIDEO, MKTAG('m', '1', 'v', '1') }, /* Apple MPEG-1 Camcorder */
diff --git a/chromium/third_party/ffmpeg/libavformat/mms.c b/chromium/third_party/ffmpeg/libavformat/mms.c
index 17fa76a8d44..768fda65254 100644
--- a/chromium/third_party/ffmpeg/libavformat/mms.c
+++ b/chromium/third_party/ffmpeg/libavformat/mms.c
@@ -94,24 +94,26 @@ int ff_mms_asf_header_parser(MMSContext *mms)
}
}
} else if (!memcmp(p, ff_asf_stream_header, sizeof(ff_asf_guid))) {
- flags = AV_RL16(p + sizeof(ff_asf_guid)*3 + 24);
- stream_id = flags & 0x7F;
- //The second condition is for checking CS_PKT_STREAM_ID_REQUEST packet size,
- //we can calculate the packet size by stream_num.
- //Please see function send_stream_selection_request().
- if (mms->stream_num < MMS_MAX_STREAMS &&
- 46 + mms->stream_num * 6 < sizeof(mms->out_buffer)) {
- mms->streams = av_fast_realloc(mms->streams,
- &mms->nb_streams_allocated,
- (mms->stream_num + 1) * sizeof(MMSStream));
- if (!mms->streams)
- return AVERROR(ENOMEM);
- mms->streams[mms->stream_num].id = stream_id;
- mms->stream_num++;
- } else {
- av_log(NULL, AV_LOG_ERROR,
- "Corrupt stream (too many A/V streams)\n");
- return AVERROR_INVALIDDATA;
+ if (end - p >= (sizeof(ff_asf_guid) * 3 + 26)) {
+ flags = AV_RL16(p + sizeof(ff_asf_guid)*3 + 24);
+ stream_id = flags & 0x7F;
+ //The second condition is for checking CS_PKT_STREAM_ID_REQUEST packet size,
+ //we can calculate the packet size by stream_num.
+ //Please see function send_stream_selection_request().
+ if (mms->stream_num < MMS_MAX_STREAMS &&
+ 46 + mms->stream_num * 6 < sizeof(mms->out_buffer)) {
+ mms->streams = av_fast_realloc(mms->streams,
+ &mms->nb_streams_allocated,
+ (mms->stream_num + 1) * sizeof(MMSStream));
+ if (!mms->streams)
+ return AVERROR(ENOMEM);
+ mms->streams[mms->stream_num].id = stream_id;
+ mms->stream_num++;
+ } else {
+ av_log(NULL, AV_LOG_ERROR,
+ "Corrupt stream (too many A/V streams)\n");
+ return AVERROR_INVALIDDATA;
+ }
}
} else if (!memcmp(p, ff_asf_ext_stream_header, sizeof(ff_asf_guid))) {
if (end - p >= 88) {
@@ -143,6 +145,12 @@ int ff_mms_asf_header_parser(MMSContext *mms)
}
} else if (!memcmp(p, ff_asf_head1_guid, sizeof(ff_asf_guid))) {
chunksize = 46; // see references [2] section 3.4. This should be set 46.
+ if (chunksize > end - p) {
+ av_log(NULL, AV_LOG_ERROR,
+ "Corrupt stream (header chunksize %"PRId64" is invalid)\n",
+ chunksize);
+ return AVERROR_INVALIDDATA;
+ }
}
p += chunksize;
}
diff --git a/chromium/third_party/ffmpeg/libavformat/mov.c b/chromium/third_party/ffmpeg/libavformat/mov.c
index db2c6698024..2541bf54e28 100644
--- a/chromium/third_party/ffmpeg/libavformat/mov.c
+++ b/chromium/third_party/ffmpeg/libavformat/mov.c
@@ -765,7 +765,8 @@ static int mov_read_hdlr(MOVContext *c, AVIOContext *pb, MOVAtom atom)
title_str[title_size] = 0;
if (title_str[0]) {
int off = (!c->isom && title_str[0] == title_size - 1);
- av_dict_set(&st->metadata, "handler_name", title_str + off, 0);
+ // flag added so as to not set stream handler name if already set from mdia->hdlr
+ av_dict_set(&st->metadata, "handler_name", title_str + off, AV_DICT_DONT_OVERWRITE);
}
av_freep(&title_str);
}
@@ -2867,7 +2868,8 @@ static int mov_read_stsz(MOVContext *c, AVIOContext *pb, MOVAtom atom)
if (ret < 0) {
av_freep(&sc->sample_sizes);
av_free(buf);
- return ret;
+ av_log(c->fc, AV_LOG_WARNING, "STSZ atom truncated\n");
+ return 0;
}
init_get_bits(&gb, buf, 8*num_bytes);
@@ -3326,22 +3328,21 @@ static void mov_estimate_video_delay(MOVContext *c, AVStream* st) {
int ctts_sample = 0;
int64_t pts_buf[MAX_REORDER_DELAY + 1]; // Circular buffer to sort pts.
int buf_start = 0;
- int buf_size = 0;
int j, r, num_swaps;
+ for (j = 0; j < MAX_REORDER_DELAY + 1; j++)
+ pts_buf[j] = INT64_MIN;
+
if (st->codecpar->video_delay <= 0 && msc->ctts_data &&
st->codecpar->codec_id == AV_CODEC_ID_H264) {
st->codecpar->video_delay = 0;
for(ind = 0; ind < st->nb_index_entries && ctts_ind < msc->ctts_count; ++ind) {
- if (buf_size == (MAX_REORDER_DELAY + 1)) {
- // If circular buffer is full, then move the first element forward.
- buf_start = (buf_start + 1) % buf_size;
- } else {
- ++buf_size;
- }
-
// Point j to the last elem of the buffer and insert the current pts there.
- j = (buf_start + buf_size - 1) % buf_size;
+ j = buf_start;
+ buf_start = (buf_start + 1);
+ if (buf_start == MAX_REORDER_DELAY + 1)
+ buf_start = 0;
+
pts_buf[j] = st->index_entries[ind].timestamp + msc->ctts_data[ctts_ind].duration;
// The timestamps that are already in the sorted buffer, and are greater than the
@@ -3352,10 +3353,13 @@ static void mov_estimate_video_delay(MOVContext *c, AVStream* st) {
// go through, to keep this buffer in sorted order.
num_swaps = 0;
while (j != buf_start) {
- r = (j - 1 + buf_size) % buf_size;
+ r = j - 1;
+ if (r < 0) r = MAX_REORDER_DELAY;
if (pts_buf[j] < pts_buf[r]) {
FFSWAP(int64_t, pts_buf[j], pts_buf[r]);
++num_swaps;
+ } else {
+ break;
}
j = r;
}
@@ -5211,6 +5215,36 @@ static int mov_read_tmcd(MOVContext *c, AVIOContext *pb, MOVAtom atom)
return 0;
}
+static int mov_read_av1c(MOVContext *c, AVIOContext *pb, MOVAtom atom)
+{
+ AVStream *st;
+ int ret, version;
+
+ if (c->fc->nb_streams < 1)
+ return 0;
+ st = c->fc->streams[c->fc->nb_streams - 1];
+
+ if (atom.size < 5) {
+ av_log(c->fc, AV_LOG_ERROR, "Empty AV1 Codec Configuration Box\n");
+ return AVERROR_INVALIDDATA;
+ }
+
+ version = avio_r8(pb);
+ if (version != 0) {
+ av_log(c->fc, AV_LOG_WARNING, "Unknown AV1 Codec Configuration Box version %d\n", version);
+ return 0;
+ }
+ avio_skip(pb, 3); /* flags */
+
+ avio_skip(pb, 1); /* reserved, initial_presentation_delay_present, initial_presentation_delay_minus_one */
+
+ ret = ff_get_extradata(c->fc, st->codecpar, pb, atom.size - 5);
+ if (ret < 0)
+ return ret;
+
+ return 0;
+}
+
static int mov_read_vpcc(MOVContext *c, AVIOContext *pb, MOVAtom atom)
{
AVStream *st;
@@ -5841,6 +5875,9 @@ static int get_current_encryption_info(MOVContext *c, MOVEncryptionIndex **encry
*sc = st->priv_data;
if (!frag_stream_info->encryption_index) {
+ // If this stream isn't encrypted, don't create the index.
+ if (!(*sc)->cenc.default_encrypted_sample)
+ return 0;
frag_stream_info->encryption_index = av_mallocz(sizeof(*frag_stream_info->encryption_index));
if (!frag_stream_info->encryption_index)
return AVERROR(ENOMEM);
@@ -5856,6 +5893,9 @@ static int get_current_encryption_info(MOVContext *c, MOVEncryptionIndex **encry
*sc = st->priv_data;
if (!(*sc)->cenc.encryption_index) {
+ // If this stream isn't encrypted, don't create the index.
+ if (!(*sc)->cenc.default_encrypted_sample)
+ return 0;
(*sc)->cenc.encryption_index = av_mallocz(sizeof(*frag_stream_info->encryption_index));
if (!(*sc)->cenc.encryption_index)
return AVERROR(ENOMEM);
@@ -6227,6 +6267,114 @@ static int mov_read_saio(MOVContext *c, AVIOContext *pb, MOVAtom atom)
return 0;
}
+static int mov_read_pssh(MOVContext *c, AVIOContext *pb, MOVAtom atom)
+{
+ AVEncryptionInitInfo *info, *old_init_info;
+ uint8_t **key_ids;
+ AVStream *st;
+ uint8_t *side_data, *extra_data, *old_side_data;
+ size_t side_data_size;
+ int ret = 0, old_side_data_size;
+ unsigned int version, kid_count, extra_data_size, alloc_size = 0;
+
+ if (c->fc->nb_streams < 1)
+ return 0;
+ st = c->fc->streams[c->fc->nb_streams-1];
+
+ version = avio_r8(pb); /* version */
+ avio_rb24(pb); /* flags */
+
+ info = av_encryption_init_info_alloc(/* system_id_size */ 16, /* num_key_ids */ 0,
+ /* key_id_size */ 16, /* data_size */ 0);
+ if (!info)
+ return AVERROR(ENOMEM);
+
+ if (avio_read(pb, info->system_id, 16) != 16) {
+ av_log(c->fc, AV_LOG_ERROR, "Failed to read the system id\n");
+ ret = AVERROR_INVALIDDATA;
+ goto finish;
+ }
+
+ if (version > 0) {
+ kid_count = avio_rb32(pb);
+ if (kid_count >= INT_MAX / sizeof(*key_ids))
+ return AVERROR(ENOMEM);
+
+ for (unsigned int i = 0; i < kid_count && !pb->eof_reached; i++) {
+ unsigned int min_kid_count = FFMIN(FFMAX(i + 1, 1024), kid_count);
+ key_ids = av_fast_realloc(info->key_ids, &alloc_size,
+ min_kid_count * sizeof(*key_ids));
+ if (!key_ids) {
+ ret = AVERROR(ENOMEM);
+ goto finish;
+ }
+ info->key_ids = key_ids;
+
+ info->key_ids[i] = av_mallocz(16);
+ if (!info->key_ids[i]) {
+ ret = AVERROR(ENOMEM);
+ goto finish;
+ }
+ info->num_key_ids = i + 1;
+
+ if (avio_read(pb, info->key_ids[i], 16) != 16) {
+ av_log(c->fc, AV_LOG_ERROR, "Failed to read the key id\n");
+ ret = AVERROR_INVALIDDATA;
+ goto finish;
+ }
+ }
+
+ if (pb->eof_reached) {
+ av_log(c->fc, AV_LOG_ERROR, "Hit EOF while reading pssh\n");
+ ret = AVERROR_INVALIDDATA;
+ goto finish;
+ }
+ }
+
+ extra_data_size = avio_rb32(pb);
+ ret = mov_try_read_block(pb, extra_data_size, &extra_data);
+ if (ret < 0)
+ goto finish;
+
+ av_freep(&info->data); // malloc(0) may still allocate something.
+ info->data = extra_data;
+ info->data_size = extra_data_size;
+
+ // If there is existing initialization data, append to the list.
+ old_side_data = av_stream_get_side_data(st, AV_PKT_DATA_ENCRYPTION_INIT_INFO, &old_side_data_size);
+ if (old_side_data) {
+ old_init_info = av_encryption_init_info_get_side_data(old_side_data, old_side_data_size);
+ if (old_init_info) {
+ // Append to the end of the list.
+ for (AVEncryptionInitInfo *cur = old_init_info;; cur = cur->next) {
+ if (!cur->next) {
+ cur->next = info;
+ break;
+ }
+ }
+ info = old_init_info;
+ } else {
+ // Assume existing side-data will be valid, so the only error we could get is OOM.
+ ret = AVERROR(ENOMEM);
+ goto finish;
+ }
+ }
+
+ side_data = av_encryption_init_info_add_side_data(info, &side_data_size);
+ if (!side_data) {
+ ret = AVERROR(ENOMEM);
+ goto finish;
+ }
+ ret = av_stream_add_side_data(st, AV_PKT_DATA_ENCRYPTION_INIT_INFO,
+ side_data, side_data_size);
+ if (ret < 0)
+ av_free(side_data);
+
+finish:
+ av_encryption_init_info_free(info);
+ return ret;
+}
+
static int mov_read_schm(MOVContext *c, AVIOContext *pb, MOVAtom atom)
{
AVStream *st;
@@ -6427,7 +6575,7 @@ static int cenc_filter(MOVContext *mov, MOVStreamContext *sc, AVPacket *pkt, int
MOVFragmentStreamInfo *frag_stream_info;
MOVEncryptionIndex *encryption_index;
AVEncryptionInfo *encrypted_sample;
- int encrypted_index;
+ int encrypted_index, ret;
frag_stream_info = get_current_frag_stream_info(&mov->frag_index);
encrypted_index = current_index;
@@ -6471,6 +6619,15 @@ static int cenc_filter(MOVContext *mov, MOVStreamContext *sc, AVPacket *pkt, int
if (mov->decryption_key) {
return cenc_decrypt(mov, sc, encrypted_sample, pkt->data, pkt->size);
+ } else {
+ size_t size;
+ uint8_t *side_data = av_encryption_info_add_side_data(encrypted_sample, &size);
+ if (!side_data)
+ return AVERROR(ENOMEM);
+ ret = av_packet_add_side_data(pkt, AV_PKT_DATA_ENCRYPTION_INFO, side_data, size);
+ if (ret < 0)
+ av_free(side_data);
+ return ret;
}
}
@@ -6482,7 +6639,7 @@ static int mov_read_dops(MOVContext *c, AVIOContext *pb, MOVAtom atom)
const int OPUS_SEEK_PREROLL_MS = 80;
AVStream *st;
size_t size;
- int16_t pre_skip;
+ uint16_t pre_skip;
if (c->fc->nb_streams < 1)
return 0;
@@ -6531,6 +6688,7 @@ static const MOVParseTableEntry mov_default_parse_table[] = {
{ MKTAG('A','A','L','P'), mov_read_avid },
{ MKTAG('A','R','E','S'), mov_read_ares },
{ MKTAG('a','v','s','s'), mov_read_avss },
+{ MKTAG('a','v','1','C'), mov_read_av1c },
{ MKTAG('c','h','p','l'), mov_read_chpl },
{ MKTAG('c','o','6','4'), mov_read_stco },
{ MKTAG('c','o','l','r'), mov_read_colr },
@@ -6604,6 +6762,7 @@ static const MOVParseTableEntry mov_default_parse_table[] = {
{ MKTAG('s','e','n','c'), mov_read_senc },
{ MKTAG('s','a','i','z'), mov_read_saiz },
{ MKTAG('s','a','i','o'), mov_read_saio },
+{ MKTAG('p','s','s','h'), mov_read_pssh },
{ MKTAG('s','c','h','m'), mov_read_schm },
{ MKTAG('s','c','h','i'), mov_read_default },
{ MKTAG('t','e','n','c'), mov_read_tenc },
@@ -7616,7 +7775,9 @@ static int mov_read_packet(AVFormatContext *s, AVPacket *pkt)
} else {
int64_t next_dts = (sc->current_sample < st->nb_index_entries) ?
st->index_entries[sc->current_sample].timestamp : st->duration;
- pkt->duration = next_dts - pkt->dts;
+
+ if (next_dts >= pkt->dts)
+ pkt->duration = next_dts - pkt->dts;
pkt->pts = pkt->dts;
}
if (st->discard == AVDISCARD_ALL)
diff --git a/chromium/third_party/ffmpeg/libavformat/movenc.c b/chromium/third_party/ffmpeg/libavformat/movenc.c
index 7e616e866fb..d530f40cab3 100644
--- a/chromium/third_party/ffmpeg/libavformat/movenc.c
+++ b/chromium/third_party/ffmpeg/libavformat/movenc.c
@@ -30,6 +30,7 @@
#include "riff.h"
#include "avio.h"
#include "isom.h"
+#include "av1.h"
#include "avc.h"
#include "libavcodec/ac3_parser_internal.h"
#include "libavcodec/dnxhddata.h"
@@ -101,6 +102,7 @@ static const AVOption options[] = {
{ "write_prft", "Write producer reference time box with specified time source", offsetof(MOVMuxContext, write_prft), AV_OPT_TYPE_INT, {.i64 = MOV_PRFT_NONE}, 0, MOV_PRFT_NB-1, AV_OPT_FLAG_ENCODING_PARAM, "prft"},
{ "wallclock", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = MOV_PRFT_SRC_WALLCLOCK}, 0, 0, AV_OPT_FLAG_ENCODING_PARAM, "prft"},
{ "pts", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = MOV_PRFT_SRC_PTS}, 0, 0, AV_OPT_FLAG_ENCODING_PARAM, "prft"},
+ { "empty_hdlr_name", "write zero-length name string in hdlr atoms within mdia and minf atoms", offsetof(MOVMuxContext, empty_hdlr_name), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, AV_OPT_FLAG_ENCODING_PARAM},
{ NULL },
};
@@ -143,10 +145,17 @@ static int co64_required(const MOVTrack *track)
return 0;
}
+static int is_cover_image(const AVStream *st)
+{
+ /* Eg. AV_DISPOSITION_ATTACHED_PIC | AV_DISPOSITION_TIMED_THUMBNAILS
+ * is encoded as sparse video track */
+ return st && st->disposition == AV_DISPOSITION_ATTACHED_PIC;
+}
+
static int rtp_hinting_needed(const AVStream *st)
{
/* Add hint tracks for each real audio and video stream */
- if (st->disposition & AV_DISPOSITION_ATTACHED_PIC)
+ if (is_cover_image(st))
return 0;
return st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO ||
st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO;
@@ -393,7 +402,7 @@ static int handle_eac3(MOVMuxContext *mov, AVPacket *pkt, MOVTrack *track)
if (avpriv_ac3_parse_header(&hdr, pkt->data, pkt->size) < 0) {
/* drop the packets until we see a good one */
if (!track->entry) {
- av_log(mov, AV_LOG_WARNING, "Dropping invalid packet from start of the stream\n");
+ av_log(mov->fc, AV_LOG_WARNING, "Dropping invalid packet from start of the stream\n");
ret = 0;
} else
ret = AVERROR_INVALIDDATA;
@@ -421,7 +430,7 @@ static int handle_eac3(MOVMuxContext *mov, AVPacket *pkt, MOVTrack *track)
if (hdr->substreamid == info->num_ind_sub + 1) {
//info->num_ind_sub++;
- avpriv_request_sample(track->par, "Multiple independent substreams");
+ avpriv_request_sample(mov->fc, "Multiple independent substreams");
ret = AVERROR_PATCHWELCOME;
goto end;
} else if (hdr->substreamid < info->num_ind_sub ||
@@ -429,6 +438,12 @@ static int handle_eac3(MOVMuxContext *mov, AVPacket *pkt, MOVTrack *track)
info->ec3_done = 1;
goto concatenate;
}
+ } else {
+ if (hdr->substreamid != 0) {
+ avpriv_request_sample(mov->fc, "Multiple non EAC3 independent substreams");
+ ret = AVERROR_PATCHWELCOME;
+ goto end;
+ }
}
/* fill the info needed for the "dec3" atom */
@@ -1008,7 +1023,7 @@ static int mov_write_audio_tag(AVFormatContext *s, AVIOContext *pb, MOVMuxContex
uint32_t tag = track->tag;
if (track->mode == MODE_MOV) {
- if (track->timescale > UINT16_MAX) {
+ if (track->timescale > UINT16_MAX || !track->par->channels) {
if (mov_get_lpcm_flags(track->par->codec_id))
tag = AV_RL32("lpcm");
version = 2;
@@ -1149,6 +1164,19 @@ static int mov_write_d263_tag(AVIOContext *pb)
return 0xf;
}
+static int mov_write_av1c_tag(AVIOContext *pb, MOVTrack *track)
+{
+ int64_t pos = avio_tell(pb);
+
+ avio_wb32(pb, 0);
+ ffio_wfourcc(pb, "av1C");
+ avio_w8(pb, 0); /* version */
+ avio_wb24(pb, 0); /* flags */
+ avio_w8(pb, 0); /* reserved (3), initial_presentation_delay_present (1), initial_presentation_delay_minus_one/reserved (4) */
+ ff_isom_write_av1c(pb, track->vos_data, track->vos_len);
+ return update_size(pb, pos);
+}
+
static int mov_write_avcc_tag(AVIOContext *pb, MOVTrack *track)
{
int64_t pos = avio_tell(pb);
@@ -1557,10 +1585,20 @@ static int mov_get_codec_tag(AVFormatContext *s, MOVTrack *track)
return tag;
}
+static const AVCodecTag codec_cover_image_tags[] = {
+ { AV_CODEC_ID_MJPEG, 0xD },
+ { AV_CODEC_ID_PNG, 0xE },
+ { AV_CODEC_ID_BMP, 0x1B },
+ { AV_CODEC_ID_NONE, 0 },
+};
+
static int mov_find_codec_tag(AVFormatContext *s, MOVTrack *track)
{
int tag;
+ if (is_cover_image(track->st))
+ return ff_codec_get_tag(codec_cover_image_tags, track->par->codec_id);
+
if (track->mode == MODE_MP4 || track->mode == MODE_PSP)
tag = track->par->codec_tag;
else if (track->mode == MODE_ISM)
@@ -1985,6 +2023,8 @@ static int mov_write_video_tag(AVIOContext *pb, MOVMuxContext *mov, MOVTrack *tr
mov_write_uuid_tag_ipod(pb);
} else if (track->par->codec_id == AV_CODEC_ID_VP9) {
mov_write_vpcc_tag(mov->fc, pb, track);
+ } else if (track->par->codec_id == AV_CODEC_ID_AV1) {
+ mov_write_av1c_tag(pb, track);
} else if (track->par->codec_id == AV_CODEC_ID_VC1 && track->vos_len > 0)
mov_write_dvc1_tag(pb, track);
else if (track->par->codec_id == AV_CODEC_ID_VP6F ||
@@ -2534,6 +2574,7 @@ static int is_clcp_track(MOVTrack *track)
static int mov_write_hdlr_tag(AVFormatContext *s, AVIOContext *pb, MOVTrack *track)
{
+ MOVMuxContext *mov = s->priv_data;
const char *hdlr, *descr = NULL, *hdlr_type = NULL;
int64_t pos = avio_tell(pb);
@@ -2582,12 +2623,15 @@ static int mov_write_hdlr_tag(AVFormatContext *s, AVIOContext *pb, MOVTrack *tra
// of the track. So if an alternate handler description is
// specified, use it.
AVDictionaryEntry *t;
- t = av_dict_get(track->st->metadata, "handler", NULL, 0);
+ t = av_dict_get(track->st->metadata, "handler_name", NULL, 0);
if (t && utf8len(t->value))
descr = t->value;
}
}
+ if (mov->empty_hdlr_name) /* expressly allowed by QTFF and not prohibited in ISO 14496-12 8.4.3.3 */
+ descr = "";
+
avio_wb32(pb, 0); /* size */
ffio_wfourcc(pb, "hdlr");
avio_wb32(pb, 0); /* Version & flags */
@@ -2646,7 +2690,7 @@ static int mov_write_minf_tag(AVFormatContext *s, AVIOContext *pb, MOVMuxContext
} else if (track->tag == MKTAG('g','p','m','d')) {
mov_write_gmhd_tag(pb, track);
}
- if (track->mode == MODE_MOV) /* FIXME: Why do it for MODE_MOV only ? */
+ if (track->mode == MODE_MOV) /* ISO 14496-12 8.4.3.1 specifies hdlr only within mdia or meta boxes */
mov_write_hdlr_tag(s, pb, NULL);
mov_write_dinf_tag(pb);
if ((ret = mov_write_stbl_tag(s, pb, mov, track)) < 0)
@@ -3429,32 +3473,14 @@ static int mov_write_covr(AVIOContext *pb, AVFormatContext *s)
{
MOVMuxContext *mov = s->priv_data;
int64_t pos = 0;
- int i, type;
+ int i;
for (i = 0; i < s->nb_streams; i++) {
MOVTrack *trk = &mov->tracks[i];
- AVStream *st = s->streams[i];
- if (!(st->disposition & AV_DISPOSITION_ATTACHED_PIC) ||
- trk->cover_image.size <= 0)
+ if (!is_cover_image(trk->st) || trk->cover_image.size <= 0)
continue;
- switch (st->codecpar->codec_id) {
- case AV_CODEC_ID_MJPEG:
- type = 0xD;
- break;
- case AV_CODEC_ID_PNG:
- type = 0xE;
- break;
- case AV_CODEC_ID_BMP:
- type = 0x1B;
- break;
- default:
- av_log(s, AV_LOG_ERROR, "unsupported codec_id (0x%x) for cover",
- st->codecpar->codec_id);
- continue;
- }
-
if (!pos) {
pos = avio_tell(pb);
avio_wb32(pb, 0);
@@ -3462,7 +3488,7 @@ static int mov_write_covr(AVIOContext *pb, AVFormatContext *s)
}
avio_wb32(pb, 16 + trk->cover_image.size);
ffio_wfourcc(pb, "data");
- avio_wb32(pb, type);
+ avio_wb32(pb, trk->tag);
avio_wb32(pb , 0);
avio_write(pb, trk->cover_image.data, trk->cover_image.size);
}
@@ -3995,15 +4021,13 @@ static int mov_write_isml_manifest(AVIOContext *pb, MOVMuxContext *mov, AVFormat
AVStream *st = track->st;
AVDictionaryEntry *lang = av_dict_get(st->metadata, "language", NULL,0);
- if (track->par->codec_type == AVMEDIA_TYPE_VIDEO) {
+ if (track->par->codec_type == AVMEDIA_TYPE_VIDEO && !is_cover_image(st)) {
type = "video";
} else if (track->par->codec_type == AVMEDIA_TYPE_AUDIO) {
type = "audio";
} else {
continue;
}
- if (st->disposition & AV_DISPOSITION_ATTACHED_PIC)
- continue;
props = (AVCPBProperties*)av_stream_get_side_data(track->st, AV_PKT_DATA_CPB_PROPERTIES, NULL);
@@ -4663,7 +4687,7 @@ static int mov_write_ftyp_tag(AVIOContext *pb, AVFormatContext *s)
for (i = 0; i < s->nb_streams; i++) {
AVStream *st = s->streams[i];
- if (st->disposition & AV_DISPOSITION_ATTACHED_PIC)
+ if (is_cover_image(st))
continue;
if (st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO)
has_video = 1;
@@ -4813,7 +4837,7 @@ static int mov_write_identification(AVIOContext *pb, AVFormatContext *s)
int video_streams_nb = 0, audio_streams_nb = 0, other_streams_nb = 0;
for (i = 0; i < s->nb_streams; i++) {
AVStream *st = s->streams[i];
- if (st->disposition & AV_DISPOSITION_ATTACHED_PIC)
+ if (is_cover_image(st))
continue;
if (st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO)
video_streams_nb++;
@@ -5004,8 +5028,7 @@ static int mov_flush_fragment(AVFormatContext *s, int force)
int buf_size, moov_size;
for (i = 0; i < mov->nb_streams; i++)
- if (!mov->tracks[i].entry &&
- (i >= s->nb_streams || !(s->streams[i]->disposition & AV_DISPOSITION_ATTACHED_PIC)))
+ if (!mov->tracks[i].entry && !is_cover_image(mov->tracks[i].st))
break;
/* Don't write the initial moov unless all tracks have data */
if (i < mov->nb_streams && !force)
@@ -5262,6 +5285,11 @@ int ff_mov_write_packet(AVFormatContext *s, AVPacket *pkt)
else
samples_in_chunk = 1;
+ if (samples_in_chunk < 1) {
+ av_log(s, AV_LOG_ERROR, "fatal error, input packet contains no samples\n");
+ return AVERROR_PATCHWELCOME;
+ }
+
/* copy extradata if it exists */
if (trk->vos_len == 0 && par->extradata_size > 0 &&
!TAG_IS_AVCI(trk->tag) &&
@@ -5312,6 +5340,13 @@ int ff_mov_write_packet(AVFormatContext *s, AVPacket *pkt)
} else {
size = ff_hevc_annexb2mp4(pb, pkt->data, pkt->size, 0, NULL);
}
+ } else if (par->codec_id == AV_CODEC_ID_AV1) {
+ if (trk->hint_track >= 0 && trk->hint_track < mov->nb_streams) {
+ ff_av1_filter_obus_buf(pkt->data, &reformatted_data, &size);
+ avio_write(pb, reformatted_data, size);
+ } else {
+ size = ff_av1_filter_obus(pb, pkt->data, pkt->size);
+ }
#if CONFIG_AC3_PARSER
} else if (par->codec_id == AV_CODEC_ID_EAC3) {
size = handle_eac3(mov, pkt, trk);
@@ -5505,6 +5540,7 @@ static int mov_write_single_packet(AVFormatContext *s, AVPacket *pkt)
if (trk->par->codec_id == AV_CODEC_ID_MP4ALS ||
trk->par->codec_id == AV_CODEC_ID_AAC ||
+ trk->par->codec_id == AV_CODEC_ID_AV1 ||
trk->par->codec_id == AV_CODEC_ID_FLAC) {
int side_size = 0;
uint8_t *side = av_packet_get_side_data(pkt, AV_PKT_DATA_NEW_EXTRADATA, &side_size);
@@ -5587,21 +5623,19 @@ static int mov_write_packet(AVFormatContext *s, AVPacket *pkt)
{
MOVMuxContext *mov = s->priv_data;
MOVTrack *trk;
- AVStream *st;
if (!pkt) {
mov_flush_fragment(s, 1);
return 1;
}
- st = s->streams[pkt->stream_index];
trk = &mov->tracks[pkt->stream_index];
- if (st->disposition & AV_DISPOSITION_ATTACHED_PIC) {
+ if (is_cover_image(trk->st)) {
int ret;
- if (st->nb_frames >= 1) {
- if (st->nb_frames == 1)
+ if (trk->st->nb_frames >= 1) {
+ if (trk->st->nb_frames == 1)
av_log(s, AV_LOG_WARNING, "Got more than one picture in stream %d,"
" ignoring.\n", pkt->stream_index);
return 0;
@@ -5860,7 +5894,7 @@ static void enable_tracks(AVFormatContext *s)
if (st->codecpar->codec_type <= AVMEDIA_TYPE_UNKNOWN ||
st->codecpar->codec_type >= AVMEDIA_TYPE_NB ||
- st->disposition & AV_DISPOSITION_ATTACHED_PIC)
+ is_cover_image(st))
continue;
if (first[st->codecpar->codec_type] < 0)
@@ -6204,15 +6238,20 @@ static int mov_init(AVFormatContext *s)
pix_fmt == AV_PIX_FMT_MONOWHITE ||
pix_fmt == AV_PIX_FMT_MONOBLACK;
}
- if (track->par->codec_id == AV_CODEC_ID_VP9) {
+ if (track->par->codec_id == AV_CODEC_ID_VP9 ||
+ track->par->codec_id == AV_CODEC_ID_AV1) {
if (track->mode != MODE_MP4) {
- av_log(s, AV_LOG_ERROR, "VP9 only supported in MP4.\n");
+ av_log(s, AV_LOG_ERROR, "%s only supported in MP4.\n", avcodec_get_name(track->par->codec_id));
return AVERROR(EINVAL);
}
- } else if (track->par->codec_id == AV_CODEC_ID_AV1) {
- /* spec is not finished, so forbid for now */
- av_log(s, AV_LOG_ERROR, "AV1 muxing is currently not supported.\n");
- return AVERROR_PATCHWELCOME;
+ if (track->par->codec_id == AV_CODEC_ID_AV1 &&
+ s->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL) {
+ av_log(s, AV_LOG_ERROR,
+ "av1 in MP4 support is experimental, add "
+ "'-strict %d' if you want to use it.\n",
+ FF_COMPLIANCE_EXPERIMENTAL);
+ return AVERROR_EXPERIMENTAL;
+ }
} else if (track->par->codec_id == AV_CODEC_ID_VP8) {
/* altref frames handling is not defined in the spec as of version v1.0,
* so just forbid muxing VP8 streams altogether until a new version does */
@@ -6727,6 +6766,7 @@ const AVCodecTag codec_mp4_tags[] = {
{ AV_CODEC_ID_DIRAC , MKTAG('d', 'r', 'a', 'c') },
{ AV_CODEC_ID_TSCC2 , MKTAG('m', 'p', '4', 'v') },
{ AV_CODEC_ID_VP9 , MKTAG('v', 'p', '0', '9') },
+ { AV_CODEC_ID_AV1 , MKTAG('a', 'v', '0', '1') },
{ AV_CODEC_ID_AAC , MKTAG('m', 'p', '4', 'a') },
{ AV_CODEC_ID_MP4ALS , MKTAG('m', 'p', '4', 'a') },
{ AV_CODEC_ID_MP3 , MKTAG('m', 'p', '4', 'a') },
diff --git a/chromium/third_party/ffmpeg/libavformat/movenc.h b/chromium/third_party/ffmpeg/libavformat/movenc.h
index f2967bfacec..fe605d1ad2f 100644
--- a/chromium/third_party/ffmpeg/libavformat/movenc.h
+++ b/chromium/third_party/ffmpeg/libavformat/movenc.h
@@ -233,6 +233,7 @@ typedef struct MOVMuxContext {
int track_ids_ok;
int write_tmcd;
MOVPrftBox write_prft;
+ int empty_hdlr_name;
} MOVMuxContext;
#define FF_MOV_FLAG_RTP_HINT (1 << 0)
diff --git a/chromium/third_party/ffmpeg/libavformat/mpegts.c b/chromium/third_party/ffmpeg/libavformat/mpegts.c
index 5f53f77d893..a5cb17ac167 100644
--- a/chromium/third_party/ffmpeg/libavformat/mpegts.c
+++ b/chromium/third_party/ffmpeg/libavformat/mpegts.c
@@ -465,6 +465,7 @@ static void write_section_data(MpegTSContext *ts, MpegTSFilter *tss1,
offset += tss->section_h_size;
tss->section_h_size = -1;
} else {
+ tss->section_h_size = -1;
tss->end_of_section_reached = 0;
break;
}
diff --git a/chromium/third_party/ffmpeg/libavformat/mpjpegdec.c b/chromium/third_party/ffmpeg/libavformat/mpjpegdec.c
index 83aa70d0c97..64d880a9812 100644
--- a/chromium/third_party/ffmpeg/libavformat/mpjpegdec.c
+++ b/chromium/third_party/ffmpeg/libavformat/mpjpegdec.c
@@ -375,7 +375,7 @@ static int mpjpeg_read_packet(AVFormatContext *s, AVPacket *pkt)
#define OFFSET(x) offsetof(MPJPEGDemuxContext, x)
#define DEC AV_OPT_FLAG_DECODING_PARAM
-const AVOption mpjpeg_options[] = {
+static const AVOption mpjpeg_options[] = {
{ "strict_mime_boundary", "require MIME boundaries match", OFFSET(strict_mime_boundary), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DEC },
{ NULL }
};
diff --git a/chromium/third_party/ffmpeg/libavformat/mxf.h b/chromium/third_party/ffmpeg/libavformat/mxf.h
index 19f8d8a9f52..f6e75919c5f 100644
--- a/chromium/third_party/ffmpeg/libavformat/mxf.h
+++ b/chromium/third_party/ffmpeg/libavformat/mxf.h
@@ -62,13 +62,23 @@ typedef struct KLVPacket {
UID key;
int64_t offset;
uint64_t length;
+ int64_t next_klv;
} KLVPacket;
+typedef enum {
+ NormalWrap = 0,
+ D10D11Wrap,
+ RawAWrap,
+ RawVWrap
+} MXFWrappingIndicatorType;
+
typedef struct MXFCodecUL {
UID uid;
unsigned matching_len;
int id;
const char *desc;
+ unsigned wrapping_indicator_pos;
+ MXFWrappingIndicatorType wrapping_indicator_type;
} MXFCodecUL;
typedef struct {
diff --git a/chromium/third_party/ffmpeg/libavformat/mxfdec.c b/chromium/third_party/ffmpeg/libavformat/mxfdec.c
index b3d3e237c09..8e1089620ff 100644
--- a/chromium/third_party/ffmpeg/libavformat/mxfdec.c
+++ b/chromium/third_party/ffmpeg/libavformat/mxfdec.c
@@ -56,6 +56,8 @@
#include "internal.h"
#include "mxf.h"
+#define MXF_MAX_CHUNK_SIZE (32 << 20)
+
typedef enum {
Header,
BodyPartition,
@@ -76,6 +78,12 @@ typedef enum {
OPSONYOpt, /* FATE sample, violates the spec in places */
} MXFOP;
+typedef enum {
+ UnknownWrapped = 0,
+ FrameWrapped,
+ ClipWrapped,
+} MXFWrappingScheme;
+
typedef struct MXFPartition {
int closed;
int complete;
@@ -92,6 +100,7 @@ typedef struct MXFPartition {
int pack_length;
int64_t pack_ofs; ///< absolute offset of pack in file, including run-in
int64_t body_offset;
+ KLVPacket first_essence_klv;
} MXFPartition;
typedef struct MXFCryptoContext {
@@ -165,6 +174,8 @@ typedef struct {
int64_t original_duration; /* st->duration in SampleRate/EditRate units */
int index_sid;
int body_sid;
+ MXFWrappingScheme wrapping;
+ int edit_units_per_packet; /* how many edit units to read at a time (PCM, ClipWrapped) */
} MXFTrack;
typedef struct MXFDescriptor {
@@ -269,23 +280,15 @@ typedef struct MXFContext {
int local_tags_count;
uint64_t footer_partition;
KLVPacket current_klv_data;
- int current_klv_index;
int run_in;
MXFPartition *current_partition;
int parsing_backward;
int64_t last_forward_tell;
int last_forward_partition;
- int64_t current_edit_unit;
int nb_index_tables;
MXFIndexTable *index_tables;
- int edit_units_per_packet; ///< how many edit units to read at a time (PCM, OPAtom)
} MXFContext;
-enum MXFWrappingScheme {
- Frame,
- Clip,
-};
-
/* NOTE: klv_offset is not set (-1) for local keys */
typedef int MXFMetadataReadFunc(void *arg, AVIOContext *pb, int tag, int size, UID uid, int64_t klv_offset);
@@ -392,7 +395,7 @@ static int mxf_read_sync(AVIOContext *pb, const uint8_t *key, unsigned size)
static int klv_read_packet(KLVPacket *klv, AVIOContext *pb)
{
- int64_t length;
+ int64_t length, pos;
if (!mxf_read_sync(pb, mxf_klv_key, 4))
return AVERROR_INVALIDDATA;
klv->offset = avio_tell(pb) - 4;
@@ -402,6 +405,10 @@ static int klv_read_packet(KLVPacket *klv, AVIOContext *pb)
if (length < 0)
return length;
klv->length = length;
+ pos = avio_tell(pb);
+ if (pos > INT64_MAX - length)
+ return AVERROR_INVALIDDATA;
+ klv->next_klv = pos + length;
return 0;
}
@@ -416,7 +423,7 @@ static int mxf_get_stream_index(AVFormatContext *s, KLVPacket *klv, int body_sid
return i;
}
/* return 0 if only one stream, for OP Atom files with 0 as track number */
- return s->nb_streams == 1 ? 0 : -1;
+ return s->nb_streams == 1 && s->streams[0]->priv_data ? 0 : -1;
}
static int find_body_sid_by_offset(MXFContext *mxf, int64_t offset)
@@ -1229,16 +1236,18 @@ static void *mxf_resolve_strong_ref(MXFContext *mxf, UID *strong_ref, enum MXFMe
static const MXFCodecUL mxf_picture_essence_container_uls[] = {
// video essence container uls
- { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x07,0x0d,0x01,0x03,0x01,0x02,0x0c,0x01,0x00 }, 14, AV_CODEC_ID_JPEG2000 },
- { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x02,0x0d,0x01,0x03,0x01,0x02,0x10,0x60,0x01 }, 14, AV_CODEC_ID_H264 }, /* H.264 frame wrapped */
- { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x02,0x0d,0x01,0x03,0x01,0x02,0x11,0x01,0x00 }, 14, AV_CODEC_ID_DNXHD }, /* VC-3 */
- { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x02,0x0d,0x01,0x03,0x01,0x02,0x12,0x01,0x00 }, 14, AV_CODEC_ID_VC1 }, /* VC-1 frame wrapped */
- { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x02,0x0d,0x01,0x03,0x01,0x02,0x14,0x01,0x00 }, 14, AV_CODEC_ID_TIFF }, /* TIFF */
- { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x02,0x0d,0x01,0x03,0x01,0x02,0x15,0x01,0x00 }, 14, AV_CODEC_ID_DIRAC }, /* VC-2 */
- { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x02,0x0d,0x01,0x03,0x01,0x02,0x04,0x60,0x01 }, 14, AV_CODEC_ID_MPEG2VIDEO }, /* MPEG-ES frame wrapped */
- { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0d,0x01,0x03,0x01,0x02,0x01,0x04,0x01 }, 14, AV_CODEC_ID_MPEG2VIDEO }, /* Type D-10 mapping of 40Mbps 525/60-I */
- { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0d,0x01,0x03,0x01,0x02,0x02,0x41,0x01 }, 14, AV_CODEC_ID_DVVIDEO }, /* DV 625 25mbps */
- { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0d,0x01,0x03,0x01,0x02,0x05,0x00,0x00 }, 14, AV_CODEC_ID_RAWVIDEO }, /* uncompressed picture */
+ { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x07,0x0d,0x01,0x03,0x01,0x02,0x0c,0x01,0x00 }, 14, AV_CODEC_ID_JPEG2000, NULL, 14 },
+ { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x02,0x0d,0x01,0x03,0x01,0x02,0x10,0x60,0x01 }, 14, AV_CODEC_ID_H264, NULL, 15 }, /* H.264 */
+ { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x02,0x0d,0x01,0x03,0x01,0x02,0x11,0x01,0x00 }, 14, AV_CODEC_ID_DNXHD, NULL, 14 }, /* VC-3 */
+ { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x02,0x0d,0x01,0x03,0x01,0x02,0x12,0x01,0x00 }, 14, AV_CODEC_ID_VC1, NULL, 14 }, /* VC-1 */
+ { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x02,0x0d,0x01,0x03,0x01,0x02,0x14,0x01,0x00 }, 14, AV_CODEC_ID_TIFF, NULL, 14 }, /* TIFF */
+ { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x02,0x0d,0x01,0x03,0x01,0x02,0x15,0x01,0x00 }, 14, AV_CODEC_ID_DIRAC, NULL, 14 }, /* VC-2 */
+ { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x02,0x0d,0x01,0x03,0x01,0x02,0x1b,0x01,0x00 }, 14, AV_CODEC_ID_CFHD, NULL, 14 }, /* VC-5 */
+ { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x02,0x0d,0x01,0x03,0x01,0x02,0x1c,0x01,0x00 }, 14, AV_CODEC_ID_PRORES, NULL, 14 }, /* ProRes */
+ { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x02,0x0d,0x01,0x03,0x01,0x02,0x04,0x60,0x01 }, 14, AV_CODEC_ID_MPEG2VIDEO, NULL, 15 }, /* MPEG-ES */
+ { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0d,0x01,0x03,0x01,0x02,0x01,0x04,0x01 }, 14, AV_CODEC_ID_MPEG2VIDEO, NULL, 15, D10D11Wrap }, /* SMPTE D-10 mapping */
+ { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0d,0x01,0x03,0x01,0x02,0x02,0x41,0x01 }, 14, AV_CODEC_ID_DVVIDEO, NULL, 15 }, /* DV 625 25mbps */
+ { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0d,0x01,0x03,0x01,0x02,0x05,0x00,0x00 }, 14, AV_CODEC_ID_RAWVIDEO, NULL, 15, RawVWrap }, /* uncompressed picture */
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x0a,0x0e,0x0f,0x03,0x01,0x02,0x20,0x01,0x01 }, 15, AV_CODEC_ID_HQ_HQA },
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x0a,0x0e,0x0f,0x03,0x01,0x02,0x20,0x02,0x01 }, 15, AV_CODEC_ID_HQX },
{ { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0xff,0x4b,0x46,0x41,0x41,0x00,0x0d,0x4d,0x4f }, 14, AV_CODEC_ID_RAWVIDEO }, /* Legacy ?? Uncompressed Picture */
@@ -1269,21 +1278,55 @@ static const MXFCodecUL mxf_intra_only_picture_coded_width[] = {
static const MXFCodecUL mxf_sound_essence_container_uls[] = {
// sound essence container uls
- { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0d,0x01,0x03,0x01,0x02,0x06,0x01,0x00 }, 14, AV_CODEC_ID_PCM_S16LE }, /* BWF Frame wrapped */
- { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x02,0x0d,0x01,0x03,0x01,0x02,0x04,0x40,0x01 }, 14, AV_CODEC_ID_MP2 }, /* MPEG-ES Frame wrapped, 0x40 ??? stream id */
- { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0d,0x01,0x03,0x01,0x02,0x01,0x01,0x01 }, 14, AV_CODEC_ID_PCM_S16LE }, /* D-10 Mapping 50Mbps PAL Extended Template */
+ { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0d,0x01,0x03,0x01,0x02,0x06,0x01,0x00 }, 14, AV_CODEC_ID_PCM_S16LE, NULL, 14, RawAWrap }, /* BWF */
+ { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x02,0x0d,0x01,0x03,0x01,0x02,0x04,0x40,0x01 }, 14, AV_CODEC_ID_MP2, NULL, 15 }, /* MPEG-ES */
+ { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0d,0x01,0x03,0x01,0x02,0x01,0x01,0x01 }, 14, AV_CODEC_ID_PCM_S16LE, NULL, 13 }, /* D-10 Mapping 50Mbps PAL Extended Template */
{ { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0xff,0x4b,0x46,0x41,0x41,0x00,0x0d,0x4d,0x4F }, 14, AV_CODEC_ID_PCM_S16LE }, /* 0001GL00.MXF.A1.mxf_opatom.mxf */
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x03,0x04,0x02,0x02,0x02,0x03,0x03,0x01,0x00 }, 14, AV_CODEC_ID_AAC }, /* MPEG-2 AAC ADTS (legacy) */
{ { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, 0, AV_CODEC_ID_NONE },
};
static const MXFCodecUL mxf_data_essence_container_uls[] = {
- { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x09,0x0d,0x01,0x03,0x01,0x02,0x0d,0x00,0x00 }, 16, AV_CODEC_ID_NONE, "vbi_smpte_436M" },
- { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x09,0x0d,0x01,0x03,0x01,0x02,0x0e,0x00,0x00 }, 16, AV_CODEC_ID_NONE, "vbi_vanc_smpte_436M" },
+ { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x09,0x0d,0x01,0x03,0x01,0x02,0x0d,0x00,0x00 }, 16, AV_CODEC_ID_NONE, "vbi_smpte_436M", 11 },
+ { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x09,0x0d,0x01,0x03,0x01,0x02,0x0e,0x00,0x00 }, 16, AV_CODEC_ID_NONE, "vbi_vanc_smpte_436M", 11 },
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x09,0x0d,0x01,0x03,0x01,0x02,0x13,0x01,0x01 }, 16, AV_CODEC_ID_TTML },
{ { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, 0, AV_CODEC_ID_NONE },
};
+static MXFWrappingScheme mxf_get_wrapping_kind(UID *essence_container_ul)
+{
+ int val;
+ const MXFCodecUL *codec_ul;
+
+ codec_ul = mxf_get_codec_ul(mxf_picture_essence_container_uls, essence_container_ul);
+ if (!codec_ul->uid[0])
+ codec_ul = mxf_get_codec_ul(mxf_sound_essence_container_uls, essence_container_ul);
+ if (!codec_ul->uid[0])
+ codec_ul = mxf_get_codec_ul(mxf_data_essence_container_uls, essence_container_ul);
+ if (!codec_ul->uid[0] || !codec_ul->wrapping_indicator_pos)
+ return UnknownWrapped;
+
+ val = (*essence_container_ul)[codec_ul->wrapping_indicator_pos];
+ switch (codec_ul->wrapping_indicator_type) {
+ case RawVWrap:
+ val = val % 4;
+ break;
+ case RawAWrap:
+ if (val == 0x03 || val == 0x04)
+ val -= 0x02;
+ break;
+ case D10D11Wrap:
+ if (val == 0x02)
+ val = 0x01;
+ break;
+ }
+ if (val == 0x01)
+ return FrameWrapped;
+ if (val == 0x02)
+ return ClipWrapped;
+ return UnknownWrapped;
+}
+
static int mxf_get_sorted_table_segments(MXFContext *mxf, int *nb_sorted_segments, MXFIndexTableSegment ***sorted_segments)
{
int i, j, nb_segments = 0;
@@ -1305,9 +1348,22 @@ static int mxf_get_sorted_table_segments(MXFContext *mxf, int *nb_sorted_segment
return AVERROR(ENOMEM);
}
- for (i = j = 0; i < mxf->metadata_sets_count; i++)
- if (mxf->metadata_sets[i]->type == IndexTableSegment)
- unsorted_segments[j++] = (MXFIndexTableSegment*)mxf->metadata_sets[i];
+ for (i = nb_segments = 0; i < mxf->metadata_sets_count; i++) {
+ if (mxf->metadata_sets[i]->type == IndexTableSegment) {
+ MXFIndexTableSegment *s = (MXFIndexTableSegment*)mxf->metadata_sets[i];
+ if (s->edit_unit_byte_count || s->nb_index_entries)
+ unsorted_segments[nb_segments++] = s;
+ else
+ av_log(mxf->fc, AV_LOG_WARNING, "IndexSID %i segment at %"PRId64" missing EditUnitByteCount and IndexEntryArray\n",
+ s->index_sid, s->index_start_position);
+ }
+ }
+
+ if (!nb_segments) {
+ av_freep(sorted_segments);
+ av_free(unsorted_segments);
+ return AVERROR_INVALIDDATA;
+ }
*nb_sorted_segments = 0;
@@ -1358,7 +1414,7 @@ static int mxf_get_sorted_table_segments(MXFContext *mxf, int *nb_sorted_segment
/**
* Computes the absolute file offset of the given essence container offset
*/
-static int mxf_absolute_bodysid_offset(MXFContext *mxf, int body_sid, int64_t offset, int64_t *offset_out)
+static int mxf_absolute_bodysid_offset(MXFContext *mxf, int body_sid, int64_t offset, int64_t *offset_out, MXFPartition **partition_out)
{
MXFPartition *last_p = NULL;
int a, b, m, m0;
@@ -1386,6 +1442,8 @@ static int mxf_absolute_bodysid_offset(MXFContext *mxf, int body_sid, int64_t of
if (last_p && (!last_p->essence_length || last_p->essence_length > (offset - last_p->body_offset))) {
*offset_out = last_p->essence_offset + (offset - last_p->body_offset);
+ if (partition_out)
+ *partition_out = last_p;
return 0;
}
@@ -1420,11 +1478,13 @@ static int64_t mxf_essence_container_end(MXFContext *mxf, int body_sid)
}
/* EditUnit -> absolute offset */
-static int mxf_edit_unit_absolute_offset(MXFContext *mxf, MXFIndexTable *index_table, int64_t edit_unit, int64_t *edit_unit_out, int64_t *offset_out, int nag)
+static int mxf_edit_unit_absolute_offset(MXFContext *mxf, MXFIndexTable *index_table, int64_t edit_unit, AVRational edit_rate, int64_t *edit_unit_out, int64_t *offset_out, MXFPartition **partition_out, int nag)
{
int i;
int64_t offset_temp = 0;
+ edit_unit = av_rescale_q(edit_unit, index_table->segments[0]->index_edit_rate, edit_rate);
+
for (i = 0; i < index_table->nb_segments; i++) {
MXFIndexTableSegment *s = index_table->segments[i];
@@ -1435,7 +1495,7 @@ static int mxf_edit_unit_absolute_offset(MXFContext *mxf, MXFIndexTable *index_t
if (s->edit_unit_byte_count)
offset_temp += s->edit_unit_byte_count * index;
- else if (s->nb_index_entries) {
+ else {
if (s->nb_index_entries == 2 * s->index_duration + 1)
index *= 2; /* Avid index */
@@ -1446,16 +1506,12 @@ static int mxf_edit_unit_absolute_offset(MXFContext *mxf, MXFIndexTable *index_t
}
offset_temp = s->stream_offset_entries[index];
- } else {
- av_log(mxf->fc, AV_LOG_ERROR, "IndexSID %i segment at %"PRId64" missing EditUnitByteCount and IndexEntryArray\n",
- index_table->index_sid, s->index_start_position);
- return AVERROR_INVALIDDATA;
}
if (edit_unit_out)
- *edit_unit_out = edit_unit;
+ *edit_unit_out = av_rescale_q(edit_unit, edit_rate, s->index_edit_rate);
- return mxf_absolute_bodysid_offset(mxf, index_table->body_sid, offset_temp, offset_out);
+ return mxf_absolute_bodysid_offset(mxf, index_table->body_sid, offset_temp, offset_out, partition_out);
} else {
/* EditUnitByteCount == 0 for VBR indexes, which is fine since they use explicit StreamOffsets */
offset_temp += s->edit_unit_byte_count * s->index_duration;
@@ -1483,6 +1539,12 @@ static int mxf_compute_ptses_fake_index(MXFContext *mxf, MXFIndexTable *index_ta
return 0; /* no TemporalOffsets */
}
+ if (s->index_duration > INT_MAX - index_table->nb_ptses) {
+ index_table->nb_ptses = 0;
+ av_log(mxf->fc, AV_LOG_ERROR, "ignoring IndexSID %d, duration is too large\n", s->index_sid);
+ return 0;
+ }
+
index_table->nb_ptses += s->index_duration;
}
@@ -1661,6 +1723,13 @@ static int mxf_compute_index_tables(MXFContext *mxf)
/* fix zero IndexDurations */
for (k = 0; k < t->nb_segments; k++) {
+ if (!t->segments[k]->index_edit_rate.num || !t->segments[k]->index_edit_rate.den) {
+ av_log(mxf->fc, AV_LOG_WARNING, "IndexSID %i segment %i has invalid IndexEditRate\n",
+ t->index_sid, k);
+ if (mxf_track)
+ t->segments[k]->index_edit_rate = mxf_track->edit_rate;
+ }
+
if (t->segments[k]->index_duration)
continue;
@@ -2095,7 +2164,7 @@ static int mxf_parse_structural_metadata(MXFContext *mxf)
MXFEssenceContainerData *essence_data;
if (!(essence_data = mxf_resolve_strong_ref(mxf, &mxf->essence_container_data_refs[k], EssenceContainerData))) {
- av_log(mxf, AV_LOG_TRACE, "could not resolve essence container data strong ref\n");
+ av_log(mxf->fc, AV_LOG_TRACE, "could not resolve essence container data strong ref\n");
continue;
}
if (!memcmp(component->source_package_ul, essence_data->package_ul, sizeof(UID)) && !memcmp(component->source_package_uid, essence_data->package_uid, sizeof(UID))) {
@@ -2175,6 +2244,9 @@ static int mxf_parse_structural_metadata(MXFContext *mxf)
PRINT_KEY(mxf->fc, "essence codec ul", descriptor->essence_codec_ul);
PRINT_KEY(mxf->fc, "essence container ul", descriptor->essence_container_ul);
essence_container_ul = &descriptor->essence_container_ul;
+ source_track->wrapping = (mxf->op == OPAtom) ? ClipWrapped : mxf_get_wrapping_kind(essence_container_ul);
+ if (source_track->wrapping == UnknownWrapped)
+ av_log(mxf->fc, AV_LOG_INFO, "wrapping of stream %d is unknown\n", st->index);
/* HACK: replacing the original key with mxf_encrypted_essence_container
* is not allowed according to s429-6, try to find correct information anyway */
if (IS_KLV_KEY(essence_container_ul, mxf_encrypted_essence_container)) {
@@ -2375,7 +2447,7 @@ static int mxf_parse_structural_metadata(MXFContext *mxf)
if (ret < 0)
return ret;
}
- if (st->codecpar->codec_type != AVMEDIA_TYPE_DATA && (*essence_container_ul)[15] > 0x01) {
+ if (st->codecpar->codec_type != AVMEDIA_TYPE_DATA && source_track->wrapping != FrameWrapped) {
/* TODO: decode timestamps */
st->need_parsing = AVSTREAM_PARSE_TIMESTAMPS;
}
@@ -2568,7 +2640,8 @@ static int mxf_read_local_tags(MXFContext *mxf, KLVPacket *klv, MXFMetadataReadF
if (ctx_size && tag == 0x3C0A) {
avio_read(pb, ctx->uid, 16);
} else if ((ret = read_child(ctx, pb, tag, size, uid, -1)) < 0) {
- mxf_free_metadataset(&ctx, !!ctx_size);
+ if (ctx_size)
+ mxf_free_metadataset(&ctx, 1);
return ret;
}
@@ -2577,7 +2650,7 @@ static int mxf_read_local_tags(MXFContext *mxf, KLVPacket *klv, MXFMetadataReadF
if (avio_tell(pb) > klv_end) {
if (ctx_size) {
ctx->type = type;
- mxf_free_metadataset(&ctx, !!ctx_size);
+ mxf_free_metadataset(&ctx, 1);
}
av_log(mxf->fc, AV_LOG_ERROR,
@@ -2739,65 +2812,70 @@ static int mxf_parse_handle_partition_or_eof(MXFContext *mxf)
return mxf->parsing_backward ? mxf_seek_to_previous_partition(mxf) : 1;
}
+static MXFWrappingScheme mxf_get_wrapping_by_body_sid(AVFormatContext *s, int body_sid)
+{
+ for (int i = 0; i < s->nb_streams; i++) {
+ MXFTrack *track = s->streams[i]->priv_data;
+ if (track && track->body_sid == body_sid && track->wrapping != UnknownWrapped)
+ return track->wrapping;
+ }
+ return UnknownWrapped;
+}
+
/**
* Figures out the proper offset and length of the essence container in each partition
*/
-static void mxf_compute_essence_containers(MXFContext *mxf)
+static void mxf_compute_essence_containers(AVFormatContext *s)
{
+ MXFContext *mxf = s->priv_data;
int x;
- /* everything is already correct */
- if (mxf->op == OPAtom)
- return;
-
for (x = 0; x < mxf->partitions_count; x++) {
MXFPartition *p = &mxf->partitions[x];
+ MXFWrappingScheme wrapping;
if (!p->body_sid)
continue; /* BodySID == 0 -> no essence */
- if (x >= mxf->partitions_count - 1)
- break; /* FooterPartition - can't compute length (and we don't need to) */
+ /* for clip wrapped essences we point essence_offset after the KL (usually klv.offset + 20 or 25)
+ * otherwise we point essence_offset at the key of the first essence KLV.
+ */
- /* essence container spans to the next partition */
- p->essence_length = mxf->partitions[x+1].this_partition - p->essence_offset;
+ wrapping = (mxf->op == OPAtom) ? ClipWrapped : mxf_get_wrapping_by_body_sid(s, p->body_sid);
- if (p->essence_length < 0) {
- /* next ThisPartition < essence_offset */
- p->essence_length = 0;
- av_log(mxf->fc, AV_LOG_ERROR,
- "partition %i: bad ThisPartition = %"PRIX64"\n",
- x+1, mxf->partitions[x+1].this_partition);
+ if (wrapping == ClipWrapped) {
+ p->essence_offset = p->first_essence_klv.next_klv - p->first_essence_klv.length;
+ p->essence_length = p->first_essence_klv.length;
+ } else {
+ p->essence_offset = p->first_essence_klv.offset;
+
+ /* essence container spans to the next partition */
+ if (x < mxf->partitions_count - 1)
+ p->essence_length = mxf->partitions[x+1].this_partition - p->essence_offset;
+
+ if (p->essence_length < 0) {
+ /* next ThisPartition < essence_offset */
+ p->essence_length = 0;
+ av_log(mxf->fc, AV_LOG_ERROR,
+ "partition %i: bad ThisPartition = %"PRIX64"\n",
+ x+1, mxf->partitions[x+1].this_partition);
+ }
}
}
}
-static int64_t round_to_kag(int64_t position, int kag_size)
-{
- /* TODO: account for run-in? the spec isn't clear whether KAG should account for it */
- /* NOTE: kag_size may be any integer between 1 - 2^10 */
- int64_t ret = (position / kag_size) * kag_size;
- return ret == position ? ret : ret + kag_size;
-}
-
static int is_pcm(enum AVCodecID codec_id)
{
/* we only care about "normal" PCM codecs until we get samples */
return codec_id >= AV_CODEC_ID_PCM_S16LE && codec_id < AV_CODEC_ID_PCM_S24DAUD;
}
-static AVStream* mxf_get_opatom_stream(MXFContext *mxf)
+static MXFIndexTable *mxf_find_index_table(MXFContext *mxf, int index_sid)
{
int i;
-
- if (mxf->op != OPAtom)
- return NULL;
-
- for (i = 0; i < mxf->fc->nb_streams; i++) {
- if (mxf->fc->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_DATA)
- continue;
- return mxf->fc->streams[i];
- }
+ for (i = 0; i < mxf->nb_index_tables; i++)
+ if (mxf->index_tables[i].index_sid == index_sid)
+ return &mxf->index_tables[i];
return NULL;
}
@@ -2806,63 +2884,62 @@ static AVStream* mxf_get_opatom_stream(MXFContext *mxf)
* very small (2, 4..). In those cases we should read more than one
* sample per call to mxf_read_packet().
*/
-static void mxf_handle_small_eubc(AVFormatContext *s)
+static void mxf_compute_edit_units_per_packet(MXFContext *mxf, AVStream *st)
{
- MXFContext *mxf = s->priv_data;
- MXFTrack *track;
+ MXFTrack *track = st->priv_data;
+ MXFIndexTable *t;
- /* assuming non-OPAtom == frame wrapped
- * no sane writer would wrap 2 byte PCM packets with 20 byte headers.. */
- AVStream *st = mxf_get_opatom_stream(mxf);
- if (!st)
+ if (!track)
+ return;
+ track->edit_units_per_packet = 1;
+ if (track->wrapping != ClipWrapped)
return;
+ t = mxf_find_index_table(mxf, track->index_sid);
+
/* expect PCM with exactly one index table segment and a small (< 32) EUBC */
if (st->codecpar->codec_type != AVMEDIA_TYPE_AUDIO ||
!is_pcm(st->codecpar->codec_id) ||
- mxf->nb_index_tables != 1 ||
- mxf->index_tables[0].nb_segments != 1 ||
- mxf->index_tables[0].segments[0]->edit_unit_byte_count >= 32)
+ !t ||
+ t->nb_segments != 1 ||
+ t->segments[0]->edit_unit_byte_count >= 32)
return;
/* arbitrarily default to 48 kHz PAL audio frame size */
/* TODO: We could compute this from the ratio between the audio
* and video edit rates for 48 kHz NTSC we could use the
* 1802-1802-1802-1802-1801 pattern. */
- track = st->priv_data;
- mxf->edit_units_per_packet = FFMAX(1, track->edit_rate.num / track->edit_rate.den / 25);
+ track->edit_units_per_packet = FFMAX(1, track->edit_rate.num / track->edit_rate.den / 25);
}
/**
- * Deal with the case where OPAtom files does not have any IndexTableSegments.
+ * Deal with the case where ClipWrapped essences does not have any IndexTableSegments.
*/
-static int mxf_handle_missing_index_segment(MXFContext *mxf)
+static int mxf_handle_missing_index_segment(MXFContext *mxf, AVStream *st)
{
- AVFormatContext *s = mxf->fc;
- AVStream *st = NULL;
+ MXFTrack *track = st->priv_data;
MXFIndexTableSegment *segment = NULL;
MXFPartition *p = NULL;
int essence_partition_count = 0;
+ int edit_unit_byte_count = 0;
int i, ret;
- st = mxf_get_opatom_stream(mxf);
- if (!st)
+ if (!track || track->wrapping != ClipWrapped)
return 0;
- /* TODO: support raw video without an index if they exist */
- if (st->codecpar->codec_type != AVMEDIA_TYPE_AUDIO || !is_pcm(st->codecpar->codec_id))
- return 0;
-
- /* check if file already has a IndexTableSegment */
+ /* check if track already has an IndexTableSegment */
for (i = 0; i < mxf->metadata_sets_count; i++) {
- if (mxf->metadata_sets[i]->type == IndexTableSegment)
- return 0;
+ if (mxf->metadata_sets[i]->type == IndexTableSegment) {
+ MXFIndexTableSegment *s = (MXFIndexTableSegment*)mxf->metadata_sets[i];
+ if (s->body_sid == track->body_sid)
+ return 0;
+ }
}
/* find the essence partition */
for (i = 0; i < mxf->partitions_count; i++) {
/* BodySID == 0 -> no essence */
- if (!mxf->partitions[i].body_sid)
+ if (mxf->partitions[i].body_sid != track->body_sid)
continue;
p = &mxf->partitions[i];
@@ -2873,6 +2950,17 @@ static int mxf_handle_missing_index_segment(MXFContext *mxf)
if (essence_partition_count != 1)
return 0;
+ if (st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO && is_pcm(st->codecpar->codec_id)) {
+ edit_unit_byte_count = (av_get_bits_per_sample(st->codecpar->codec_id) * st->codecpar->channels) >> 3;
+ } else if (st->duration > 0 && p->first_essence_klv.length > 0 && p->first_essence_klv.length % st->duration == 0) {
+ edit_unit_byte_count = p->first_essence_klv.length / st->duration;
+ }
+
+ if (edit_unit_byte_count <= 0)
+ return 0;
+
+ av_log(mxf->fc, AV_LOG_WARNING, "guessing index for stream %d using edit unit byte count %d\n", st->index, edit_unit_byte_count);
+
if (!(segment = av_mallocz(sizeof(*segment))))
return AVERROR(ENOMEM);
@@ -2881,12 +2969,18 @@ static int mxf_handle_missing_index_segment(MXFContext *mxf)
return ret;
}
+ /* Make sure we have nonzero unique index_sid, body_sid will be ok, because
+ * using the same SID for index is forbidden in MXF. */
+ if (!track->index_sid)
+ track->index_sid = track->body_sid;
+
segment->type = IndexTableSegment;
/* stream will be treated as small EditUnitByteCount */
- segment->edit_unit_byte_count = (av_get_bits_per_sample(st->codecpar->codec_id) * st->codecpar->channels) >> 3;
+ segment->edit_unit_byte_count = edit_unit_byte_count;
segment->index_start_position = 0;
- segment->index_duration = s->streams[0]->duration;
- segment->index_sid = p->index_sid;
+ segment->index_duration = st->duration;
+ segment->index_edit_rate = av_inv_q(st->time_base);
+ segment->index_sid = track->index_sid;
segment->body_sid = p->body_sid;
return 0;
}
@@ -2950,7 +3044,6 @@ static int mxf_read_header(AVFormatContext *s)
int ret;
mxf->last_forward_tell = INT64_MAX;
- mxf->edit_units_per_packet = 1;
if (!mxf_read_sync(s->pb, mxf_header_partition_pack_key, 14)) {
av_log(s, AV_LOG_ERROR, "could not find header partition pack key\n");
@@ -2977,6 +3070,7 @@ static int mxf_read_header(AVFormatContext *s)
av_log(s, AV_LOG_TRACE, "size %"PRIu64" offset %#"PRIx64"\n", klv.length, klv.offset);
if (IS_KLV_KEY(klv.key, mxf_encrypted_triplet_key) ||
IS_KLV_KEY(klv.key, mxf_essence_element_key) ||
+ IS_KLV_KEY(klv.key, mxf_canopus_essence_element_key) ||
IS_KLV_KEY(klv.key, mxf_avid_essence_element_key) ||
IS_KLV_KEY(klv.key, mxf_system_item_key_cp) ||
IS_KLV_KEY(klv.key, mxf_system_item_key_gc)) {
@@ -2986,32 +3080,8 @@ static int mxf_read_header(AVFormatContext *s)
return AVERROR_INVALIDDATA;
}
- if (!mxf->current_partition->essence_offset) {
- /* for OP1a we compute essence_offset
- * for OPAtom we point essence_offset after the KL (usually op1a_essence_offset + 20 or 25)
- * TODO: for OP1a we could eliminate this entire if statement, always stopping parsing at op1a_essence_offset
- * for OPAtom we still need the actual essence_offset though (the KL's length can vary)
- */
- int64_t op1a_essence_offset =
- mxf->current_partition->this_partition +
- round_to_kag(mxf->current_partition->pack_length, mxf->current_partition->kag_size) +
- round_to_kag(mxf->current_partition->header_byte_count, mxf->current_partition->kag_size) +
- round_to_kag(mxf->current_partition->index_byte_count, mxf->current_partition->kag_size);
-
- if (mxf->op == OPAtom) {
- /* point essence_offset to the actual data
- * OPAtom has all the essence in one big KLV
- */
- mxf->current_partition->essence_offset = avio_tell(s->pb);
- mxf->current_partition->essence_length = klv.length;
- } else {
- /* NOTE: op1a_essence_offset may be less than to klv.offset (C0023S01.mxf) */
- if (IS_KLV_KEY(klv.key, mxf_system_item_key_cp) || IS_KLV_KEY(klv.key, mxf_system_item_key_gc))
- mxf->current_partition->essence_offset = klv.offset;
- else
- mxf->current_partition->essence_offset = op1a_essence_offset;
- }
- }
+ if (!mxf->current_partition->first_essence_klv.offset)
+ mxf->current_partition->first_essence_klv = klv;
if (!essence_offset)
essence_offset = klv.offset;
@@ -3050,14 +3120,14 @@ static int mxf_read_header(AVFormatContext *s)
}
avio_seek(s->pb, essence_offset, SEEK_SET);
- mxf_compute_essence_containers(mxf);
-
/* we need to do this before computing the index tables
* to be able to fill in zero IndexDurations with st->duration */
if ((ret = mxf_parse_structural_metadata(mxf)) < 0)
goto fail;
- mxf_handle_missing_index_segment(mxf);
+ for (int i = 0; i < s->nb_streams; i++)
+ mxf_handle_missing_index_segment(mxf, s->streams[i]);
+
if ((ret = mxf_compute_index_tables(mxf)) < 0)
goto fail;
@@ -3065,13 +3135,16 @@ static int mxf_read_header(AVFormatContext *s)
/* TODO: look up which IndexSID to use via EssenceContainerData */
av_log(mxf->fc, AV_LOG_INFO, "got %i index tables - only the first one (IndexSID %i) will be used\n",
mxf->nb_index_tables, mxf->index_tables[0].index_sid);
- } else if (mxf->nb_index_tables == 0 && mxf->op == OPAtom) {
+ } else if (mxf->nb_index_tables == 0 && mxf->op == OPAtom && (s->error_recognition & AV_EF_EXPLODE)) {
av_log(mxf->fc, AV_LOG_ERROR, "cannot demux OPAtom without an index\n");
ret = AVERROR_INVALIDDATA;
goto fail;
}
- mxf_handle_small_eubc(s);
+ mxf_compute_essence_containers(s);
+
+ for (int i = 0; i < s->nb_streams; i++)
+ mxf_compute_edit_units_per_packet(mxf, s->streams[i]);
return 0;
fail:
@@ -3080,15 +3153,6 @@ fail:
return ret;
}
-static MXFIndexTable *mxf_find_index_table(MXFContext *mxf, int index_sid)
-{
- int i;
- for (i = 0; i < mxf->nb_index_tables; i++)
- if (mxf->index_tables[i].index_sid == index_sid)
- return &mxf->index_tables[i];
- return NULL;
-}
-
/* Get the edit unit of the next packet from current_offset in a track. The returned edit unit can be original_duration as well! */
static int mxf_get_next_track_edit_unit(MXFContext *mxf, MXFTrack *track, int64_t current_offset, int64_t *edit_unit_out)
{
@@ -3103,7 +3167,7 @@ static int mxf_get_next_track_edit_unit(MXFContext *mxf, MXFTrack *track, int64_
while (b - a > 1) {
m = (a + b) >> 1;
- if (mxf_edit_unit_absolute_offset(mxf, t, m, NULL, &offset, 0) < 0)
+ if (mxf_edit_unit_absolute_offset(mxf, t, m, track->edit_rate, NULL, &offset, NULL, 0) < 0)
return -1;
if (offset < current_offset)
a = m;
@@ -3116,70 +3180,32 @@ static int mxf_get_next_track_edit_unit(MXFContext *mxf, MXFTrack *track, int64_
return 0;
}
-/**
- * Sets mxf->current_edit_unit based on what offset we're currently at.
- * @return next_ofs if OK, <0 on error
- */
-static int64_t mxf_set_current_edit_unit(MXFContext *mxf, int64_t current_offset)
-{
- int64_t last_ofs = -1, next_ofs = -1;
- MXFIndexTable *t = &mxf->index_tables[0];
-
- /* this is called from the OP1a demuxing logic, which means there
- * may be no index tables */
- if (mxf->nb_index_tables <= 0)
- return -1;
-
- /* find mxf->current_edit_unit so that the next edit unit starts ahead of current_offset */
- while (mxf->current_edit_unit >= 0) {
- if (mxf_edit_unit_absolute_offset(mxf, t, mxf->current_edit_unit + 1, NULL, &next_ofs, 0) < 0)
- return -2;
-
- if (next_ofs <= last_ofs) {
- /* large next_ofs didn't change or current_edit_unit wrapped
- * around this fixes the infinite loop on zzuf3.mxf */
- av_log(mxf->fc, AV_LOG_ERROR,
- "next_ofs didn't change. not deriving packet timestamps\n");
- return -1;
- }
-
- if (next_ofs > current_offset)
- break;
-
- last_ofs = next_ofs;
- mxf->current_edit_unit++;
- }
-
- /* not checking mxf->current_edit_unit >= t->nb_ptses here since CBR files may lack IndexEntryArrays */
- if (mxf->current_edit_unit < 0)
- return -1;
-
- return next_ofs;
-}
-
-static int mxf_compute_sample_count(MXFContext *mxf, int stream_index,
- uint64_t *sample_count)
+static int64_t mxf_compute_sample_count(MXFContext *mxf, AVStream *st,
+ int64_t edit_unit)
{
int i, total = 0, size = 0;
- AVStream *st = mxf->fc->streams[stream_index];
MXFTrack *track = st->priv_data;
AVRational time_base = av_inv_q(track->edit_rate);
AVRational sample_rate = av_inv_q(st->time_base);
const MXFSamplesPerFrame *spf = NULL;
+ int64_t sample_count;
+
+ // For non-audio sample_count equals current edit unit
+ if (st->codecpar->codec_type != AVMEDIA_TYPE_AUDIO)
+ return edit_unit;
if ((sample_rate.num / sample_rate.den) == 48000)
spf = ff_mxf_get_samples_per_frame(mxf->fc, time_base);
if (!spf) {
int remainder = (sample_rate.num * time_base.num) %
(time_base.den * sample_rate.den);
- *sample_count = av_rescale_q(mxf->current_edit_unit, sample_rate, track->edit_rate);
if (remainder)
av_log(mxf->fc, AV_LOG_WARNING,
"seeking detected on stream #%d with time base (%d/%d) and "
"sample rate (%d/%d), audio pts won't be accurate.\n",
- stream_index, time_base.num, time_base.den,
+ st->index, time_base.num, time_base.den,
sample_rate.num, sample_rate.den);
- return 0;
+ return av_rescale_q(edit_unit, sample_rate, track->edit_rate);
}
while (spf->samples_per_frame[size]) {
@@ -3189,12 +3215,55 @@ static int mxf_compute_sample_count(MXFContext *mxf, int stream_index,
av_assert2(size);
- *sample_count = (mxf->current_edit_unit / size) * (uint64_t)total;
- for (i = 0; i < mxf->current_edit_unit % size; i++) {
- *sample_count += spf->samples_per_frame[i];
+ sample_count = (edit_unit / size) * (uint64_t)total;
+ for (i = 0; i < edit_unit % size; i++) {
+ sample_count += spf->samples_per_frame[i];
}
- return 0;
+ return sample_count;
+}
+
+/**
+ * Make sure track->sample_count is correct based on what offset we're currently at.
+ * Also determine the next edit unit (or packet) offset.
+ * @return next_ofs if OK, <0 on error
+ */
+static int64_t mxf_set_current_edit_unit(MXFContext *mxf, AVStream *st, int64_t current_offset, int resync)
+{
+ int64_t next_ofs = -1;
+ MXFTrack *track = st->priv_data;
+ int64_t edit_unit = av_rescale_q(track->sample_count, st->time_base, av_inv_q(track->edit_rate));
+ int64_t new_edit_unit;
+ MXFIndexTable *t = mxf_find_index_table(mxf, track->index_sid);
+
+ if (!t || track->wrapping == UnknownWrapped)
+ return -1;
+
+ if (mxf_edit_unit_absolute_offset(mxf, t, edit_unit + track->edit_units_per_packet, track->edit_rate, NULL, &next_ofs, NULL, 0) < 0 &&
+ (next_ofs = mxf_essence_container_end(mxf, t->body_sid)) <= 0) {
+ av_log(mxf->fc, AV_LOG_ERROR, "unable to compute the size of the last packet\n");
+ return -1;
+ }
+
+ /* check if the next edit unit offset (next_ofs) starts ahead of current_offset */
+ if (next_ofs > current_offset)
+ return next_ofs;
+
+ if (!resync) {
+ av_log(mxf->fc, AV_LOG_ERROR, "cannot find current edit unit for stream %d, invalid index?\n", st->index);
+ return -1;
+ }
+
+ if (mxf_get_next_track_edit_unit(mxf, track, current_offset + 1, &new_edit_unit) < 0 || new_edit_unit <= 0) {
+ av_log(mxf->fc, AV_LOG_ERROR, "failed to find next track edit unit in stream %d\n", st->index);
+ return -1;
+ }
+
+ new_edit_unit--;
+ track->sample_count = mxf_compute_sample_count(mxf, st, new_edit_unit);
+ av_log(mxf->fc, AV_LOG_WARNING, "edit unit sync lost on stream %d, jumping from %"PRId64" to %"PRId64"\n", st->index, edit_unit, new_edit_unit);
+
+ return mxf_set_current_edit_unit(mxf, st, current_offset, 0);
}
static int mxf_set_audio_pts(MXFContext *mxf, AVCodecParameters *par,
@@ -3216,56 +3285,73 @@ static int mxf_set_audio_pts(MXFContext *mxf, AVCodecParameters *par,
return 0;
}
-static int mxf_set_pts(MXFContext *mxf, AVStream *st, AVPacket *pkt, int64_t next_ofs)
+static int mxf_set_pts(MXFContext *mxf, AVStream *st, AVPacket *pkt)
{
AVCodecParameters *par = st->codecpar;
MXFTrack *track = st->priv_data;
- if (par->codec_type == AVMEDIA_TYPE_VIDEO && (next_ofs >= 0 || next_ofs == -2 && st->duration == mxf->current_edit_unit + 1)) {
- /* mxf->current_edit_unit good - see if we have an
- * index table to derive timestamps from */
- MXFIndexTable *t = &mxf->index_tables[0];
+ if (par->codec_type == AVMEDIA_TYPE_VIDEO) {
+ /* see if we have an index table to derive timestamps from */
+ MXFIndexTable *t = mxf_find_index_table(mxf, track->index_sid);
- if (mxf->nb_index_tables >= 1 && mxf->current_edit_unit < t->nb_ptses) {
- pkt->dts = mxf->current_edit_unit + t->first_dts;
- pkt->pts = t->ptses[mxf->current_edit_unit];
+ if (t && track->sample_count < t->nb_ptses) {
+ pkt->dts = track->sample_count + t->first_dts;
+ pkt->pts = t->ptses[track->sample_count];
} else if (track->intra_only) {
/* intra-only -> PTS = EditUnit.
* let utils.c figure out DTS since it can be < PTS if low_delay = 0 (Sony IMX30) */
- pkt->pts = mxf->current_edit_unit;
+ pkt->pts = track->sample_count;
}
+ track->sample_count++;
} else if (par->codec_type == AVMEDIA_TYPE_AUDIO) {
int ret = mxf_set_audio_pts(mxf, par, pkt);
if (ret < 0)
return ret;
+ } else if (track) {
+ track->sample_count++;
}
return 0;
}
-static int mxf_read_packet_old(AVFormatContext *s, AVPacket *pkt)
+static int mxf_read_packet(AVFormatContext *s, AVPacket *pkt)
{
KLVPacket klv;
MXFContext *mxf = s->priv_data;
int ret;
- while ((ret = klv_read_packet(&klv, s->pb)) == 0) {
- PRINT_KEY(s, "read packet", klv.key);
- av_log(s, AV_LOG_TRACE, "size %"PRIu64" offset %#"PRIx64"\n", klv.length, klv.offset);
- if (IS_KLV_KEY(klv.key, mxf_encrypted_triplet_key)) {
- ret = mxf_decrypt_triplet(s, pkt, &klv);
- if (ret < 0) {
- av_log(s, AV_LOG_ERROR, "invalid encoded triplet\n");
- return ret;
+ while (1) {
+ int64_t max_data_size;
+ int64_t pos = avio_tell(s->pb);
+
+ if (pos < mxf->current_klv_data.next_klv - mxf->current_klv_data.length || pos >= mxf->current_klv_data.next_klv) {
+ mxf->current_klv_data = (KLVPacket){{0}};
+ ret = klv_read_packet(&klv, s->pb);
+ if (ret < 0)
+ break;
+ max_data_size = klv.length;
+ pos = klv.next_klv - klv.length;
+ PRINT_KEY(s, "read packet", klv.key);
+ av_log(s, AV_LOG_TRACE, "size %"PRIu64" offset %#"PRIx64"\n", klv.length, klv.offset);
+ if (IS_KLV_KEY(klv.key, mxf_encrypted_triplet_key)) {
+ ret = mxf_decrypt_triplet(s, pkt, &klv);
+ if (ret < 0) {
+ av_log(s, AV_LOG_ERROR, "invalid encoded triplet\n");
+ return ret;
+ }
+ return 0;
}
- return 0;
+ } else {
+ klv = mxf->current_klv_data;
+ max_data_size = klv.next_klv - pos;
}
if (IS_KLV_KEY(klv.key, mxf_essence_element_key) ||
IS_KLV_KEY(klv.key, mxf_canopus_essence_element_key) ||
IS_KLV_KEY(klv.key, mxf_avid_essence_element_key)) {
int body_sid = find_body_sid_by_offset(mxf, klv.offset);
int index = mxf_get_stream_index(s, &klv, body_sid);
- int64_t next_ofs, next_klv;
+ int64_t next_ofs;
AVStream *st;
+ MXFTrack *track;
if (index < 0) {
av_log(s, AV_LOG_ERROR,
@@ -3275,22 +3361,38 @@ static int mxf_read_packet_old(AVFormatContext *s, AVPacket *pkt)
}
st = s->streams[index];
+ track = st->priv_data;
if (s->streams[index]->discard == AVDISCARD_ALL)
goto skip;
- next_klv = avio_tell(s->pb) + klv.length;
- next_ofs = mxf_set_current_edit_unit(mxf, klv.offset);
-
- if (next_ofs >= 0 && next_klv > next_ofs) {
- /* if this check is hit then it's possible OPAtom was treated as OP1a
- * truncate the packet since it's probably very large (>2 GiB is common) */
- avpriv_request_sample(s,
- "OPAtom misinterpreted as OP1a? "
- "KLV for edit unit %"PRId64" extending into "
- "next edit unit",
- mxf->current_edit_unit);
- klv.length = next_ofs - avio_tell(s->pb);
+ next_ofs = mxf_set_current_edit_unit(mxf, st, pos, 1);
+
+ if (track->wrapping != FrameWrapped) {
+ int64_t size;
+
+ if (next_ofs <= 0) {
+ // If we have no way to packetize the data, then return it in chunks...
+ if (klv.next_klv - klv.length == pos && max_data_size > MXF_MAX_CHUNK_SIZE) {
+ st->need_parsing = AVSTREAM_PARSE_FULL;
+ avpriv_request_sample(s, "Huge KLV without proper index in non-frame wrapped essence");
+ }
+ size = FFMIN(max_data_size, MXF_MAX_CHUNK_SIZE);
+ } else {
+ if ((size = next_ofs - pos) <= 0) {
+ av_log(s, AV_LOG_ERROR, "bad size: %"PRId64"\n", size);
+ ret = AVERROR_INVALIDDATA;
+ goto skip;
+ }
+ // We must not overread, because the next edit unit might be in another KLV
+ if (size > max_data_size)
+ size = max_data_size;
+ }
+
+ mxf->current_klv_data = klv;
+ klv.offset = pos;
+ klv.length = size;
+ klv.next_klv = klv.offset + klv.length;
}
/* check for 8 channels AES3 element */
@@ -3299,93 +3401,38 @@ static int mxf_read_packet_old(AVFormatContext *s, AVPacket *pkt)
pkt, klv.length);
if (ret < 0) {
av_log(s, AV_LOG_ERROR, "error reading D-10 aes3 frame\n");
+ mxf->current_klv_data = (KLVPacket){{0}};
return ret;
}
} else {
ret = av_get_packet(s->pb, pkt, klv.length);
- if (ret < 0)
+ if (ret < 0) {
+ mxf->current_klv_data = (KLVPacket){{0}};
return ret;
+ }
}
pkt->stream_index = index;
pkt->pos = klv.offset;
- ret = mxf_set_pts(mxf, st, pkt, next_ofs);
- if (ret < 0)
+ ret = mxf_set_pts(mxf, st, pkt);
+ if (ret < 0) {
+ mxf->current_klv_data = (KLVPacket){{0}};
return ret;
+ }
/* seek for truncated packets */
- avio_seek(s->pb, next_klv, SEEK_SET);
+ avio_seek(s->pb, klv.next_klv, SEEK_SET);
return 0;
- } else
+ } else {
skip:
- avio_skip(s->pb, klv.length);
+ avio_skip(s->pb, max_data_size);
+ mxf->current_klv_data = (KLVPacket){{0}};
+ }
}
return avio_feof(s->pb) ? AVERROR_EOF : ret;
}
-static int mxf_read_packet(AVFormatContext *s, AVPacket *pkt)
-{
- MXFContext *mxf = s->priv_data;
- int ret, size;
- int64_t ret64, pos, next_pos;
- AVStream *st;
- MXFIndexTable *t;
- MXFTrack *track;
- int edit_units;
-
- if (mxf->op != OPAtom)
- return mxf_read_packet_old(s, pkt);
-
- // If we have no streams then we basically are at EOF
- st = mxf_get_opatom_stream(mxf);
- if (!st)
- return AVERROR_EOF;
-
- track = st->priv_data;
-
- /* OPAtom - clip wrapped demuxing */
- /* NOTE: mxf_read_header() makes sure nb_index_tables > 0 for OPAtom */
- t = &mxf->index_tables[0];
-
- if (mxf->current_edit_unit >= track->original_duration)
- return AVERROR_EOF;
-
- edit_units = FFMIN(mxf->edit_units_per_packet, track->original_duration - mxf->current_edit_unit);
-
- if ((ret = mxf_edit_unit_absolute_offset(mxf, t, mxf->current_edit_unit, NULL, &pos, 1)) < 0)
- return ret;
-
- /* compute size by finding the next edit unit or the end of the essence container
- * not pretty, but it works */
- if ((ret = mxf_edit_unit_absolute_offset(mxf, t, mxf->current_edit_unit + edit_units, NULL, &next_pos, 0)) < 0 &&
- (next_pos = mxf_essence_container_end(mxf, t->body_sid)) <= 0) {
- av_log(s, AV_LOG_ERROR, "unable to compute the size of the last packet\n");
- return AVERROR_INVALIDDATA;
- }
-
- if ((size = next_pos - pos) <= 0) {
- av_log(s, AV_LOG_ERROR, "bad size: %i\n", size);
- return AVERROR_INVALIDDATA;
- }
-
- if ((ret64 = avio_seek(s->pb, pos, SEEK_SET)) < 0)
- return ret64;
-
- if ((size = av_get_packet(s->pb, pkt, size)) < 0)
- return size;
-
- pkt->stream_index = st->index;
-
- ret = mxf_set_pts(mxf, st, pkt, next_pos);
- if (ret < 0)
- return ret;
-
- mxf->current_edit_unit += edit_units;
-
- return 0;
-}
-
static int mxf_read_close(AVFormatContext *s)
{
MXFContext *mxf = s->priv_data;
@@ -3475,8 +3522,10 @@ static int mxf_read_seek(AVFormatContext *s, int stream_index, int64_t sample_ti
return seekpos;
ff_update_cur_dts(s, st, sample_time);
- mxf->current_edit_unit = sample_time;
+ mxf->current_klv_data = (KLVPacket){{0}};
} else {
+ MXFPartition *partition;
+
t = &mxf->index_tables[0];
if (t->index_sid != source_track->index_sid) {
/* If the first index table does not belong to the stream, then find a stream which does belong to the index table */
@@ -3519,11 +3568,23 @@ static int mxf_read_seek(AVFormatContext *s, int stream_index, int64_t sample_ti
sample_time = FFMIN(sample_time, source_track->original_duration - 1);
}
- if ((ret = mxf_edit_unit_absolute_offset(mxf, t, sample_time, &sample_time, &seekpos, 1)) < 0)
+ if (source_track->wrapping == UnknownWrapped)
+ av_log(mxf->fc, AV_LOG_WARNING, "attempted seek in an UnknownWrapped essence\n");
+
+ if ((ret = mxf_edit_unit_absolute_offset(mxf, t, sample_time, source_track->edit_rate, &sample_time, &seekpos, &partition, 1)) < 0)
return ret;
ff_update_cur_dts(s, st, sample_time);
- mxf->current_edit_unit = sample_time;
+ if (source_track->wrapping == ClipWrapped) {
+ KLVPacket klv = partition->first_essence_klv;
+ if (seekpos < klv.next_klv - klv.length || seekpos >= klv.next_klv) {
+ av_log(mxf->fc, AV_LOG_ERROR, "attempted seek out of clip wrapped KLV\n");
+ return AVERROR_INVALIDDATA;
+ }
+ mxf->current_klv_data = klv;
+ } else {
+ mxf->current_klv_data = (KLVPacket){{0}};
+ }
avio_seek(s->pb, seekpos, SEEK_SET);
}
@@ -3531,19 +3592,11 @@ static int mxf_read_seek(AVFormatContext *s, int stream_index, int64_t sample_ti
for (i = 0; i < s->nb_streams; i++) {
AVStream *cur_st = s->streams[i];
MXFTrack *cur_track = cur_st->priv_data;
- if (cur_st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) {
- int64_t track_edit_unit;
- if (st != cur_st && mxf_get_next_track_edit_unit(mxf, cur_track, seekpos, &track_edit_unit) >= 0) {
- cur_track->sample_count = av_rescale_q(track_edit_unit,
- av_inv_q(cur_track->edit_rate),
- cur_st->time_base);
- } else {
- uint64_t current_sample_count = 0;
- ret = mxf_compute_sample_count(mxf, i, &current_sample_count);
- if (ret < 0)
- return ret;
- cur_track->sample_count = current_sample_count;
- }
+ if (cur_track) {
+ int64_t track_edit_unit = sample_time;
+ if (st != cur_st)
+ mxf_get_next_track_edit_unit(mxf, cur_track, seekpos, &track_edit_unit);
+ cur_track->sample_count = mxf_compute_sample_count(mxf, cur_st, track_edit_unit);
}
}
return 0;
diff --git a/chromium/third_party/ffmpeg/libavformat/options_table.h b/chromium/third_party/ffmpeg/libavformat/options_table.h
index b7a5b3c054b..f2f077b34f9 100644
--- a/chromium/third_party/ffmpeg/libavformat/options_table.h
+++ b/chromium/third_party/ffmpeg/libavformat/options_table.h
@@ -52,7 +52,9 @@ static const AVOption avformat_options[] = {
{"keepside", "deprecated, does nothing", 0, AV_OPT_TYPE_CONST, {.i64 = AVFMT_FLAG_KEEP_SIDE_DATA }, INT_MIN, INT_MAX, D, "fflags"},
#endif
{"fastseek", "fast but inaccurate seeks", 0, AV_OPT_TYPE_CONST, {.i64 = AVFMT_FLAG_FAST_SEEK }, INT_MIN, INT_MAX, D, "fflags"},
-{"latm", "enable RTP MP4A-LATM payload", 0, AV_OPT_TYPE_CONST, {.i64 = AVFMT_FLAG_MP4A_LATM }, INT_MIN, INT_MAX, E, "fflags"},
+#if FF_API_LAVF_MP4A_LATM
+{"latm", "deprecated, does nothing", 0, AV_OPT_TYPE_CONST, {.i64 = AVFMT_FLAG_MP4A_LATM }, INT_MIN, INT_MAX, E, "fflags"},
+#endif
{"nobuffer", "reduce the latency introduced by optional buffering", 0, AV_OPT_TYPE_CONST, {.i64 = AVFMT_FLAG_NOBUFFER }, 0, INT_MAX, D, "fflags"},
{"bitexact", "do not write random/volatile data", 0, AV_OPT_TYPE_CONST, { .i64 = AVFMT_FLAG_BITEXACT }, 0, 0, E, "fflags" },
{"shortest", "stop muxing with the shortest stream", 0, AV_OPT_TYPE_CONST, { .i64 = AVFMT_FLAG_SHORTEST }, 0, 0, E, "fflags" },
diff --git a/chromium/third_party/ffmpeg/libavformat/pva.c b/chromium/third_party/ffmpeg/libavformat/pva.c
index 16381db9054..04ae8e2800c 100644
--- a/chromium/third_party/ffmpeg/libavformat/pva.c
+++ b/chromium/third_party/ffmpeg/libavformat/pva.c
@@ -134,6 +134,10 @@ recover:
pes_flags = avio_rb16(pb);
pes_header_data_length = avio_r8(pb);
+ if (avio_feof(pb)) {
+ return AVERROR_EOF;
+ }
+
if (pes_signal != 1 || pes_header_data_length == 0) {
pva_log(s, AV_LOG_WARNING, "expected non empty signaled PES packet, "
"trying to recover\n");
diff --git a/chromium/third_party/ffmpeg/libavformat/riff.c b/chromium/third_party/ffmpeg/libavformat/riff.c
index 89117250d4e..0950415c26f 100644
--- a/chromium/third_party/ffmpeg/libavformat/riff.c
+++ b/chromium/third_party/ffmpeg/libavformat/riff.c
@@ -586,6 +586,7 @@ const struct AVCodecTag *avformat_get_riff_audio_tags(void)
const AVCodecGuid ff_codec_wav_guids[] = {
{ AV_CODEC_ID_AC3, { 0x2C, 0x80, 0x6D, 0xE0, 0x46, 0xDB, 0xCF, 0x11, 0xB4, 0xD1, 0x00, 0x80, 0x5F, 0x6C, 0xBB, 0xEA } },
{ AV_CODEC_ID_ATRAC3P, { 0xBF, 0xAA, 0x23, 0xE9, 0x58, 0xCB, 0x71, 0x44, 0xA1, 0x19, 0xFF, 0xFA, 0x01, 0xE4, 0xCE, 0x62 } },
+ { AV_CODEC_ID_ATRAC9, { 0xD2, 0x42, 0xE1, 0x47, 0xBA, 0x36, 0x8D, 0x4D, 0x88, 0xFC, 0x61, 0x65, 0x4F, 0x8C, 0x83, 0x6C } },
{ AV_CODEC_ID_EAC3, { 0xAF, 0x87, 0xFB, 0xA7, 0x02, 0x2D, 0xFB, 0x42, 0xA4, 0xD4, 0x05, 0xCD, 0x93, 0x84, 0x3B, 0xDD } },
{ AV_CODEC_ID_MP2, { 0x2B, 0x80, 0x6D, 0xE0, 0x46, 0xDB, 0xCF, 0x11, 0xB4, 0xD1, 0x00, 0x80, 0x5F, 0x6C, 0xBB, 0xEA } },
{ AV_CODEC_ID_NONE }
diff --git a/chromium/third_party/ffmpeg/libavformat/rmdec.c b/chromium/third_party/ffmpeg/libavformat/rmdec.c
index ac61723c66a..0216003e88e 100644
--- a/chromium/third_party/ffmpeg/libavformat/rmdec.c
+++ b/chromium/third_party/ffmpeg/libavformat/rmdec.c
@@ -522,7 +522,7 @@ static int rm_read_multi(AVFormatContext *s, AVIOContext *pb,
size2 = avio_rb32(pb);
ret = ff_rm_read_mdpr_codecdata(s, s->pb, st2, st2->priv_data,
- size2, mime);
+ size2, NULL);
if (ret < 0)
return ret;
}
diff --git a/chromium/third_party/ffmpeg/libavformat/rtpenc_chain.c b/chromium/third_party/ffmpeg/libavformat/rtpenc_chain.c
index e69fdc27cfb..d3c1bc96dce 100644
--- a/chromium/third_party/ffmpeg/libavformat/rtpenc_chain.c
+++ b/chromium/third_party/ffmpeg/libavformat/rtpenc_chain.c
@@ -58,7 +58,7 @@ int ff_rtp_chain_mux_open(AVFormatContext **out, AVFormatContext *s,
rtpctx->max_delay = s->max_delay;
/* Copy other stream parameters. */
rtpctx->streams[0]->sample_aspect_ratio = st->sample_aspect_ratio;
- rtpctx->flags |= s->flags & (AVFMT_FLAG_MP4A_LATM | AVFMT_FLAG_BITEXACT);
+ rtpctx->flags |= s->flags & AVFMT_FLAG_BITEXACT;
/* Get the payload type from the codec */
if (st->id < RTP_PT_PRIVATE)
diff --git a/chromium/third_party/ffmpeg/libavformat/tedcaptionsdec.c b/chromium/third_party/ffmpeg/libavformat/tedcaptionsdec.c
index 774d4993b5f..cd6ab0c24b7 100644
--- a/chromium/third_party/ffmpeg/libavformat/tedcaptionsdec.c
+++ b/chromium/third_party/ffmpeg/libavformat/tedcaptionsdec.c
@@ -94,7 +94,7 @@ static int parse_string(AVIOContext *pb, int *cur_byte, AVBPrint *bp, int full)
{
int ret;
- av_bprint_init(bp, 0, full ? -1 : 1);
+ av_bprint_init(bp, 0, full ? AV_BPRINT_SIZE_UNLIMITED : AV_BPRINT_SIZE_AUTOMATIC);
ret = expect_byte(pb, cur_byte, '"');
if (ret < 0)
goto fail;
diff --git a/chromium/third_party/ffmpeg/libavformat/version.h b/chromium/third_party/ffmpeg/libavformat/version.h
index b0507474c1a..57b6599e71b 100644
--- a/chromium/third_party/ffmpeg/libavformat/version.h
+++ b/chromium/third_party/ffmpeg/libavformat/version.h
@@ -33,7 +33,7 @@
// Also please add any ticket numbers that you believe might be affected here
#define LIBAVFORMAT_VERSION_MAJOR 58
#define LIBAVFORMAT_VERSION_MINOR 17
-#define LIBAVFORMAT_VERSION_MICRO 100
+#define LIBAVFORMAT_VERSION_MICRO 101
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
LIBAVFORMAT_VERSION_MINOR, \
@@ -97,6 +97,9 @@
#ifndef FF_API_DASH_MIN_SEG_DURATION
#define FF_API_DASH_MIN_SEG_DURATION (LIBAVFORMAT_VERSION_MAJOR < 59)
#endif
+#ifndef FF_API_LAVF_MP4A_LATM
+#define FF_API_LAVF_MP4A_LATM (LIBAVFORMAT_VERSION_MAJOR < 59)
+#endif
#ifndef FF_API_R_FRAME_RATE
diff --git a/chromium/third_party/ffmpeg/libavformat/yuv4mpegdec.c b/chromium/third_party/ffmpeg/libavformat/yuv4mpegdec.c
index eff7fc518e4..855fadbb31a 100644
--- a/chromium/third_party/ffmpeg/libavformat/yuv4mpegdec.c
+++ b/chromium/third_party/ffmpeg/libavformat/yuv4mpegdec.c
@@ -41,6 +41,7 @@ static int yuv4_read_header(AVFormatContext *s)
enum AVPixelFormat pix_fmt = AV_PIX_FMT_NONE, alt_pix_fmt = AV_PIX_FMT_NONE;
enum AVChromaLocation chroma_sample_location = AVCHROMA_LOC_UNSPECIFIED;
enum AVFieldOrder field_order = AV_FIELD_UNKNOWN;
+ enum AVColorRange color_range = AVCOL_RANGE_UNSPECIFIED;
AVStream *st;
for (i = 0; i < MAX_YUV4_HEADER; i++) {
@@ -220,6 +221,12 @@ static int yuv4_read_header(AVFormatContext *s)
alt_pix_fmt = AV_PIX_FMT_YUV422P;
else if (strncmp("444", tokstart, 3) == 0)
alt_pix_fmt = AV_PIX_FMT_YUV444P;
+ } else if (strncmp("COLORRANGE=", tokstart, 11) == 0) {
+ tokstart += 11;
+ if (strncmp("FULL",tokstart, 4) == 0)
+ color_range = AVCOL_RANGE_JPEG;
+ else if (strncmp("LIMITED", tokstart, 7) == 0)
+ color_range = AVCOL_RANGE_MPEG;
}
while (tokstart < header_end && *tokstart != 0x20)
tokstart++;
@@ -263,6 +270,7 @@ static int yuv4_read_header(AVFormatContext *s)
st->codecpar->codec_id = AV_CODEC_ID_RAWVIDEO;
st->sample_aspect_ratio = (AVRational){ aspectn, aspectd };
st->codecpar->chroma_location = chroma_sample_location;
+ st->codecpar->color_range = color_range;
st->codecpar->field_order = field_order;
s->packet_size = av_image_get_buffer_size(st->codecpar->format, width, height, 1) + Y4M_FRAME_MAGIC_LEN;
if ((int) s->packet_size < 0)
diff --git a/chromium/third_party/ffmpeg/libavformat/yuv4mpegenc.c b/chromium/third_party/ffmpeg/libavformat/yuv4mpegenc.c
index 44f40bbad98..e84dbf95687 100644
--- a/chromium/third_party/ffmpeg/libavformat/yuv4mpegenc.c
+++ b/chromium/third_party/ffmpeg/libavformat/yuv4mpegenc.c
@@ -33,6 +33,7 @@ static int yuv4_generate_header(AVFormatContext *s, char* buf)
int raten, rated, aspectn, aspectd, n;
char inter;
const char *colorspace = "";
+ const char *colorrange = "";
int field_order;
st = s->streams[0];
@@ -57,6 +58,17 @@ static int yuv4_generate_header(AVFormatContext *s, char* buf)
FF_ENABLE_DEPRECATION_WARNINGS
#endif
+ switch(st->codecpar->color_range) {
+ case AVCOL_RANGE_MPEG:
+ colorrange = " XCOLORRANGE=LIMITED";
+ break;
+ case AVCOL_RANGE_JPEG:
+ colorrange = " XCOLORRANGE=FULL";
+ break;
+ default:
+ break;
+ }
+
switch (field_order) {
case AV_FIELD_TB:
case AV_FIELD_TT: inter = 't'; break;
@@ -84,6 +96,18 @@ static int yuv4_generate_header(AVFormatContext *s, char* buf)
case AV_PIX_FMT_YUV411P:
colorspace = " C411 XYSCSS=411";
break;
+ case AV_PIX_FMT_YUVJ420P:
+ colorspace = " C420jpeg XYSCSS=420JPEG";
+ colorrange = " XCOLORRANGE=FULL";
+ break;
+ case AV_PIX_FMT_YUVJ422P:
+ colorspace = " C422 XYSCSS=422";
+ colorrange = " XCOLORRANGE=FULL";
+ break;
+ case AV_PIX_FMT_YUVJ444P:
+ colorspace = " C444 XYSCSS=444";
+ colorrange = " XCOLORRANGE=FULL";
+ break;
case AV_PIX_FMT_YUV420P:
switch (st->codecpar->chroma_location) {
case AVCHROMA_LOC_TOPLEFT: colorspace = " C420paldv XYSCSS=420PALDV"; break;
@@ -145,13 +169,14 @@ static int yuv4_generate_header(AVFormatContext *s, char* buf)
}
/* construct stream header, if this is the first frame */
- n = snprintf(buf, Y4M_LINE_MAX, "%s W%d H%d F%d:%d I%c A%d:%d%s\n",
+ n = snprintf(buf, Y4M_LINE_MAX, "%s W%d H%d F%d:%d I%c A%d:%d%s%s\n",
Y4M_MAGIC, width, height, raten, rated, inter,
- aspectn, aspectd, colorspace);
+ aspectn, aspectd, colorspace, colorrange);
return n;
}
+
static int yuv4_write_packet(AVFormatContext *s, AVPacket *pkt)
{
AVStream *st = s->streams[pkt->stream_index];
@@ -192,6 +217,10 @@ static int yuv4_write_packet(AVFormatContext *s, AVPacket *pkt)
case AV_PIX_FMT_YUV420P:
case AV_PIX_FMT_YUV422P:
case AV_PIX_FMT_YUV444P:
+ // TODO: remove YUVJ pixel formats when they are completely removed from the codebase.
+ case AV_PIX_FMT_YUVJ420P:
+ case AV_PIX_FMT_YUVJ422P:
+ case AV_PIX_FMT_YUVJ444P:
break;
case AV_PIX_FMT_GRAY9:
case AV_PIX_FMT_GRAY10:
@@ -271,6 +300,10 @@ static int yuv4_write_header(AVFormatContext *s)
case AV_PIX_FMT_YUV420P:
case AV_PIX_FMT_YUV422P:
case AV_PIX_FMT_YUV444P:
+ // TODO: remove YUVJ pixel formats when they are completely removed from the codebase.
+ case AV_PIX_FMT_YUVJ420P:
+ case AV_PIX_FMT_YUVJ422P:
+ case AV_PIX_FMT_YUVJ444P:
break;
case AV_PIX_FMT_GRAY9:
case AV_PIX_FMT_GRAY10:
diff --git a/chromium/third_party/ffmpeg/libavutil/Makefile b/chromium/third_party/ffmpeg/libavutil/Makefile
index d0632f16a6b..9ed24cfc822 100644
--- a/chromium/third_party/ffmpeg/libavutil/Makefile
+++ b/chromium/third_party/ffmpeg/libavutil/Makefile
@@ -200,6 +200,7 @@ TESTPROGS = adler32 \
des \
dict \
display \
+ encryption_info \
error \
eval \
file \
diff --git a/chromium/third_party/ffmpeg/libavutil/common.h b/chromium/third_party/ffmpeg/libavutil/common.h
index 0fffa67714e..8db02911705 100644
--- a/chromium/third_party/ffmpeg/libavutil/common.h
+++ b/chromium/third_party/ffmpeg/libavutil/common.h
@@ -228,7 +228,7 @@ static av_always_inline av_const int av_clip_intp2_c(int a, int p)
*/
static av_always_inline av_const unsigned av_clip_uintp2_c(int a, int p)
{
- if (a & ~((1<<p) - 1)) return -a >> 31 & ((1<<p) - 1);
+ if (a & ~((1<<p) - 1)) return (~a) >> 31 & ((1<<p) - 1);
else return a;
}
diff --git a/chromium/third_party/ffmpeg/libavutil/encryption_info.c b/chromium/third_party/ffmpeg/libavutil/encryption_info.c
index 9cb0f060937..b399e07e668 100644
--- a/chromium/third_party/ffmpeg/libavutil/encryption_info.c
+++ b/chromium/third_party/ffmpeg/libavutil/encryption_info.c
@@ -163,13 +163,16 @@ uint8_t *av_encryption_info_add_side_data(const AVEncryptionInfo *info, size_t *
}
// The format of the AVEncryptionInitInfo side data:
-// u32be system_id_size
-// u32be num_key_ids
-// u32be key_id_size
-// u32be data_size
-// u8[system_id_size] system_id
-// u8[key_id_size][num_key_id] key_ids
-// u8[data_size] data
+// u32be init_info_count
+// {
+// u32be system_id_size
+// u32be num_key_ids
+// u32be key_id_size
+// u32be data_size
+// u8[system_id_size] system_id
+// u8[key_id_size][num_key_id] key_ids
+// u8[data_size] data
+// }[init_info_count]
#define FF_ENCRYPTION_INIT_INFO_EXTRA 16
@@ -218,6 +221,7 @@ void av_encryption_init_info_free(AVEncryptionInitInfo *info)
for (i = 0; i < info->num_key_ids; i++) {
av_free(info->key_ids[i]);
}
+ av_encryption_init_info_free(info->next);
av_free(info->system_id);
av_free(info->key_ids);
av_free(info->data);
@@ -228,71 +232,111 @@ void av_encryption_init_info_free(AVEncryptionInitInfo *info)
AVEncryptionInitInfo *av_encryption_init_info_get_side_data(
const uint8_t *side_data, size_t side_data_size)
{
- AVEncryptionInitInfo *info;
- uint64_t system_id_size, num_key_ids, key_id_size, data_size, i;
+ // |ret| tracks the front of the list, |info| tracks the back.
+ AVEncryptionInitInfo *ret = NULL, *info, *temp_info;
+ uint64_t system_id_size, num_key_ids, key_id_size, data_size, i, j;
+ uint64_t init_info_count;
- if (!side_data || side_data_size < FF_ENCRYPTION_INIT_INFO_EXTRA)
+ if (!side_data || side_data_size < 4)
return NULL;
- system_id_size = AV_RB32(side_data);
- num_key_ids = AV_RB32(side_data + 4);
- key_id_size = AV_RB32(side_data + 8);
- data_size = AV_RB32(side_data + 12);
+ init_info_count = AV_RB32(side_data);
+ side_data += 4;
+ side_data_size -= 4;
+ for (i = 0; i < init_info_count; i++) {
+ if (side_data_size < FF_ENCRYPTION_INIT_INFO_EXTRA) {
+ av_encryption_init_info_free(ret);
+ return NULL;
+ }
- // UINT32_MAX + UINT32_MAX + UINT32_MAX * UINT32_MAX == UINT64_MAX
- if (side_data_size - FF_ENCRYPTION_INIT_INFO_EXTRA < system_id_size + data_size + num_key_ids * key_id_size)
- return NULL;
+ system_id_size = AV_RB32(side_data);
+ num_key_ids = AV_RB32(side_data + 4);
+ key_id_size = AV_RB32(side_data + 8);
+ data_size = AV_RB32(side_data + 12);
- info = av_encryption_init_info_alloc(system_id_size, num_key_ids, key_id_size, data_size);
- if (!info)
- return NULL;
+ // UINT32_MAX + UINT32_MAX + UINT32_MAX * UINT32_MAX == UINT64_MAX
+ if (side_data_size - FF_ENCRYPTION_INIT_INFO_EXTRA < system_id_size + data_size + num_key_ids * key_id_size) {
+ av_encryption_init_info_free(ret);
+ return NULL;
+ }
+ side_data += FF_ENCRYPTION_INIT_INFO_EXTRA;
+ side_data_size -= FF_ENCRYPTION_INIT_INFO_EXTRA;
+
+ temp_info = av_encryption_init_info_alloc(system_id_size, num_key_ids, key_id_size, data_size);
+ if (!temp_info) {
+ av_encryption_init_info_free(ret);
+ return NULL;
+ }
+ if (i == 0) {
+ info = ret = temp_info;
+ } else {
+ info->next = temp_info;
+ info = temp_info;
+ }
- memcpy(info->system_id, side_data + 16, system_id_size);
- side_data += system_id_size + 16;
- for (i = 0; i < num_key_ids; i++) {
- memcpy(info->key_ids[i], side_data, key_id_size);
- side_data += key_id_size;
+ memcpy(info->system_id, side_data, system_id_size);
+ side_data += system_id_size;
+ side_data_size -= system_id_size;
+ for (j = 0; j < num_key_ids; j++) {
+ memcpy(info->key_ids[j], side_data, key_id_size);
+ side_data += key_id_size;
+ side_data_size -= key_id_size;
+ }
+ memcpy(info->data, side_data, data_size);
+ side_data += data_size;
+ side_data_size -= data_size;
}
- memcpy(info->data, side_data, data_size);
- return info;
+ return ret;
}
uint8_t *av_encryption_init_info_add_side_data(const AVEncryptionInitInfo *info, size_t *side_data_size)
{
+ const AVEncryptionInitInfo *cur_info;
uint8_t *buffer, *cur_buffer;
- uint32_t i, max_size;
-
- if (UINT32_MAX - FF_ENCRYPTION_INIT_INFO_EXTRA < info->system_id_size ||
- UINT32_MAX - FF_ENCRYPTION_INIT_INFO_EXTRA - info->system_id_size < info->data_size) {
- return NULL;
- }
-
- if (info->num_key_ids) {
- max_size = UINT32_MAX - FF_ENCRYPTION_INIT_INFO_EXTRA - info->system_id_size - info->data_size;
- if (max_size / info->num_key_ids < info->key_id_size)
+ uint32_t i, init_info_count;
+ uint64_t temp_side_data_size;
+
+ temp_side_data_size = 4;
+ init_info_count = 0;
+ for (cur_info = info; cur_info; cur_info = cur_info->next) {
+ temp_side_data_size += (uint64_t)FF_ENCRYPTION_INIT_INFO_EXTRA + cur_info->system_id_size + cur_info->data_size;
+ if (init_info_count == UINT32_MAX || temp_side_data_size > UINT32_MAX) {
return NULL;
+ }
+ init_info_count++;
+
+ if (cur_info->num_key_ids) {
+ temp_side_data_size += (uint64_t)cur_info->num_key_ids * cur_info->key_id_size;
+ if (temp_side_data_size > UINT32_MAX) {
+ return NULL;
+ }
+ }
}
+ *side_data_size = temp_side_data_size;
- *side_data_size = FF_ENCRYPTION_INIT_INFO_EXTRA + info->system_id_size +
- info->data_size + (info->num_key_ids * info->key_id_size);
cur_buffer = buffer = av_malloc(*side_data_size);
if (!buffer)
return NULL;
- AV_WB32(cur_buffer, info->system_id_size);
- AV_WB32(cur_buffer + 4, info->num_key_ids);
- AV_WB32(cur_buffer + 8, info->key_id_size);
- AV_WB32(cur_buffer + 12, info->data_size);
- cur_buffer += 16;
-
- memcpy(cur_buffer, info->system_id, info->system_id_size);
- cur_buffer += info->system_id_size;
- for (i = 0; i < info->num_key_ids; i++) {
- memcpy(cur_buffer, info->key_ids[i], info->key_id_size);
- cur_buffer += info->key_id_size;
+ AV_WB32(cur_buffer, init_info_count);
+ cur_buffer += 4;
+ for (cur_info = info; cur_info; cur_info = cur_info->next) {
+ AV_WB32(cur_buffer, cur_info->system_id_size);
+ AV_WB32(cur_buffer + 4, cur_info->num_key_ids);
+ AV_WB32(cur_buffer + 8, cur_info->key_id_size);
+ AV_WB32(cur_buffer + 12, cur_info->data_size);
+ cur_buffer += 16;
+
+ memcpy(cur_buffer, cur_info->system_id, cur_info->system_id_size);
+ cur_buffer += cur_info->system_id_size;
+ for (i = 0; i < cur_info->num_key_ids; i++) {
+ memcpy(cur_buffer, cur_info->key_ids[i], cur_info->key_id_size);
+ cur_buffer += cur_info->key_id_size;
+ }
+ memcpy(cur_buffer, cur_info->data, cur_info->data_size);
+ cur_buffer += cur_info->data_size;
}
- memcpy(cur_buffer, info->data, info->data_size);
return buffer;
}
diff --git a/chromium/third_party/ffmpeg/libavutil/encryption_info.h b/chromium/third_party/ffmpeg/libavutil/encryption_info.h
index ec5501aac76..8fe7ebfe432 100644
--- a/chromium/third_party/ffmpeg/libavutil/encryption_info.h
+++ b/chromium/third_party/ffmpeg/libavutil/encryption_info.h
@@ -115,6 +115,11 @@ typedef struct AVEncryptionInitInfo {
*/
uint8_t* data;
uint32_t data_size;
+
+ /**
+ * An optional pointer to the next initialization info in the list.
+ */
+ struct AVEncryptionInitInfo *next;
} AVEncryptionInitInfo;
/**
@@ -124,7 +129,7 @@ typedef struct AVEncryptionInitInfo {
*
* @param subsample_count The number of subsamples.
* @param key_id_size The number of bytes in the key ID, should be 16.
- * @param key_id_size The number of bytes in the IV, should be 16.
+ * @param iv_size The number of bytes in the IV, should be 16.
*
* @return The new AVEncryptionInfo structure, or NULL on error.
*/
diff --git a/chromium/third_party/ffmpeg/libavutil/hwcontext.c b/chromium/third_party/ffmpeg/libavutil/hwcontext.c
index 745016ed7e1..f1e404ab201 100644
--- a/chromium/third_party/ffmpeg/libavutil/hwcontext.c
+++ b/chromium/third_party/ffmpeg/libavutil/hwcontext.c
@@ -870,3 +870,10 @@ fail:
av_buffer_unref(&dst_ref);
return ret;
}
+
+int ff_hwframe_map_replace(AVFrame *dst, const AVFrame *src)
+{
+ HWMapDescriptor *hwmap = (HWMapDescriptor*)dst->buf[0]->data;
+ av_frame_unref(hwmap->source);
+ return av_frame_ref(hwmap->source, src);
+}
diff --git a/chromium/third_party/ffmpeg/libavutil/hwcontext_internal.h b/chromium/third_party/ffmpeg/libavutil/hwcontext_internal.h
index 332062ddaa0..77dc47ddd6e 100644
--- a/chromium/third_party/ffmpeg/libavutil/hwcontext_internal.h
+++ b/chromium/third_party/ffmpeg/libavutil/hwcontext_internal.h
@@ -156,6 +156,11 @@ int ff_hwframe_map_create(AVBufferRef *hwframe_ref,
HWMapDescriptor *hwmap),
void *priv);
+/**
+ * Replace the current hwmap of dst with the one from src, used for indirect
+ * mappings like VAAPI->(DRM)->OpenCL/Vulkan where a direct interop is missing
+ */
+int ff_hwframe_map_replace(AVFrame *dst, const AVFrame *src);
extern const HWContextType ff_hwcontext_type_cuda;
extern const HWContextType ff_hwcontext_type_d3d11va;
diff --git a/chromium/third_party/ffmpeg/libavutil/hwcontext_opencl.c b/chromium/third_party/ffmpeg/libavutil/hwcontext_opencl.c
index 07458c2fb10..728877553f8 100644
--- a/chromium/third_party/ffmpeg/libavutil/hwcontext_opencl.c
+++ b/chromium/third_party/ffmpeg/libavutil/hwcontext_opencl.c
@@ -46,7 +46,9 @@
#endif
#if HAVE_OPENCL_VAAPI_INTEL_MEDIA
+#if CONFIG_LIBMFX
#include <mfx/mfxstructures.h>
+#endif
#include <va/va.h>
#include <CL/va_ext.h>
#include "hwcontext_vaapi.h"
@@ -926,7 +928,6 @@ static int opencl_enumerate_intel_media_vaapi_devices(AVHWDeviceContext *hwdev,
clGetDeviceIDsFromVA_APIMediaAdapterINTEL_fn
clGetDeviceIDsFromVA_APIMediaAdapterINTEL;
cl_int cle;
- int err;
clGetDeviceIDsFromVA_APIMediaAdapterINTEL =
clGetExtensionFunctionAddressForPlatform(platform_id,
@@ -1359,10 +1360,7 @@ static int opencl_device_derive(AVHWDeviceContext *hwdev,
break;
}
- if (err < 0)
- return err;
-
- return opencl_device_init(hwdev);
+ return err;
}
static int opencl_get_plane_format(enum AVPixelFormat pixfmt,
@@ -2154,7 +2152,6 @@ static int opencl_map_from_vaapi(AVHWFramesContext *dst_fc,
AVFrame *dst, const AVFrame *src,
int flags)
{
- HWMapDescriptor *hwmap;
AVFrame *tmp;
int err;
@@ -2172,10 +2169,7 @@ static int opencl_map_from_vaapi(AVHWFramesContext *dst_fc,
if (err < 0)
goto fail;
- // Adjust the map descriptor so that unmap works correctly.
- hwmap = (HWMapDescriptor*)dst->buf[0]->data;
- av_frame_unref(hwmap->source);
- err = av_frame_ref(hwmap->source, src);
+ err = ff_hwframe_map_replace(dst, src);
fail:
av_frame_free(&tmp);
@@ -2249,10 +2243,13 @@ static int opencl_map_from_qsv(AVHWFramesContext *dst_fc, AVFrame *dst,
cl_int cle;
int err, p;
+#if CONFIG_LIBMFX
if (src->format == AV_PIX_FMT_QSV) {
mfxFrameSurface1 *mfx_surface = (mfxFrameSurface1*)src->data[3];
va_surface = *(VASurfaceID*)mfx_surface->Data.MemId;
- } else if (src->format == AV_PIX_FMT_VAAPI) {
+ } else
+#endif
+ if (src->format == AV_PIX_FMT_VAAPI) {
va_surface = (VASurfaceID)(uintptr_t)src->data[3];
} else {
return AVERROR(ENOSYS);
diff --git a/chromium/third_party/ffmpeg/libavutil/log.c b/chromium/third_party/ffmpeg/libavutil/log.c
index 25e5ad79a4f..577cdc1df4b 100644
--- a/chromium/third_party/ffmpeg/libavutil/log.c
+++ b/chromium/third_party/ffmpeg/libavutil/log.c
@@ -247,9 +247,9 @@ static void format_line(void *avcl, int level, const char *fmt, va_list vl,
AVBPrint part[4], int *print_prefix, int type[2])
{
AVClass* avc = avcl ? *(AVClass **) avcl : NULL;
- av_bprint_init(part+0, 0, 1);
- av_bprint_init(part+1, 0, 1);
- av_bprint_init(part+2, 0, 1);
+ av_bprint_init(part+0, 0, AV_BPRINT_SIZE_AUTOMATIC);
+ av_bprint_init(part+1, 0, AV_BPRINT_SIZE_AUTOMATIC);
+ av_bprint_init(part+2, 0, AV_BPRINT_SIZE_AUTOMATIC);
av_bprint_init(part+3, 0, 65536);
if(type) type[0] = type[1] = AV_CLASS_CATEGORY_NA + 16;
diff --git a/chromium/third_party/ffmpeg/libavutil/pixfmt.h b/chromium/third_party/ffmpeg/libavutil/pixfmt.h
index aea008bbdc3..2b3307845eb 100644
--- a/chromium/third_party/ffmpeg/libavutil/pixfmt.h
+++ b/chromium/third_party/ffmpeg/libavutil/pixfmt.h
@@ -42,6 +42,10 @@
* This is stored as BGRA on little-endian CPU architectures and ARGB on
* big-endian CPUs.
*
+ * @note
+ * If the resolution is not a multiple of the chroma subsampling factor
+ * then the chroma plane resolution must be rounded up.
+ *
* @par
* When the pixel format is palettized RGB32 (AV_PIX_FMT_PAL8), the palettized
* image data is stored in AVFrame.data[0]. The palette is transported in
diff --git a/chromium/third_party/ffmpeg/libavutil/x86/cpu.c b/chromium/third_party/ffmpeg/libavutil/x86/cpu.c
index aca893174ea..bcd41a50a23 100644
--- a/chromium/third_party/ffmpeg/libavutil/x86/cpu.c
+++ b/chromium/third_party/ffmpeg/libavutil/x86/cpu.c
@@ -127,7 +127,7 @@ int ff_get_cpu_flags_x86(void)
rval |= AV_CPU_FLAG_SSE4;
if (ecx & 0x00100000 )
rval |= AV_CPU_FLAG_SSE42;
- if (ecx & 0x01000000 )
+ if (ecx & 0x02000000 )
rval |= AV_CPU_FLAG_AESNI;
#if HAVE_AVX
/* Check OXSAVE and AVX bits */
diff --git a/chromium/third_party/ffmpeg/libavutil/x86/pixelutils.asm b/chromium/third_party/ffmpeg/libavutil/x86/pixelutils.asm
index 7af3007d0c4..171a3d14915 100644
--- a/chromium/third_party/ffmpeg/libavutil/x86/pixelutils.asm
+++ b/chromium/third_party/ffmpeg/libavutil/x86/pixelutils.asm
@@ -104,8 +104,8 @@ cglobal pixelutils_sad_16x16, 4,4,0, src1, stride1, src2, stride2
RET
;-------------------------------------------------------------------------------
-; int ff_pixelutils_sad_16x16_sse(const uint8_t *src1, ptrdiff_t stride1,
-; const uint8_t *src2, ptrdiff_t stride2);
+; int ff_pixelutils_sad_16x16_sse2(const uint8_t *src1, ptrdiff_t stride1,
+; const uint8_t *src2, ptrdiff_t stride2);
;-------------------------------------------------------------------------------
INIT_XMM sse2
cglobal pixelutils_sad_16x16, 4,4,5, src1, stride1, src2, stride2
@@ -134,8 +134,8 @@ cglobal pixelutils_sad_16x16, 4,4,5, src1, stride1, src2, stride2
RET
;-------------------------------------------------------------------------------
-; int ff_pixelutils_sad_[au]_16x16_sse(const uint8_t *src1, ptrdiff_t stride1,
-; const uint8_t *src2, ptrdiff_t stride2);
+; int ff_pixelutils_sad_[au]_16x16_sse2(const uint8_t *src1, ptrdiff_t stride1,
+; const uint8_t *src2, ptrdiff_t stride2);
;-------------------------------------------------------------------------------
%macro SAD_XMM_16x16 1
INIT_XMM sse2
diff --git a/chromium/third_party/ffmpeg/tools/qt-faststart.c b/chromium/third_party/ffmpeg/tools/qt-faststart.c
index d0ae7245f30..5e88c38e6b1 100644
--- a/chromium/third_party/ffmpeg/tools/qt-faststart.c
+++ b/chromium/third_party/ffmpeg/tools/qt-faststart.c
@@ -28,6 +28,7 @@
#include <stdlib.h>
#include <inttypes.h>
#include <string.h>
+#include <limits.h>
#ifdef __MINGW32__
#undef fseeko
@@ -43,8 +44,6 @@
#define MIN(a,b) ((a) > (b) ? (b) : (a))
-#define BE_16(x) ((((uint8_t*)(x))[0] << 8) | ((uint8_t*)(x))[1])
-
#define BE_32(x) (((uint32_t)(((uint8_t*)(x))[0]) << 24) | \
(((uint8_t*)(x))[1] << 16) | \
(((uint8_t*)(x))[2] << 8) | \
@@ -59,6 +58,18 @@
((uint64_t)(((uint8_t*)(x))[6]) << 8) | \
((uint64_t)( (uint8_t*)(x))[7]))
+#define AV_WB32(p, val) { \
+ ((uint8_t*)(p))[0] = ((val) >> 24) & 0xff; \
+ ((uint8_t*)(p))[1] = ((val) >> 16) & 0xff; \
+ ((uint8_t*)(p))[2] = ((val) >> 8) & 0xff; \
+ ((uint8_t*)(p))[3] = (val) & 0xff; \
+ }
+
+#define AV_WB64(p, val) { \
+ AV_WB32(p, (val) >> 32) \
+ AV_WB32(p + 4, val) \
+ }
+
#define BE_FOURCC(ch0, ch1, ch2, ch3) \
( (uint32_t)(unsigned char)(ch3) | \
((uint32_t)(unsigned char)(ch2) << 8) | \
@@ -79,11 +90,342 @@
#define UUID_ATOM QT_ATOM('u', 'u', 'i', 'd')
#define CMOV_ATOM QT_ATOM('c', 'm', 'o', 'v')
+#define TRAK_ATOM QT_ATOM('t', 'r', 'a', 'k')
+#define MDIA_ATOM QT_ATOM('m', 'd', 'i', 'a')
+#define MINF_ATOM QT_ATOM('m', 'i', 'n', 'f')
+#define STBL_ATOM QT_ATOM('s', 't', 'b', 'l')
#define STCO_ATOM QT_ATOM('s', 't', 'c', 'o')
#define CO64_ATOM QT_ATOM('c', 'o', '6', '4')
#define ATOM_PREAMBLE_SIZE 8
#define COPY_BUFFER_SIZE 33554432
+#define MAX_FTYP_ATOM_SIZE 1048576
+
+typedef struct {
+ uint32_t type;
+ uint32_t header_size;
+ uint64_t size;
+ unsigned char *data;
+} atom_t;
+
+typedef struct {
+ uint64_t moov_atom_size;
+ uint64_t stco_offset_count;
+ uint64_t stco_data_size;
+ int stco_overflow;
+ uint32_t depth;
+} update_chunk_offsets_context_t;
+
+typedef struct {
+ unsigned char *dest;
+ uint64_t original_moov_size;
+ uint64_t new_moov_size;
+} upgrade_stco_context_t;
+
+typedef int (*parse_atoms_callback_t)(void *context, atom_t *atom);
+
+static int parse_atoms(
+ unsigned char *buf,
+ uint64_t size,
+ parse_atoms_callback_t callback,
+ void *context)
+{
+ unsigned char *pos = buf;
+ unsigned char *end = pos + size;
+ atom_t atom;
+ int ret;
+
+ while (end - pos >= ATOM_PREAMBLE_SIZE) {
+ atom.size = BE_32(pos);
+ atom.type = BE_32(pos + 4);
+ pos += ATOM_PREAMBLE_SIZE;
+ atom.header_size = ATOM_PREAMBLE_SIZE;
+
+ switch (atom.size) {
+ case 1:
+ if (end - pos < 8) {
+ fprintf(stderr, "not enough room for 64 bit atom size\n");
+ return -1;
+ }
+
+ atom.size = BE_64(pos);
+ pos += 8;
+ atom.header_size = ATOM_PREAMBLE_SIZE + 8;
+ break;
+
+ case 0:
+ atom.size = ATOM_PREAMBLE_SIZE + end - pos;
+ break;
+ }
+
+ if (atom.size < atom.header_size) {
+ fprintf(stderr, "atom size %"PRIu64" too small\n", atom.size);
+ return -1;
+ }
+
+ atom.size -= atom.header_size;
+
+ if (atom.size > end - pos) {
+ fprintf(stderr, "atom size %"PRIu64" too big\n", atom.size);
+ return -1;
+ }
+
+ atom.data = pos;
+ ret = callback(context, &atom);
+ if (ret < 0) {
+ return ret;
+ }
+
+ pos += atom.size;
+ }
+
+ return 0;
+}
+
+static int update_stco_offsets(update_chunk_offsets_context_t *context, atom_t *atom)
+{
+ uint32_t current_offset;
+ uint32_t offset_count;
+ unsigned char *pos;
+ unsigned char *end;
+
+ printf(" patching stco atom...\n");
+ if (atom->size < 8) {
+ fprintf(stderr, "stco atom size %"PRIu64" too small\n", atom->size);
+ return -1;
+ }
+
+ offset_count = BE_32(atom->data + 4);
+ if (offset_count > (atom->size - 8) / 4) {
+ fprintf(stderr, "stco offset count %"PRIu32" too big\n", offset_count);
+ return -1;
+ }
+
+ context->stco_offset_count += offset_count;
+ context->stco_data_size += atom->size - 8;
+
+ for (pos = atom->data + 8, end = pos + offset_count * 4;
+ pos < end;
+ pos += 4) {
+ current_offset = BE_32(pos);
+ if (current_offset > UINT_MAX - context->moov_atom_size) {
+ context->stco_overflow = 1;
+ }
+ current_offset += context->moov_atom_size;
+ AV_WB32(pos, current_offset);
+ }
+
+ return 0;
+}
+
+static int update_co64_offsets(update_chunk_offsets_context_t *context, atom_t *atom)
+{
+ uint64_t current_offset;
+ uint32_t offset_count;
+ unsigned char *pos;
+ unsigned char *end;
+
+ printf(" patching co64 atom...\n");
+ if (atom->size < 8) {
+ fprintf(stderr, "co64 atom size %"PRIu64" too small\n", atom->size);
+ return -1;
+ }
+
+ offset_count = BE_32(atom->data + 4);
+ if (offset_count > (atom->size - 8) / 8) {
+ fprintf(stderr, "co64 offset count %"PRIu32" too big\n", offset_count);
+ return -1;
+ }
+
+ for (pos = atom->data + 8, end = pos + offset_count * 8;
+ pos < end;
+ pos += 8) {
+ current_offset = BE_64(pos);
+ current_offset += context->moov_atom_size;
+ AV_WB64(pos, current_offset);
+ }
+
+ return 0;
+}
+
+static int update_chunk_offsets_callback(void *ctx, atom_t *atom)
+{
+ update_chunk_offsets_context_t *context = ctx;
+ int ret;
+
+ switch (atom->type) {
+ case STCO_ATOM:
+ return update_stco_offsets(context, atom);
+
+ case CO64_ATOM:
+ return update_co64_offsets(context, atom);
+
+ case MOOV_ATOM:
+ case TRAK_ATOM:
+ case MDIA_ATOM:
+ case MINF_ATOM:
+ case STBL_ATOM:
+ context->depth++;
+ if (context->depth > 10) {
+ fprintf(stderr, "atoms too deeply nested\n");
+ return -1;
+ }
+
+ ret = parse_atoms(
+ atom->data,
+ atom->size,
+ update_chunk_offsets_callback,
+ context);
+ context->depth--;
+ return ret;
+ }
+
+ return 0;
+}
+
+static void set_atom_size(unsigned char *header, uint32_t header_size, uint64_t size)
+{
+ switch (header_size) {
+ case 8:
+ AV_WB32(header, size);
+ break;
+
+ case 16:
+ AV_WB64(header + 8, size);
+ break;
+ }
+}
+
+static void upgrade_stco_atom(upgrade_stco_context_t *context, atom_t *atom)
+{
+ unsigned char *pos;
+ unsigned char *end;
+ uint64_t new_offset;
+ uint32_t offset_count;
+ uint32_t original_offset;
+
+ /* Note: not performing validations since they were performed on the first pass */
+
+ offset_count = BE_32(atom->data + 4);
+
+ /* write the header */
+ memcpy(context->dest, atom->data - atom->header_size, atom->header_size + 8);
+ AV_WB32(context->dest + 4, CO64_ATOM);
+ set_atom_size(context->dest, atom->header_size, atom->header_size + 8 + offset_count * 8);
+ context->dest += atom->header_size + 8;
+
+ /* write the data */
+ for (pos = atom->data + 8, end = pos + offset_count * 4;
+ pos < end;
+ pos += 4) {
+ original_offset = BE_32(pos) - context->original_moov_size;
+ new_offset = (uint64_t)original_offset + context->new_moov_size;
+ AV_WB64(context->dest, new_offset);
+ context->dest += 8;
+ }
+}
+
+static int upgrade_stco_callback(void *ctx, atom_t *atom)
+{
+ upgrade_stco_context_t *context = ctx;
+ unsigned char *start_pos;
+ uint64_t copy_size;
+
+ switch (atom->type) {
+ case STCO_ATOM:
+ upgrade_stco_atom(context, atom);
+ break;
+
+ case MOOV_ATOM:
+ case TRAK_ATOM:
+ case MDIA_ATOM:
+ case MINF_ATOM:
+ case STBL_ATOM:
+ /* write the atom header */
+ memcpy(context->dest, atom->data - atom->header_size, atom->header_size);
+ start_pos = context->dest;
+ context->dest += atom->header_size;
+
+ /* parse internal atoms*/
+ if (parse_atoms(
+ atom->data,
+ atom->size,
+ upgrade_stco_callback,
+ context) < 0) {
+ return -1;
+ }
+
+ /* update the atom size */
+ set_atom_size(start_pos, atom->header_size, context->dest - start_pos);
+ break;
+
+ default:
+ copy_size = atom->header_size + atom->size;
+ memcpy(context->dest, atom->data - atom->header_size, copy_size);
+ context->dest += copy_size;
+ break;
+ }
+
+ return 0;
+}
+
+static int update_moov_atom(
+ unsigned char **moov_atom,
+ uint64_t *moov_atom_size)
+{
+ update_chunk_offsets_context_t update_context = { 0 };
+ upgrade_stco_context_t upgrade_context;
+ unsigned char *new_moov_atom;
+
+ update_context.moov_atom_size = *moov_atom_size;
+
+ if (parse_atoms(
+ *moov_atom,
+ *moov_atom_size,
+ update_chunk_offsets_callback,
+ &update_context) < 0) {
+ return -1;
+ }
+
+ if (!update_context.stco_overflow) {
+ return 0;
+ }
+
+ printf(" upgrading stco atoms to co64...\n");
+ upgrade_context.new_moov_size = *moov_atom_size +
+ update_context.stco_offset_count * 8 -
+ update_context.stco_data_size;
+
+ new_moov_atom = malloc(upgrade_context.new_moov_size);
+ if (new_moov_atom == NULL) {
+ fprintf(stderr, "could not allocate %"PRIu64" bytes for updated moov atom\n",
+ upgrade_context.new_moov_size);
+ return -1;
+ }
+
+ upgrade_context.original_moov_size = *moov_atom_size;
+ upgrade_context.dest = new_moov_atom;
+
+ if (parse_atoms(
+ *moov_atom,
+ *moov_atom_size,
+ upgrade_stco_callback,
+ &upgrade_context) < 0) {
+ free(new_moov_atom);
+ return -1;
+ }
+
+ free(*moov_atom);
+ *moov_atom = new_moov_atom;
+ *moov_atom_size = upgrade_context.new_moov_size;
+
+ if (upgrade_context.dest != *moov_atom + *moov_atom_size) {
+ fprintf(stderr, "unexpected - wrong number of moov bytes written\n");
+ return -1;
+ }
+
+ return 0;
+}
int main(int argc, char *argv[])
{
@@ -98,9 +440,6 @@ int main(int argc, char *argv[])
unsigned char *ftyp_atom = NULL;
uint64_t moov_atom_size;
uint64_t ftyp_atom_size = 0;
- uint64_t i, j;
- uint32_t offset_count;
- uint64_t current_offset;
int64_t start_offset = 0;
unsigned char *copy_buffer = NULL;
int bytes_to_copy;
@@ -133,11 +472,16 @@ int main(int argc, char *argv[])
/* keep ftyp atom */
if (atom_type == FTYP_ATOM) {
+ if (atom_size > MAX_FTYP_ATOM_SIZE) {
+ fprintf(stderr, "ftyp atom size %"PRIu64" too big\n",
+ atom_size);
+ goto error_out;
+ }
ftyp_atom_size = atom_size;
free(ftyp_atom);
ftyp_atom = malloc(ftyp_atom_size);
if (!ftyp_atom) {
- printf("could not allocate %"PRIu64" bytes for ftyp atom\n",
+ fprintf(stderr, "could not allocate %"PRIu64" bytes for ftyp atom\n",
atom_size);
goto error_out;
}
@@ -181,7 +525,7 @@ int main(int argc, char *argv[])
(atom_type != PICT_ATOM) &&
(atom_type != UUID_ATOM) &&
(atom_type != FTYP_ATOM)) {
- printf("encountered non-QT top-level atom (is this a QuickTime file?)\n");
+ fprintf(stderr, "encountered non-QT top-level atom (is this a QuickTime file?)\n");
break;
}
atom_offset += atom_size;
@@ -201,7 +545,7 @@ int main(int argc, char *argv[])
}
if (atom_size < 16) {
- printf("bad moov atom size\n");
+ fprintf(stderr, "bad moov atom size\n");
goto error_out;
}
@@ -219,7 +563,7 @@ int main(int argc, char *argv[])
moov_atom_size = atom_size;
moov_atom = malloc(moov_atom_size);
if (!moov_atom) {
- printf("could not allocate %"PRIu64" bytes for moov atom\n", atom_size);
+ fprintf(stderr, "could not allocate %"PRIu64" bytes for moov atom\n", atom_size);
goto error_out;
}
if (fread(moov_atom, atom_size, 1, infile) != 1) {
@@ -230,7 +574,7 @@ int main(int argc, char *argv[])
/* this utility does not support compressed atoms yet, so disqualify
* files with compressed QT atoms */
if (BE_32(&moov_atom[12]) == CMOV_ATOM) {
- printf("this utility does not support compressed moov atoms yet\n");
+ fprintf(stderr, "this utility does not support compressed moov atoms yet\n");
goto error_out;
}
@@ -238,56 +582,8 @@ int main(int argc, char *argv[])
fclose(infile);
infile = NULL;
- /* crawl through the moov chunk in search of stco or co64 atoms */
- for (i = 4; i < moov_atom_size - 4; i++) {
- atom_type = BE_32(&moov_atom[i]);
- if (atom_type == STCO_ATOM) {
- printf(" patching stco atom...\n");
- atom_size = BE_32(&moov_atom[i - 4]);
- if (atom_size < 16 || atom_size > moov_atom_size - i + 4) {
- printf(" bad atom size\n");
- goto error_out;
- }
- offset_count = BE_32(&moov_atom[i + 8]);
- if (offset_count > (atom_size - 16) / 4) {
- printf(" bad atom size/element count\n");
- goto error_out;
- }
- for (j = 0; j < offset_count; j++) {
- current_offset = BE_32(&moov_atom[i + 12 + j * 4]);
- current_offset += moov_atom_size;
- moov_atom[i + 12 + j * 4 + 0] = (current_offset >> 24) & 0xFF;
- moov_atom[i + 12 + j * 4 + 1] = (current_offset >> 16) & 0xFF;
- moov_atom[i + 12 + j * 4 + 2] = (current_offset >> 8) & 0xFF;
- moov_atom[i + 12 + j * 4 + 3] = (current_offset >> 0) & 0xFF;
- }
- i += atom_size - 4;
- } else if (atom_type == CO64_ATOM) {
- printf(" patching co64 atom...\n");
- atom_size = BE_32(&moov_atom[i - 4]);
- if (atom_size < 16 || atom_size > moov_atom_size - i + 4) {
- printf(" bad atom size\n");
- goto error_out;
- }
- offset_count = BE_32(&moov_atom[i + 8]);
- if (offset_count > (atom_size - 16) / 8) {
- printf(" bad atom size/element count\n");
- goto error_out;
- }
- for (j = 0; j < offset_count; j++) {
- current_offset = BE_64(&moov_atom[i + 12 + j * 8]);
- current_offset += moov_atom_size;
- moov_atom[i + 12 + j * 8 + 0] = (current_offset >> 56) & 0xFF;
- moov_atom[i + 12 + j * 8 + 1] = (current_offset >> 48) & 0xFF;
- moov_atom[i + 12 + j * 8 + 2] = (current_offset >> 40) & 0xFF;
- moov_atom[i + 12 + j * 8 + 3] = (current_offset >> 32) & 0xFF;
- moov_atom[i + 12 + j * 8 + 4] = (current_offset >> 24) & 0xFF;
- moov_atom[i + 12 + j * 8 + 5] = (current_offset >> 16) & 0xFF;
- moov_atom[i + 12 + j * 8 + 6] = (current_offset >> 8) & 0xFF;
- moov_atom[i + 12 + j * 8 + 7] = (current_offset >> 0) & 0xFF;
- }
- i += atom_size - 4;
- }
+ if (update_moov_atom(&moov_atom, &moov_atom_size) < 0) {
+ goto error_out;
}
/* re-open the input file and open the output file */
@@ -332,7 +628,7 @@ int main(int argc, char *argv[])
bytes_to_copy = MIN(COPY_BUFFER_SIZE, last_offset);
copy_buffer = malloc(bytes_to_copy);
if (!copy_buffer) {
- printf("could not allocate %d bytes for copy_buffer\n", bytes_to_copy);
+ fprintf(stderr, "could not allocate %d bytes for copy_buffer\n", bytes_to_copy);
goto error_out;
}
printf(" copying rest of file...\n");
diff --git a/chromium/third_party/ffmpeg/tools/target_dec_fuzzer.c b/chromium/third_party/ffmpeg/tools/target_dec_fuzzer.c
index a0e8943c824..a94d5e6a92b 100644
--- a/chromium/third_party/ffmpeg/tools/target_dec_fuzzer.c
+++ b/chromium/third_party/ffmpeg/tools/target_dec_fuzzer.c
@@ -140,6 +140,8 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
int (*decode_handler)(AVCodecContext *avctx, AVFrame *picture,
int *got_picture_ptr,
const AVPacket *avpkt) = NULL;
+ AVCodecParserContext *parser = NULL;
+
if (!c) {
#ifdef FFMPEG_DECODER
@@ -164,7 +166,8 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
}
AVCodecContext* ctx = avcodec_alloc_context3(NULL);
- if (!ctx)
+ AVCodecContext* parser_avctx = avcodec_alloc_context3(NULL);
+ if (!ctx || !parser_avctx)
error("Failed memory allocation");
ctx->max_pixels = 4096 * 4096; //To reduce false positive OOM and hangs
@@ -176,6 +179,9 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
ctx->height = bytestream2_get_le32(&gbc);
ctx->bit_rate = bytestream2_get_le64(&gbc);
ctx->bits_per_coded_sample = bytestream2_get_le32(&gbc);
+ // Try to initialize a parser for this codec, note, this may fail which just means we test without one
+ if (bytestream2_get_byte(&gbc) & 1)
+ parser = av_parser_init(c->id);
if (av_image_check_size(ctx->width, ctx->height, 0, ctx))
ctx->width = ctx->height = 0;
size -= 1024;
@@ -184,8 +190,10 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
int res = avcodec_open2(ctx, c, NULL);
if (res < 0) {
av_free(ctx);
+ av_free(parser_avctx);
return 0; // Failure of avcodec_open2() does not imply that a issue was found
}
+ parser_avctx->codec_id = ctx->codec_id;
FDBCreate(&buffer);
int got_frame;
@@ -194,7 +202,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
error("Failed memory allocation");
// Read very simple container
- AVPacket avpkt;
+ AVPacket avpkt, parsepkt;
while (data < end && it < maxiteration) {
// Search for the TAG
while (data + sizeof(fuzz_tag) < end) {
@@ -205,12 +213,34 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
if (data + sizeof(fuzz_tag) > end)
data = end;
- FDBPrepare(&buffer, &avpkt, last, data - last);
+ FDBPrepare(&buffer, &parsepkt, last, data - last);
data += sizeof(fuzz_tag);
last = data;
- // Iterate through all data
- while (avpkt.size > 0 && it++ < maxiteration) {
+ while (parsepkt.size > 0) {
+
+ if (parser) {
+ av_init_packet(&avpkt);
+ int ret = av_parser_parse2(parser, parser_avctx, &avpkt.data, &avpkt.size,
+ parsepkt.data, parsepkt.size,
+ parsepkt.pts, parsepkt.dts, parsepkt.pos);
+ parsepkt.data += ret;
+ parsepkt.size -= ret;
+ parsepkt.pos += ret;
+ avpkt.pts = parser->pts;
+ avpkt.dts = parser->dts;
+ avpkt.pos = parser->pos;
+ if ( parser->key_frame == 1 ||
+ (parser->key_frame == -1 && parser->pict_type == AV_PICTURE_TYPE_I))
+ avpkt.flags |= AV_PKT_FLAG_KEY;
+ avpkt.flags |= parsepkt.flags & AV_PKT_FLAG_DISCARD;
+ } else {
+ avpkt = parsepkt;
+ parsepkt.size = 0;
+ }
+
+ // Iterate through all data
+ while (avpkt.size > 0 && it++ < maxiteration) {
av_frame_unref(frame);
int ret = decode_handler(ctx, frame, &got_frame, &avpkt);
@@ -223,6 +253,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
ret = avpkt.size;
avpkt.data += ret;
avpkt.size -= ret;
+ }
}
}
@@ -238,6 +269,9 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
av_frame_free(&frame);
avcodec_free_context(&ctx);
av_freep(&ctx);
+ avcodec_free_context(&parser_avctx);
+ av_freep(&parser_avctx);
+ av_parser_close(parser);
FDBDesroy(&buffer);
return 0;
}