Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/mpc-hc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorclsid2 <clsid2@users.sourceforge.net>2009-12-02 20:07:08 +0300
committerclsid2 <clsid2@users.sourceforge.net>2009-12-02 20:07:08 +0300
commitd599e223139c59c0fb931c2a862bc67f4c94fdb2 (patch)
tree59743f95d63cc51c6d88d8bb3eb2ed0d09393b31 /src/filters/transform/mpcvideodec/ffmpeg
parenta43f1a131606c00452789920bd2430aff8bfd35e (diff)
Updated FFmpeg
git-svn-id: https://mpc-hc.svn.sourceforge.net/svnroot/mpc-hc/trunk@1376 10f7b99b-c216-0410-bff0-8a66a9350fd8
Diffstat (limited to 'src/filters/transform/mpcvideodec/ffmpeg')
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/ac3dec.c18
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/avcodec.h31
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/bitstream.c10
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/cook.c2
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/dsputil.c138
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/dsputil.h102
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/error_resilience.c5
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/fft.c55
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/get_bits.h9
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/h261dec.c4
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/h263.c8
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/h263dec.c11
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/h264.c59
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/imgconvert.c10
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/mjpegdec.c56
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/mjpegdec.h5
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/mpegvideo.c64
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/mpegvideo.h3
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/mpegvideo_common.h32
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/msmpeg4.c2
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/nellymoserdec.c2
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/options.c1
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/put_bits.h41
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/svq1dec.c2
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/svq3.c2
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/ulti.c419
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/ulti_cb.h4124
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/utils.c35
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/vc1.h2
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/vc1dec.c5
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/vp3.c122
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/w32thread.c74
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/x86/dsputil_mmx.c55
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/x86/dsputil_yasm.asm76
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/x86/fft_mmx.asm2
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/x86/mpegvideo_mmx.c13
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavcodec/x86/x86inc.asm10
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavutil/avutil.h2
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavutil/common.h2
-rw-r--r--src/filters/transform/mpcvideodec/ffmpeg/libavutil/mathematics.c21
40 files changed, 787 insertions, 4847 deletions
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/ac3dec.c b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/ac3dec.c
index 55a029de1..5c3c1ed2e 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/ac3dec.c
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/ac3dec.c
@@ -36,10 +36,6 @@
#include "ac3dec.h"
#include "ac3dec_data.h"
-#if _MSC_VER<1400
-#define powf pow
-#endif
-
/** Large enough for maximum possible frame size when the specification limit is ignored */
#define AC3_FRAME_BUFFER_SIZE 32768
@@ -608,7 +604,6 @@ static void do_rematrixing(AC3DecodeContext *s)
{
int bnd, i;
int end, bndend;
- int tmp0, tmp1;
end = FFMIN(s->end_freq[1], s->end_freq[2]);
@@ -616,10 +611,9 @@ static void do_rematrixing(AC3DecodeContext *s)
if(s->rematrixing_flags[bnd]) {
bndend = FFMIN(end, ff_ac3_rematrix_band_tab[bnd+1]);
for(i=ff_ac3_rematrix_band_tab[bnd]; i<bndend; i++) {
- tmp0 = s->fixed_coeffs[1][i];
- tmp1 = s->fixed_coeffs[2][i];
- s->fixed_coeffs[1][i] = tmp0 + tmp1;
- s->fixed_coeffs[2][i] = tmp0 - tmp1;
+ int tmp0 = s->fixed_coeffs[1][i];
+ s->fixed_coeffs[1][i] += s->fixed_coeffs[2][i];
+ s->fixed_coeffs[2][i] = tmp0 - s->fixed_coeffs[2][i];
}
}
}
@@ -1028,8 +1022,8 @@ static int decode_audio_block(AC3DecodeContext *s, int blk)
for(bnd=0; bnd<s->num_rematrixing_bands; bnd++)
s->rematrixing_flags[bnd] = get_bits1(gbc);
} else if (!blk) {
- av_log(s->avctx, AV_LOG_ERROR, "new rematrixing strategy must be present in block 0\n");
- return -1;
+ av_log(s->avctx, AV_LOG_WARNING, "Warning: new rematrixing strategy not present in block 0\n");
+ s->num_rematrixing_bands = 0;
}
}
@@ -1255,7 +1249,7 @@ static int decode_audio_block(AC3DecodeContext *s, int blk)
for(ch=1; ch<=s->channels; ch++) {
float gain = s->mul_bias / 4194304.0f;
if(s->channel_mode == AC3_CHMODE_DUALMONO) {
- gain *= s->dynamic_range[ch-1];
+ gain *= s->dynamic_range[2-ch];
} else {
gain *= s->dynamic_range[0];
}
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/avcodec.h b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/avcodec.h
index 65b692dd2..e5d7bf8c4 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/avcodec.h
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/avcodec.h
@@ -44,7 +44,7 @@
#include "libavutil/avutil.h"
#define LIBAVCODEC_VERSION_MAJOR 52
-#define LIBAVCODEC_VERSION_MINOR 35
+#define LIBAVCODEC_VERSION_MINOR 41
#define LIBAVCODEC_VERSION_MICRO 0
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
@@ -114,6 +114,11 @@ enum SampleFormat {
#define CH_STEREO_LEFT 0x20000000 ///< Stereo downmix.
#define CH_STEREO_RIGHT 0x40000000 ///< See CH_STEREO_LEFT.
+/** Channel mask value used for AVCodecContext.request_channel_layout
+ to indicate that the user requests the channel order of the decoder output
+ to be the native codec channel order. */
+#define CH_LAYOUT_NATIVE 0x8000000000000000LL
+
/* Audio channel convenience macros */
#define CH_LAYOUT_MONO (CH_FRONT_CENTER)
#define CH_LAYOUT_STEREO (CH_FRONT_LEFT|CH_FRONT_RIGHT)
@@ -2218,7 +2223,27 @@ typedef struct AVCodecContext {
* - encoding: Set by user
* - decoding: Set by libavcodec
*/
- enum AVChromaLocation chroma_sample_location;
+ enum AVChromaLocation chroma_sample_location;
+
+ /**
+ * The codec may call this to execute several independent things.
+ * It will return only after finishing all tasks.
+ * The user may replace this with some multithreaded implementation,
+ * the default implementation will execute the parts serially.
+ * Also see avcodec_thread_init and e.g. the --enable-pthread configure option.
+ * @param c context passed also to func
+ * @param count the number of things to execute
+ * @param arg2 argument passed unchanged to func
+ * @param ret return values of executed functions, must have space for "count" values. May be NULL.
+ * @param func function that will be called count times, with jobnr from 0 to count-1.
+ * threadnr will be in the range 0 to c->thread_count-1 < MAX_THREADS and so that no
+ * two instances of func executing at the same time will have the same threadnr.
+ * @return always 0 currently, but code should handle a future improvement where when any call to func
+ * returns < 0 no further calls to func may be done and < 0 is returned.
+ * - encoding: Set by libavcodec, user can override.
+ * - decoding: Set by libavcodec, user can override.
+ */
+ int (*execute2)(struct AVCodecContext *c, int (*func)(struct AVCodecContext *c2, void *arg, int jobnr, int threadnr), void *arg2, int *ret, int count);
/* ffdshow custom stuff (begin) */
@@ -2426,7 +2451,7 @@ FF_EXPORT int avcodec_thread_init(AVCodecContext *s, int thread_count);
FF_EXPORT void avcodec_thread_free(AVCodecContext *s);
int avcodec_thread_execute(AVCodecContext *s, int (*func)(AVCodecContext *c2, void *arg2),void *arg, int *ret, int count, int size);
int avcodec_default_execute(AVCodecContext *c, int (*func)(AVCodecContext *c2, void *arg2),void *arg, int *ret, int count, int size);
-
+int avcodec_default_execute2(AVCodecContext *c, int (*func)(AVCodecContext *c2, void *arg2, int, int),void *arg, int *ret, int count);
//FIXME func typedef
/**
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/bitstream.c b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/bitstream.c
index 92d36d205..4337c84b3 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/bitstream.c
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/bitstream.c
@@ -47,14 +47,14 @@ void align_put_bits(PutBitContext *s)
#endif
}
-void ff_put_string(PutBitContext * pbc, const char *s, int terminate_string)
+void ff_put_string(PutBitContext *pb, const char *string, int terminate_string)
{
- while(*s){
- put_bits(pbc, 8, *s);
- s++;
+ while(*string){
+ put_bits(pb, 8, *string);
+ string++;
}
if(terminate_string)
- put_bits(pbc, 8, 0);
+ put_bits(pb, 8, 0);
}
void ff_copy_bits(PutBitContext *pb, const uint8_t *src, int length)
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/cook.c b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/cook.c
index f4b268bf4..c0c909caa 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/cook.c
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/cook.c
@@ -1040,7 +1040,7 @@ static av_cold int cook_decode_init(AVCodecContext *avctx)
q->bit_rate = avctx->bit_rate;
/* Initialize RNG. */
- av_lfg_init(&q->random_state, ff_random_get_seed());
+ av_lfg_init(&q->random_state, 0);
while(edata_ptr < edata_ptr_end){
/* 8 for mono, 16 for stereo, ? for multichannel
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/dsputil.c b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/dsputil.c
index 945cd5f65..7bbeb956e 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/dsputil.c
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/dsputil.c
@@ -3462,7 +3462,7 @@ static void diff_bytes_c(uint8_t *dst, uint8_t *src1, uint8_t *src2, int w){
dst[i+0] = src1[i+0]-src2[i+0];
}
-static void add_hfyu_median_prediction_c(uint8_t *dst, uint8_t *src1, uint8_t *diff, int w, int *left, int *left_top){
+static void add_hfyu_median_prediction_c(uint8_t *dst, const uint8_t *src1, const uint8_t *diff, int w, int *left, int *left_top){
int i;
uint8_t l, lt;
@@ -3479,7 +3479,7 @@ static void add_hfyu_median_prediction_c(uint8_t *dst, uint8_t *src1, uint8_t *d
*left_top= lt;
}
-static void sub_hfyu_median_prediction_c(uint8_t *dst, uint8_t *src1, uint8_t *src2, int w, int *left, int *left_top){
+static void sub_hfyu_median_prediction_c(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int w, int *left, int *left_top){
int i;
uint8_t l, lt;
@@ -3497,6 +3497,59 @@ static void sub_hfyu_median_prediction_c(uint8_t *dst, uint8_t *src1, uint8_t *s
*left_top= lt;
}
+static int add_hfyu_left_prediction_c(uint8_t *dst, const uint8_t *src, int w, int acc){
+ int i;
+
+ for(i=0; i<w-1; i++){
+ acc+= src[i];
+ dst[i]= acc;
+ i++;
+ acc+= src[i];
+ dst[i]= acc;
+ }
+
+ for(; i<w; i++){
+ acc+= src[i];
+ dst[i]= acc;
+ }
+
+ return acc;
+}
+
+#if HAVE_BIGENDIAN
+#define B 3
+#define G 2
+#define R 1
+#else
+#define B 0
+#define G 1
+#define R 2
+#endif
+static void add_hfyu_left_prediction_bgr32_c(uint8_t *dst, const uint8_t *src, int w, int *red, int *green, int *blue){
+ int i;
+ int r,g,b;
+ r= *red;
+ g= *green;
+ b= *blue;
+
+ for(i=0; i<w; i++){
+ b+= src[4*i+B];
+ g+= src[4*i+G];
+ r+= src[4*i+R];
+
+ dst[4*i+B]= b;
+ dst[4*i+G]= g;
+ dst[4*i+R]= r;
+ }
+
+ *red= r;
+ *green= g;
+ *blue= b;
+}
+#undef B
+#undef G
+#undef R
+
#define BUTTERFLY2(o1,o2,i1,i2) \
o1= (i1)+(i2);\
o2= (i1)-(i2);
@@ -3978,6 +4031,71 @@ void ff_vector_fmul_window_c(float *dst, const float *src0, const float *src1, c
}
}
+#if CONFIG_AAC_DECODER
+static void vector_fmul_scalar_c(float *dst, const float *src, float mul,
+ int len)
+{
+ int i;
+ for (i = 0; i < len; i++)
+ dst[i] = src[i] * mul;
+}
+
+static void vector_fmul_sv_scalar_2_c(float *dst, const float *src,
+ const float **sv, float mul, int len)
+{
+ int i;
+ for (i = 0; i < len; i += 2, sv++) {
+ dst[i ] = src[i ] * sv[0][0] * mul;
+ dst[i+1] = src[i+1] * sv[0][1] * mul;
+ }
+}
+
+static void vector_fmul_sv_scalar_4_c(float *dst, const float *src,
+ const float **sv, float mul, int len)
+{
+ int i;
+ for (i = 0; i < len; i += 4, sv++) {
+ dst[i ] = src[i ] * sv[0][0] * mul;
+ dst[i+1] = src[i+1] * sv[0][1] * mul;
+ dst[i+2] = src[i+2] * sv[0][2] * mul;
+ dst[i+3] = src[i+3] * sv[0][3] * mul;
+ }
+}
+
+static void sv_fmul_scalar_2_c(float *dst, const float **sv, float mul,
+ int len)
+{
+ int i;
+ for (i = 0; i < len; i += 2, sv++) {
+ dst[i ] = sv[0][0] * mul;
+ dst[i+1] = sv[0][1] * mul;
+ }
+}
+
+static void sv_fmul_scalar_4_c(float *dst, const float **sv, float mul,
+ int len)
+{
+ int i;
+ for (i = 0; i < len; i += 4, sv++) {
+ dst[i ] = sv[0][0] * mul;
+ dst[i+1] = sv[0][1] * mul;
+ dst[i+2] = sv[0][2] * mul;
+ dst[i+3] = sv[0][3] * mul;
+ }
+}
+#endif
+
+static void butterflies_float_c(float *restrict v1, float *restrict v2,
+ int len)
+{
+ int i;
+ for (i = 0; i < len; i++) {
+ float t = v1[i] - v2[i];
+ v1[i] += v2[i];
+ v2[i] = t;
+ }
+}
+
static void int32_to_float_fmul_scalar_c(float *dst, const int *src, float mul, int len){
int i;
for(i=0; i<len; i++)
@@ -4480,8 +4598,12 @@ void attribute_align_arg dsputil_init(DSPContext* c, AVCodecContext *avctx)
c->add_bytes= add_bytes_c;
c->add_bytes_l2= add_bytes_l2_c;
c->diff_bytes= diff_bytes_c;
+#if CONFIG_HUFFYUV_DECODER
c->add_hfyu_median_prediction= add_hfyu_median_prediction_c;
c->sub_hfyu_median_prediction= sub_hfyu_median_prediction_c;
+ c->add_hfyu_left_prediction = add_hfyu_left_prediction_c;
+ c->add_hfyu_left_prediction_bgr32 = add_hfyu_left_prediction_bgr32_c;
+#endif
c->bswap_buf= bswap_buf;
#if CONFIG_PNG_DECODER
c->add_png_paeth_prediction= ff_add_png_paeth_prediction;
@@ -4528,6 +4650,18 @@ void attribute_align_arg dsputil_init(DSPContext* c, AVCodecContext *avctx)
c->int32_to_float_fmul_scalar = int32_to_float_fmul_scalar_c;
c->float_to_int16 = ff_float_to_int16_c;
c->float_to_int16_interleave = ff_float_to_int16_interleave_c;
+#if CONFIG_AAC_DECODER | CONFIG_WMAV1_DECODER | CONFIG_WMAV2_DECODER
+ c->butterflies_float = butterflies_float_c;
+#endif
+#if CONFIG_AAC_DECODER
+ c->vector_fmul_scalar = vector_fmul_scalar_c;
+
+ c->vector_fmul_sv_scalar[0] = vector_fmul_sv_scalar_2_c;
+ c->vector_fmul_sv_scalar[1] = vector_fmul_sv_scalar_4_c;
+
+ c->sv_fmul_scalar[0] = sv_fmul_scalar_2_c;
+ c->sv_fmul_scalar[1] = sv_fmul_scalar_4_c;
+#endif
c->shrink[0]= ff_img_copy_plane;
c->shrink[1]= ff_shrink22;
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/dsputil.h b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/dsputil.h
index daf70f4c1..1a94bcb1b 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/dsputil.h
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/dsputil.h
@@ -343,8 +343,10 @@ typedef struct DSPContext {
* subtract huffyuv's variant of median prediction
* note, this might read from src1[-1], src2[-1]
*/
- void (*sub_hfyu_median_prediction)(uint8_t *dst, uint8_t *src1, uint8_t *src2, int w, int *left, int *left_top);
- void (*add_hfyu_median_prediction)(uint8_t *dst, uint8_t *top, uint8_t *diff, int w, int *left, int *left_top);
+ void (*sub_hfyu_median_prediction)(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int w, int *left, int *left_top);
+ void (*add_hfyu_median_prediction)(uint8_t *dst, const uint8_t *top, const uint8_t *diff, int w, int *left, int *left_top);
+ int (*add_hfyu_left_prediction)(uint8_t *dst, const uint8_t *src, int w, int left);
+ void (*add_hfyu_left_prediction_bgr32)(uint8_t *dst, const uint8_t *src, int w, int *red, int *green, int *blue);
/* this might write to dst[w] */
void (*add_png_paeth_prediction)(uint8_t *dst, uint8_t *src, uint8_t *top, int w, int bpp);
void (*bswap_buf)(uint32_t *dst, const uint32_t *src, int w);
@@ -388,6 +390,49 @@ typedef struct DSPContext {
void (*vector_fmul_window)(float *dst, const float *src0, const float *src1, const float *win, float add_bias, int len);
/* assume len is a multiple of 8, and arrays are 16-byte aligned */
void (*int32_to_float_fmul_scalar)(float *dst, const int *src, float mul, int len);
+ /**
+ * Multiply a vector of floats by a scalar float. Source and
+ * destination vectors must overlap exactly or not at all.
+ * @param dst result vector, 16-byte aligned
+ * @param src input vector, 16-byte aligned
+ * @param mul scalar value
+ * @param len length of vector, multiple of 4
+ */
+ void (*vector_fmul_scalar)(float *dst, const float *src, float mul,
+ int len);
+ /**
+ * Multiply a vector of floats by concatenated short vectors of
+ * floats and by a scalar float. Source and destination vectors
+ * must overlap exactly or not at all.
+ * [0]: short vectors of length 2, 8-byte aligned
+ * [1]: short vectors of length 4, 16-byte aligned
+ * @param dst output vector, 16-byte aligned
+ * @param src input vector, 16-byte aligned
+ * @param sv array of pointers to short vectors
+ * @param mul scalar value
+ * @param len number of elements in src and dst, multiple of 4
+ */
+ void (*vector_fmul_sv_scalar[2])(float *dst, const float *src,
+ const float **sv, float mul, int len);
+ /**
+ * Multiply short vectors of floats by a scalar float, store
+ * concatenated result.
+ * [0]: short vectors of length 2, 8-byte aligned
+ * [1]: short vectors of length 4, 16-byte aligned
+ * @param dst output vector, 16-byte aligned
+ * @param sv array of pointers to short vectors
+ * @param mul scalar value
+ * @param len number of output elements, multiple of 4
+ */
+ void (*sv_fmul_scalar[2])(float *dst, const float **sv,
+ float mul, int len);
+ /**
+ * Calculate the scalar product of two vectors of floats.
+ * @param v1 first vector, 16-byte aligned
+ * @param v2 second vector, 16-byte aligned
+ * @param len length of vectors, multiple of 4
+ */
+ void (*butterflies_float)(float *restrict v1, float *restrict v2, int len);
/* C version: convert floats from the range [384.0,386.0] to ints in [-32768,32767]
* simd versions: convert floats from [-32768.0,32767.0] without rescaling and arrays are 16byte aligned */
@@ -642,7 +687,52 @@ typedef struct FFTContext {
#define FF_MDCT_PERM_INTERLEAVE 1
} FFTContext;
-extern FFTSample* const ff_cos_tabs[13];
+#if CONFIG_HARDCODED_TABLES
+#define COSTABLE_CONST const
+#define SINTABLE_CONST const
+#else
+#define COSTABLE_CONST
+#define SINTABLE_CONST
+#endif
+
+#define COSTABLE(size) \
+ COSTABLE_CONST DECLARE_ALIGNED_16(FFTSample, ff_cos_##size[size/2])
+#define SINTABLE(size) \
+ SINTABLE_CONST DECLARE_ALIGNED_16(FFTSample, ff_sin_##size[size/2])
+extern COSTABLE(16);
+extern COSTABLE(32);
+extern COSTABLE(64);
+extern COSTABLE(128);
+extern COSTABLE(256);
+extern COSTABLE(512);
+extern COSTABLE(1024);
+extern COSTABLE(2048);
+extern COSTABLE(4096);
+extern COSTABLE(8192);
+extern COSTABLE(16384);
+extern COSTABLE(32768);
+extern COSTABLE(65536);
+extern COSTABLE_CONST FFTSample* const ff_cos_tabs[17];
+
+/**
+ * Initializes the cosine table in ff_cos_tabs[index]
+ * \param index index in ff_cos_tabs array of the table to initialize
+ */
+void ff_init_ff_cos_tabs(int index);
+
+extern SINTABLE(16);
+extern SINTABLE(32);
+extern SINTABLE(64);
+extern SINTABLE(128);
+extern SINTABLE(256);
+extern SINTABLE(512);
+extern SINTABLE(1024);
+extern SINTABLE(2048);
+extern SINTABLE(4096);
+extern SINTABLE(8192);
+extern SINTABLE(16384);
+extern SINTABLE(32768);
+extern SINTABLE(65536);
/**
* Sets up a complex FFT.
@@ -653,6 +743,8 @@ int ff_fft_init(FFTContext *s, int nbits, int inverse);
void ff_fft_permute_c(FFTContext *s, FFTComplex *z);
void ff_fft_calc_c(FFTContext *s, FFTComplex *z);
+void ff_fft_init_mmx(FFTContext *s);
+
/**
* Do the permutation needed BEFORE calling ff_fft_calc().
*/
@@ -732,8 +824,8 @@ typedef struct {
int sign_convention;
/* pre/post rotation tables */
- FFTSample *tcos;
- FFTSample *tsin;
+ const FFTSample *tcos;
+ SINTABLE_CONST FFTSample *tsin;
FFTContext fft;
} RDFTContext;
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/error_resilience.c b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/error_resilience.c
index ffbcb657f..80c7a5c4d 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/error_resilience.c
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/error_resilience.c
@@ -33,8 +33,8 @@
static void decode_mb(MpegEncContext *s){
s->dest[0] = s->current_picture.data[0] + (s->mb_y * 16* s->linesize ) + s->mb_x * 16;
- s->dest[1] = s->current_picture.data[1] + (s->mb_y * 8 * s->uvlinesize) + s->mb_x * 8;
- s->dest[2] = s->current_picture.data[2] + (s->mb_y * 8 * s->uvlinesize) + s->mb_x * 8;
+ s->dest[1] = s->current_picture.data[1] + (s->mb_y * (16>>s->chroma_y_shift) * s->uvlinesize) + s->mb_x * (16>>s->chroma_x_shift);
+ s->dest[2] = s->current_picture.data[2] + (s->mb_y * (16>>s->chroma_y_shift) * s->uvlinesize) + s->mb_x * (16>>s->chroma_x_shift);
MPV_decode_mb(s, s->block);
}
@@ -1029,6 +1029,7 @@ void ff_er_frame_end(MpegEncContext *s){
v_block_filter(s, s->current_picture.data[2], s->mb_width , s->mb_height , s->uvlinesize, 0);
}
+ec_clean:
/* clean a few tables */
for(i=0; i<s->mb_num; i++){
const int mb_xy= s->mb_index2xy[i];
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/fft.c b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/fft.c
index 5aefd5ce4..150a59aeb 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/fft.c
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/fft.c
@@ -29,20 +29,23 @@
#include "dsputil.h"
/* cos(2*pi*x/n) for 0<=x<=n/4, followed by its reverse */
-DECLARE_ALIGNED_16(FFTSample, ff_cos_16[8]);
-DECLARE_ALIGNED_16(FFTSample, ff_cos_32[16]);
-DECLARE_ALIGNED_16(FFTSample, ff_cos_64[32]);
-DECLARE_ALIGNED_16(FFTSample, ff_cos_128[64]);
-DECLARE_ALIGNED_16(FFTSample, ff_cos_256[128]);
-DECLARE_ALIGNED_16(FFTSample, ff_cos_512[256]);
-DECLARE_ALIGNED_16(FFTSample, ff_cos_1024[512]);
-DECLARE_ALIGNED_16(FFTSample, ff_cos_2048[1024]);
-DECLARE_ALIGNED_16(FFTSample, ff_cos_4096[2048]);
-DECLARE_ALIGNED_16(FFTSample, ff_cos_8192[4096]);
-DECLARE_ALIGNED_16(FFTSample, ff_cos_16384[8192]);
-DECLARE_ALIGNED_16(FFTSample, ff_cos_32768[16384]);
-DECLARE_ALIGNED_16(FFTSample, ff_cos_65536[32768]);
-FFTSample * const ff_cos_tabs[] = {
+#if !CONFIG_HARDCODED_TABLES
+COSTABLE(16);
+COSTABLE(32);
+COSTABLE(64);
+COSTABLE(128);
+COSTABLE(256);
+COSTABLE(512);
+COSTABLE(1024);
+COSTABLE(2048);
+COSTABLE(4096);
+COSTABLE(8192);
+COSTABLE(16384);
+COSTABLE(32768);
+COSTABLE(65536);
+#endif
+COSTABLE_CONST FFTSample * const ff_cos_tabs[] = {
+ NULL, NULL, NULL, NULL,
ff_cos_16, ff_cos_32, ff_cos_64, ff_cos_128, ff_cos_256, ff_cos_512, ff_cos_1024,
ff_cos_2048, ff_cos_4096, ff_cos_8192, ff_cos_16384, ff_cos_32768, ff_cos_65536,
};
@@ -58,6 +61,20 @@ static int split_radix_permutation(int i, int n, int inverse)
else return split_radix_permutation(i, m, inverse)*4 - 1;
}
+av_cold void ff_init_ff_cos_tabs(int index)
+{
+#if !CONFIG_HARDCODED_TABLES
+ int i;
+ int m = 1<<index;
+ double freq = 2*M_PI/m;
+ FFTSample *tab = ff_cos_tabs[index];
+ for(i=0; i<=m/4; i++)
+ tab[i] = cos(i*freq);
+ for(i=1; i<m/4; i++)
+ tab[m/2-i] = tab[i];
+#endif
+}
+
av_cold int ff_fft_init(FFTContext *s, int nbits, int inverse)
{
int i, j, m, n;
@@ -90,13 +107,7 @@ av_cold int ff_fft_init(FFTContext *s, int nbits, int inverse)
if (s->split_radix) {
for(j=4; j<=nbits; j++) {
- int m = 1<<j;
- double freq = 2*M_PI/m;
- FFTSample *tab = ff_cos_tabs[j-4];
- for(i=0; i<=m/4; i++)
- tab[i] = cos(i*freq);
- for(i=1; i<m/4; i++)
- tab[m/2-i] = tab[i];
+ ff_init_ff_cos_tabs(j);
}
for(i=0; i<n; i++)
s->revtab[-split_radix_permutation(i, n, s->inverse) & (n-1)] = i;
@@ -336,7 +347,7 @@ DECL_FFT(16384,8192,4096)
DECL_FFT(32768,16384,8192)
DECL_FFT(65536,32768,16384)
-static void (*fft_dispatch[])(FFTComplex*) = {
+static void (* const fft_dispatch[])(FFTComplex*) = {
fft4, fft8, fft16, fft32, fft64, fft128, fft256, fft512, fft1024,
fft2048, fft4096, fft8192, fft16384, fft32768, fft65536,
};
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/get_bits.h b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/get_bits.h
index bac5dc446..6426e2f4d 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/get_bits.h
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/get_bits.h
@@ -26,7 +26,9 @@
#ifndef AVCODEC_GET_BITS_H
#define AVCODEC_GET_BITS_H
+#ifdef __GNUC__
#include <stdint.h>
+#endif
#include <stdlib.h>
#include <assert.h>
#include "../libavutil/bswap.h"
@@ -45,8 +47,6 @@
//#define A32_BITSTREAM_READER
#endif
-extern const uint8_t ff_reverse[256];
-
#if ARCH_X86
// avoid +32 for shift optimization (gcc should do that ...)
static inline int32_t NEG_SSR32( int32_t a, int8_t s){
@@ -704,4 +704,9 @@ static inline int decode210(GetBitContext *gb){
return 2 - get_bits1(gb);
}
+static inline int get_bits_left(GetBitContext *gb)
+{
+ return gb->size_in_bits - get_bits_count(gb);
+}
+
#endif /* AVCODEC_GET_BITS_H */
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/h261dec.c b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/h261dec.c
index 42417e80e..3287f5e42 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/h261dec.c
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/h261dec.c
@@ -170,7 +170,7 @@ static int ff_h261_resync(H261Context *h){
//OK, it is not where it is supposed to be ...
s->gb= s->last_resync_gb;
align_get_bits(&s->gb);
- left= s->gb.size_in_bits - get_bits_count(&s->gb);
+ left= get_bits_left(&s->gb);
for(;left>15+1+4+5; left-=8){
if(show_bits(&s->gb, 15)==0){
@@ -444,7 +444,7 @@ static int h261_decode_picture_header(H261Context *h){
int format, i;
uint32_t startcode= 0;
- for(i= s->gb.size_in_bits - get_bits_count(&s->gb); i>24; i-=1){
+ for(i= get_bits_left(&s->gb); i>24; i-=1){
startcode = ((startcode << 1) | get_bits(&s->gb, 1)) & 0x000FFFFF;
if(startcode == 0x10)
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/h263.c b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/h263.c
index eb792e2cc..7fac11052 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/h263.c
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/h263.c
@@ -2994,7 +2994,7 @@ static int h263_decode_gob_header(MpegEncContext *s)
/* We have a GBSC probably with GSTUFF */
skip_bits(&s->gb, 16); /* Drop the zeros */
- left= s->gb.size_in_bits - get_bits_count(&s->gb);
+ left= get_bits_left(&s->gb);
//MN: we must check the bits left or we might end in a infinite loop (or segfault)
for(;left>13; left--){
if(get_bits1(&s->gb)) break; /* Seek the '1' bit */
@@ -3329,7 +3329,7 @@ int ff_h263_resync(MpegEncContext *s){
//OK, it's not where it is supposed to be ...
s->gb= s->last_resync_gb;
align_get_bits(&s->gb);
- left= s->gb.size_in_bits - get_bits_count(&s->gb);
+ left= get_bits_left(&s->gb);
for(;left>16+1+5+5; left-=8){
if(show_bits(&s->gb, 16)==0){
@@ -3774,7 +3774,7 @@ static int mpeg4_decode_partitioned_mb(MpegEncContext *s, DCTELEM block[6][64])
/* per-MB end of slice check */
if(--s->mb_num_left <= 0){
-//printf("%06X %d\n", show_bits(&s->gb, 24), s->gb.size_in_bits - get_bits_count(&s->gb));
+//printf("%06X %d\n", show_bits(&s->gb, 24), get_bits_left(&s->gb));
if(mpeg4_is_resync(s))
return SLICE_END;
else
@@ -5034,7 +5034,7 @@ int h263_decode_picture_header(MpegEncContext *s)
startcode= get_bits(&s->gb, 22-8);
- for(i= s->gb.size_in_bits - get_bits_count(&s->gb); i>24; i-=8) {
+ for(i= get_bits_left(&s->gb); i>24; i-=8) {
startcode = ((startcode << 8) | get_bits(&s->gb, 8)) & 0x003FFFFF;
if(startcode == 0x20)
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/h263dec.c b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/h263dec.c
index ccceab160..15b81eeaf 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/h263dec.c
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/h263dec.c
@@ -259,8 +259,8 @@ static int decode_slice(MpegEncContext *s){
/* try to detect the padding bug */
if( s->codec_id==CODEC_ID_MPEG4
&& (s->workaround_bugs&FF_BUG_AUTODETECT)
- && s->gb.size_in_bits - get_bits_count(&s->gb) >=0
- && s->gb.size_in_bits - get_bits_count(&s->gb) < 48
+ && get_bits_left(&s->gb) >=0
+ && get_bits_left(&s->gb) < 48
// && !s->resync_marker
&& !s->data_partitioning){
@@ -291,7 +291,7 @@ static int decode_slice(MpegEncContext *s){
// handle formats which don't have unique end markers
if(s->msmpeg4_version || (s->workaround_bugs&FF_BUG_NO_PADDING)){ //FIXME perhaps solve this more cleanly
- int left= s->gb.size_in_bits - get_bits_count(&s->gb);
+ int left= get_bits_left(&s->gb);
int max_extra=7;
/* no markers in M$ crap */
@@ -316,7 +316,7 @@ static int decode_slice(MpegEncContext *s){
}
av_log(s->avctx, AV_LOG_ERROR, "slice end not reached but screenspace end (%d left %06X, score= %d)\n",
- s->gb.size_in_bits - get_bits_count(&s->gb),
+ get_bits_left(&s->gb),
show_bits(&s->gb, 24), s->padding_bug_score);
ff_er_add_slice(s, s->resync_mb_x, s->resync_mb_y, s->mb_x, s->mb_y, (AC_END|DC_END|MV_END)&part_mask);
@@ -680,6 +680,7 @@ retry:
intrax8_decoded:
ff_er_frame_end(s);
+frame_end:
MPV_frame_end(s);
assert(s->current_picture.pict_type == s->current_picture_ptr->pict_type);
@@ -835,5 +836,5 @@ AVCodec flv_decoder = {
/*.flush = */NULL,
/*.supported_framerates = */NULL,
/*.pix_fmts = */NULL,
- /*.long_name = */NULL_IF_CONFIG_SMALL("Flash Video"),
+ /*.long_name = */NULL_IF_CONFIG_SMALL("Flash Video (FLV) / Sorenson Spark / Sorenson H.263"),
};
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/h264.c b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/h264.c
index c1b2d53b5..138229605 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/h264.c
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/h264.c
@@ -1935,6 +1935,8 @@ static void free_tables(H264Context *h){
av_freep(&hx->s.obmc_scratchpad);
av_freep(&hx->rbsp_buffer[1]);
av_freep(&hx->rbsp_buffer[0]);
+ hx->rbsp_buffer_size[0] = 0;
+ hx->rbsp_buffer_size[1] = 0;
if (i) av_freep(&h->thread_context[i]);
}
}
@@ -3795,6 +3797,25 @@ static int decode_slice_header(H264Context *h, H264Context *h0){
if (!s->context_initialized) {
if(h != h0)
return -1; // we cant (re-)initialize context during parallel decoding
+
+ avcodec_set_dimensions(s->avctx, s->width, s->height);
+ s->avctx->sample_aspect_ratio= h->sps.sar;
+ if(!s->avctx->sample_aspect_ratio.den)
+ s->avctx->sample_aspect_ratio.den = 1;
+
+ if(h->sps.timing_info_present_flag){
+ #if __STDC_VERSION__ >= 199901L
+ s->avctx->time_base= (AVRational){h->sps.num_units_in_tick * 2, h->sps.time_scale};
+ #else
+ s->avctx->time_base.num = h->sps.num_units_in_tick * 2;
+ s->avctx->time_base.den = h->sps.time_scale;
+ #endif
+ if(h->x264_build > 0 && h->x264_build < 44)
+ s->avctx->time_base.den *= 2;
+ av_reduce(&s->avctx->time_base.num, &s->avctx->time_base.den,
+ s->avctx->time_base.num, s->avctx->time_base.den, 1<<30);
+ }
+
if (MPV_common_init(s) < 0)
return -1;
s->first_field = 0;
@@ -3817,25 +3838,6 @@ static int decode_slice_header(H264Context *h, H264Context *h0){
for(i = 0; i < s->avctx->thread_count; i++)
if(context_init(h->thread_context[i]) < 0)
return -1;
-
- s->avctx->width = s->width;
- s->avctx->height = s->height;
- s->avctx->sample_aspect_ratio= h->sps.sar;
- if(!s->avctx->sample_aspect_ratio.den)
- s->avctx->sample_aspect_ratio.den = 1;
-
- if(h->sps.timing_info_present_flag){
- #if __STDC_VERSION__ >= 199901L
- s->avctx->time_base= (AVRational){h->sps.num_units_in_tick * 2, h->sps.time_scale};
- #else
- s->avctx->time_base.num = h->sps.num_units_in_tick * 2;
- s->avctx->time_base.den = h->sps.time_scale;
- #endif
- if(h->x264_build > 0 && h->x264_build < 44)
- s->avctx->time_base.den *= 2;
- av_reduce(&s->avctx->time_base.num, &s->avctx->time_base.den,
- s->avctx->time_base.num, s->avctx->time_base.den, 1<<30);
- }
}
h->frame_num= get_bits(&s->gb, h->sps.log2_max_frame_num);
@@ -6723,7 +6725,7 @@ static int decode_slice(struct AVCodecContext *avctx, void *arg){
ff_init_cabac_states( &h->cabac);
ff_init_cabac_decoder( &h->cabac,
s->gb.buffer + get_bits_count(&s->gb)/8,
- ( s->gb.size_in_bits - get_bits_count(&s->gb) + 7)/8);
+ (get_bits_left(&s->gb) + 7)/8);
/* calculate pre-state */
for( i= 0; i < 460; i++ ) {
int pre;
@@ -7693,7 +7695,7 @@ static void execute_decode_slices(H264Context *h, int context_count){
}
avctx->execute(avctx, (void *)decode_slice,
- (void **)h->thread_context, NULL, context_count, sizeof(void*));
+ h->thread_context, NULL, context_count, sizeof(void*));
/* pull back stuff from slices to master context */
hx = h->thread_context[context_count - 1];
@@ -8004,7 +8006,7 @@ static int decode_frame(AVCodecContext *avctx,
if(!(s->flags2 & CODEC_FLAG2_CHUNKS) || (s->mb_y >= s->mb_height && s->mb_height)){
Picture *out = s->current_picture_ptr;
Picture *cur = s->current_picture_ptr;
- int i, pics, cross_idr, out_of_order, out_idx;
+ int i, pics, out_of_order, out_idx;
field_end(h);
@@ -8112,15 +8114,15 @@ static int decode_frame(AVCodecContext *avctx,
out = h->delayed_pic[i];
out_idx = i;
}
- cross_idr = !!h->delayed_pic[i] || h->delayed_pic[0]->key_frame || h->delayed_pic[0]->mmco_reset;
-
- out_of_order = !cross_idr && out->poc < h->outputed_poc;
+ if(s->avctx->has_b_frames == 0 && (h->delayed_pic[0]->key_frame || h->delayed_pic[0]->mmco_reset))
+ h->outputed_poc= INT_MIN;
+ out_of_order = out->poc < h->outputed_poc;
if(h->sps.bitstream_restriction_flag && s->avctx->has_b_frames >= h->sps.num_reorder_frames)
{ }
else if((out_of_order && pics-1 == s->avctx->has_b_frames && s->avctx->has_b_frames < MAX_DELAYED_PIC_COUNT)
|| (s->low_delay &&
- ((!cross_idr && out->poc > h->outputed_poc + 2)
+ ((h->outputed_poc != INT_MIN && out->poc > h->outputed_poc + 2)
|| cur->pict_type == FF_B_TYPE)))
{
s->low_delay = 0;
@@ -8135,7 +8137,10 @@ static int decode_frame(AVCodecContext *avctx,
if(!out_of_order && pics > s->avctx->has_b_frames){
*data_size = sizeof(AVFrame);
- h->outputed_poc = out->poc;
+ if(out_idx==0 && h->delayed_pic[0] && (h->delayed_pic[0]->key_frame || h->delayed_pic[0]->mmco_reset)) {
+ h->outputed_poc = INT_MIN;
+ } else
+ h->outputed_poc = out->poc;
*pict= *(AVFrame*)out;
}else{
av_log(avctx, AV_LOG_DEBUG, "no picture\n");
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/imgconvert.c b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/imgconvert.c
index b5044fc76..6584fae99 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/imgconvert.c
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/imgconvert.c
@@ -797,7 +797,7 @@ int ff_fill_linesize(AVPicture *picture, enum PixelFormat pix_fmt, int width)
case PIX_FMT_NV21:
w2 = (width + (1 << pinfo->x_chroma_shift) - 1) >> pinfo->x_chroma_shift;
picture->linesize[0] = width;
- picture->linesize[1] = w2;
+ picture->linesize[1] = 2 * w2;
break;
case PIX_FMT_RGB24:
case PIX_FMT_BGR24:
@@ -887,12 +887,12 @@ int ff_fill_pointer(AVPicture *picture, uint8_t *ptr, enum PixelFormat pix_fmt,
case PIX_FMT_NV12:
case PIX_FMT_NV21:
h2 = (height + (1 << pinfo->y_chroma_shift) - 1) >> pinfo->y_chroma_shift;
- size2 = picture->linesize[1] * h2 * 2;
+ size2 = picture->linesize[1] * h2;
picture->data[0] = ptr;
picture->data[1] = picture->data[0] + size;
picture->data[2] = NULL;
picture->data[3] = NULL;
- return size + 2 * size2;
+ return size + size2;
case PIX_FMT_RGB24:
case PIX_FMT_BGR24:
case PIX_FMT_RGB32:
@@ -1020,9 +1020,7 @@ void av_picture_copy(AVPicture *dst, const AVPicture *src,
src->data[0], src->linesize[0],
width, height);
/* copy the palette */
- ff_img_copy_plane(dst->data[1], dst->linesize[1],
- src->data[1], src->linesize[1],
- 4, 256);
+ memcpy(dst->data[1], src->data[1], 4*256);
break;
}
}
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/mjpegdec.c b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/mjpegdec.c
index 44f4c85e0..58dc1fbe5 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/mjpegdec.c
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/mjpegdec.c
@@ -105,6 +105,8 @@ av_cold int ff_mjpeg_decode_init(AVCodecContext *avctx)
av_log(avctx, AV_LOG_DEBUG, "mjpeg bottom field first\n");
}
}
+ if (avctx->codec->id == CODEC_ID_AMV)
+ s->flipped = 1;
return 0;
}
@@ -290,9 +292,10 @@ int ff_mjpeg_decode_sof(MJpegDecodeContext *s)
(s->h_count[2] << 12) | (s->v_count[2] << 8) |
(s->h_count[3] << 4) | s->v_count[3];
av_log(s->avctx, AV_LOG_DEBUG, "pix fmt id %x\n", pix_fmt_id);
- if(!(pix_fmt_id & 0x10101010))
+ //NOTE we do not allocate pictures large enough for the possible padding of h/v_count being 4
+ if(!(pix_fmt_id & 0xD0D0D0D0))
pix_fmt_id-= (pix_fmt_id & 0xF0F0F0F0)>>1;
- if(!(pix_fmt_id & 0x01010101))
+ if(!(pix_fmt_id & 0x0D0D0D0D))
pix_fmt_id-= (pix_fmt_id & 0x0F0F0F0F)>>1;
switch(pix_fmt_id){
@@ -614,16 +617,16 @@ static int decode_block_refinement(MJpegDecodeContext *s, DCTELEM *block, uint8_
static int ljpeg_decode_rgb_scan(MJpegDecodeContext *s, int predictor, int point_transform){
int i, mb_x, mb_y;
- //uint16_t buffer[32768][4];
+ uint16_t (*buffer)[4];
int left[3], top[3], topleft[3];
const int linesize= s->linesize[0];
const int mask= (1<<s->bits)-1;
- if((unsigned)s->mb_width > 32768) //dynamic alloc
- return -1;
+ av_fast_malloc(&s->ljpeg_buffer, &s->ljpeg_buffer_size, (unsigned)s->mb_width * 4 * sizeof(s->ljpeg_buffer[0][0]));
+ buffer= s->ljpeg_buffer;
for(i=0; i<3; i++){
- s->RGBbuffer[0][i]= 1 << (s->bits + point_transform - 1);
+ buffer[0][i]= 1 << (s->bits + point_transform - 1);
}
for(mb_y = 0; mb_y < s->mb_height; mb_y++) {
const int modified_predictor= mb_y ? predictor : 1;
@@ -633,7 +636,7 @@ static int ljpeg_decode_rgb_scan(MJpegDecodeContext *s, int predictor, int point
ptr += linesize >> 1;
for(i=0; i<3; i++){
- top[i]= left[i]= topleft[i]= s->RGBbuffer[0][i];
+ top[i]= left[i]= topleft[i]= buffer[0][i];
}
for(mb_x = 0; mb_x < s->mb_width; mb_x++) {
if (s->restart_interval && !s->restart_count)
@@ -643,12 +646,12 @@ static int ljpeg_decode_rgb_scan(MJpegDecodeContext *s, int predictor, int point
int pred;
topleft[i]= top[i];
- top[i]= s->RGBbuffer[mb_x][i];
+ top[i]= buffer[mb_x][i];
PREDICT(pred, topleft[i], top[i], left[i], modified_predictor);
left[i]=
- s->RGBbuffer[mb_x][i]= mask & (pred + (mjpeg_decode_dc(s, s->dc_index[i]) << point_transform));
+ buffer[mb_x][i]= mask & (pred + (mjpeg_decode_dc(s, s->dc_index[i]) << point_transform));
}
if (s->restart_interval && !--s->restart_count) {
@@ -659,21 +662,21 @@ static int ljpeg_decode_rgb_scan(MJpegDecodeContext *s, int predictor, int point
if(s->rct){
for(mb_x = 0; mb_x < s->mb_width; mb_x++) {
- ptr[4*mb_x+1] = s->RGBbuffer[mb_x][0] - ((s->RGBbuffer[mb_x][1] + s->RGBbuffer[mb_x][2] - 0x200)>>2);
- ptr[4*mb_x+0] = s->RGBbuffer[mb_x][1] + ptr[4*mb_x+1];
- ptr[4*mb_x+2] = s->RGBbuffer[mb_x][2] + ptr[4*mb_x+1];
+ ptr[4*mb_x+1] = buffer[mb_x][0] - ((buffer[mb_x][1] + buffer[mb_x][2] - 0x200)>>2);
+ ptr[4*mb_x+0] = buffer[mb_x][1] + ptr[4*mb_x+1];
+ ptr[4*mb_x+2] = buffer[mb_x][2] + ptr[4*mb_x+1];
}
}else if(s->pegasus_rct){
for(mb_x = 0; mb_x < s->mb_width; mb_x++) {
- ptr[4*mb_x+1] = s->RGBbuffer[mb_x][0] - ((s->RGBbuffer[mb_x][1] + s->RGBbuffer[mb_x][2])>>2);
- ptr[4*mb_x+0] = s->RGBbuffer[mb_x][1] + ptr[4*mb_x+1];
- ptr[4*mb_x+2] = s->RGBbuffer[mb_x][2] + ptr[4*mb_x+1];
+ ptr[4*mb_x+1] = buffer[mb_x][0] - ((buffer[mb_x][1] + buffer[mb_x][2])>>2);
+ ptr[4*mb_x+0] = buffer[mb_x][1] + ptr[4*mb_x+1];
+ ptr[4*mb_x+2] = buffer[mb_x][2] + ptr[4*mb_x+1];
}
}else{
for(mb_x = 0; mb_x < s->mb_width; mb_x++) {
- ptr[4*mb_x+0] = s->RGBbuffer[mb_x][0];
- ptr[4*mb_x+1] = s->RGBbuffer[mb_x][1];
- ptr[4*mb_x+2] = s->RGBbuffer[mb_x][2];
+ ptr[4*mb_x+0] = buffer[mb_x][0];
+ ptr[4*mb_x+1] = buffer[mb_x][1];
+ ptr[4*mb_x+2] = buffer[mb_x][2];
}
}
}
@@ -768,14 +771,17 @@ static int mjpeg_decode_scan(MJpegDecodeContext *s, int nb_components, int Ah, i
uint8_t* data[MAX_COMPONENTS];
int linesize[MAX_COMPONENTS];
+ if(s->flipped && s->avctx->flags & CODEC_FLAG_EMU_EDGE) {
+ av_log(s->avctx, AV_LOG_ERROR, "Can not flip image with CODEC_FLAG_EMU_EDGE set!\n");
+ s->flipped = 0;
+ }
for(i=0; i < nb_components; i++) {
int c = s->comp_index[i];
data[c] = s->picture.data[c];
linesize[c]=s->linesize[c];
s->coefs_finished[c] |= 1;
- if(s->avctx->codec->id==CODEC_ID_AMV) {
+ if(s->flipped) {
//picture should be flipped upside-down for this codec
- assert(!(s->avctx->flags & CODEC_FLAG_EMU_EDGE));
data[c] += (linesize[c] * (s->v_scount[i] * (8 * s->mb_height -((s->height/s->v_max)&7)) - 1 ));
linesize[c] *= -1;
}
@@ -1146,6 +1152,9 @@ static int mjpeg_decode_com(MJpegDecodeContext *s)
else if(!strcmp(cbuf, "CS=ITU601")){
s->cs_itu601= 1;
}
+ else if(len > 20 && !strncmp(cbuf, "Intel(R) JPEG Library", 21)){
+ s->flipped = 1;
+ }
av_free(cbuf);
}
@@ -1319,6 +1328,7 @@ int ff_mjpeg_decode_frame(AVCodecContext *avctx,
}
break;
case SOF0:
+ case SOF1:
s->lossless=0;
s->ls=0;
s->progressive=0;
@@ -1396,7 +1406,6 @@ eoi_parser:
case DRI:
mjpeg_decode_dri(s);
break;
- case SOF1:
case SOF5:
case SOF6:
case SOF7:
@@ -1439,8 +1448,13 @@ av_cold int ff_mjpeg_decode_end(AVCodecContext *avctx)
MJpegDecodeContext *s = avctx->priv_data;
int i, j;
+ if (s->picture.data[0])
+ avctx->release_buffer(avctx, &s->picture);
+
av_free(s->buffer);
av_free(s->qscale_table);
+ av_freep(&s->ljpeg_buffer);
+ s->ljpeg_buffer_size=0;
for(i=0;i<2;i++) {
for(j=0;j<4;j++)
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/mjpegdec.h b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/mjpegdec.h
index 229c0f925..11a6706a7 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/mjpegdec.h
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/mjpegdec.h
@@ -100,8 +100,11 @@ typedef struct MJpegDecodeContext {
int mjpb_skiptosod;
- uint16_t RGBbuffer[32768][4];
int cur_scan; /* current scan, used by JPEG-LS */
+ int flipped; /* true if picture is flipped */
+
+ uint16_t (*ljpeg_buffer)[4];
+ unsigned int ljpeg_buffer_size;
} MJpegDecodeContext;
int ff_mjpeg_decode_init(AVCodecContext *avctx);
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/mpegvideo.c b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/mpegvideo.c
index 5f7fcd9ec..ae2844eeb 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/mpegvideo.c
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/mpegvideo.c
@@ -858,7 +858,7 @@ int MPV_frame_start(MpegEncContext *s, AVCodecContext *avctx)
}
}
}
-alloc:
+
if(!s->encoding){
/* release non reference frames */
for(i=0; i<MAX_PICTURE_COUNT; i++){
@@ -910,15 +910,27 @@ alloc:
s->current_picture_ptr ? s->current_picture_ptr->data[0] : NULL,
s->pict_type, s->dropable);*/
+ if(s->codec_id != CODEC_ID_H264){
+ if((s->last_picture_ptr==NULL || s->last_picture_ptr->data[0]==NULL) && s->pict_type!=FF_I_TYPE){
+ av_log(avctx, AV_LOG_ERROR, "warning: first frame is no keyframe\n");
+ /* Allocate a dummy frame */
+ i= ff_find_unused_picture(s, 0);
+ s->last_picture_ptr= &s->picture[i];
+ if(ff_alloc_picture(s, s->last_picture_ptr, 0) < 0)
+ return -1;
+ }
+ if((s->next_picture_ptr==NULL || s->next_picture_ptr->data[0]==NULL) && s->pict_type==FF_B_TYPE){
+ /* Allocate a dummy frame */
+ i= ff_find_unused_picture(s, 0);
+ s->next_picture_ptr= &s->picture[i];
+ if(ff_alloc_picture(s, s->next_picture_ptr, 0) < 0)
+ return -1;
+ }
+ }
+
if(s->last_picture_ptr) ff_copy_picture(&s->last_picture, s->last_picture_ptr);
if(s->next_picture_ptr) ff_copy_picture(&s->next_picture, s->next_picture_ptr);
- if(s->pict_type != FF_I_TYPE && (s->last_picture_ptr==NULL || s->last_picture_ptr->data[0]==NULL) && !s->dropable && s->codec_id != CODEC_ID_H264){
- av_log(avctx, AV_LOG_ERROR, "warning: first frame is no keyframe\n");
- assert(s->pict_type != FF_B_TYPE); //these should have been dropped if we don't have a reference
- goto alloc;
- }
-
assert(s->pict_type == FF_I_TYPE || (s->last_picture_ptr && s->last_picture_ptr->data[0]));
if(s->picture_structure!=PICT_FRAME && s->out_format != FMT_H264){
@@ -1076,7 +1088,7 @@ static av_always_inline void mpeg_motion_lowres(MpegEncContext *s,
uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr,
int field_based, int bottom_field, int field_select,
uint8_t **ref_picture, h264_chroma_mc_func *pix_op,
- int motion_x, int motion_y, int h)
+ int motion_x, int motion_y, int h, int mb_y)
{
uint8_t *ptr_y, *ptr_cb, *ptr_cr;
int mx, my, src_x, src_y, uvsrc_x, uvsrc_y, uvlinesize, linesize, sx, sy, uvsx, uvsy;
@@ -1100,7 +1112,7 @@ static av_always_inline void mpeg_motion_lowres(MpegEncContext *s,
sx= motion_x & s_mask;
sy= motion_y & s_mask;
src_x = s->mb_x*2*block_s + (motion_x >> (lowres+1));
- src_y =(s->mb_y*2*block_s>>field_based) + (motion_y >> (lowres+1));
+ src_y =( mb_y*2*block_s>>field_based) + (motion_y >> (lowres+1));
if (s->out_format == FMT_H263) {
uvsx = ((motion_x>>1) & s_mask) | (sx&1);
@@ -1113,14 +1125,14 @@ static av_always_inline void mpeg_motion_lowres(MpegEncContext *s,
uvsx = (2*mx) & s_mask;
uvsy = (2*my) & s_mask;
uvsrc_x = s->mb_x*block_s + (mx >> lowres);
- uvsrc_y = s->mb_y*block_s + (my >> lowres);
+ uvsrc_y = mb_y*block_s + (my >> lowres);
} else {
mx = motion_x / 2;
my = motion_y / 2;
uvsx = mx & s_mask;
uvsy = my & s_mask;
uvsrc_x = s->mb_x*block_s + (mx >> (lowres+1));
- uvsrc_y =(s->mb_y*block_s>>field_based) + (my >> (lowres+1));
+ uvsrc_y =( mb_y*block_s>>field_based) + (my >> (lowres+1));
}
ptr_y = ref_picture[0] + src_y * linesize + src_x;
@@ -1247,7 +1259,7 @@ static inline void MPV_motion_lowres(MpegEncContext *s,
mpeg_motion_lowres(s, dest_y, dest_cb, dest_cr,
0, 0, 0,
ref_picture, pix_op,
- s->mv[dir][0][0], s->mv[dir][0][1], 2*block_s);
+ s->mv[dir][0][0], s->mv[dir][0][1], 2*block_s, mb_y);
break;
case MV_TYPE_8X8:
mx = 0;
@@ -1274,12 +1286,12 @@ static inline void MPV_motion_lowres(MpegEncContext *s,
mpeg_motion_lowres(s, dest_y, dest_cb, dest_cr,
1, 0, s->field_select[dir][0],
ref_picture, pix_op,
- s->mv[dir][0][0], s->mv[dir][0][1], block_s);
+ s->mv[dir][0][0], s->mv[dir][0][1], block_s, mb_y);
/* bottom field */
mpeg_motion_lowres(s, dest_y, dest_cb, dest_cr,
1, 1, s->field_select[dir][1],
ref_picture, pix_op,
- s->mv[dir][1][0], s->mv[dir][1][1], block_s);
+ s->mv[dir][1][0], s->mv[dir][1][1], block_s, mb_y);
} else {
if(s->picture_structure != s->field_select[dir][0] + 1 && s->pict_type != FF_B_TYPE && !s->first_field){
ref_picture= s->current_picture_ptr->data;
@@ -1288,7 +1300,7 @@ static inline void MPV_motion_lowres(MpegEncContext *s,
mpeg_motion_lowres(s, dest_y, dest_cb, dest_cr,
0, 0, s->field_select[dir][0],
ref_picture, pix_op,
- s->mv[dir][0][0], s->mv[dir][0][1], 2*block_s);
+ s->mv[dir][0][0], s->mv[dir][0][1], 2*block_s, mb_y>>1);
}
break;
case MV_TYPE_16X8:
@@ -1304,7 +1316,7 @@ static inline void MPV_motion_lowres(MpegEncContext *s,
mpeg_motion_lowres(s, dest_y, dest_cb, dest_cr,
0, 0, s->field_select[dir][i],
ref2picture, pix_op,
- s->mv[dir][i][0], s->mv[dir][i][1] + 2*block_s*i, block_s);
+ s->mv[dir][i][0], s->mv[dir][i][1] + 2*block_s*i, block_s, mb_y>>1);
dest_y += 2*block_s*s->linesize;
dest_cb+= (2*block_s>>s->chroma_y_shift)*s->uvlinesize;
@@ -1319,7 +1331,7 @@ static inline void MPV_motion_lowres(MpegEncContext *s,
mpeg_motion_lowres(s, dest_y, dest_cb, dest_cr,
1, j, j^i,
ref_picture, pix_op,
- s->mv[dir][2*i + j][0], s->mv[dir][2*i + j][1], block_s);
+ s->mv[dir][2*i + j][0], s->mv[dir][2*i + j][1], block_s, mb_y);
}
pix_op = s->dsp.avg_h264_chroma_pixels_tab;
}
@@ -1328,7 +1340,7 @@ static inline void MPV_motion_lowres(MpegEncContext *s,
mpeg_motion_lowres(s, dest_y, dest_cb, dest_cr,
0, 0, s->picture_structure != i+1,
ref_picture, pix_op,
- s->mv[dir][2*i][0],s->mv[dir][2*i][1],2*block_s);
+ s->mv[dir][2*i][0],s->mv[dir][2*i][1],2*block_s, mb_y>>1);
// after put we make avg of the same block
pix_op = s->dsp.avg_h264_chroma_pixels_tab;
@@ -1665,16 +1677,17 @@ void MPV_decode_mb(MpegEncContext *s, DCTELEM block[12][64]){
void ff_draw_horiz_band(MpegEncContext *s, int y, int h){
if (s->avctx->draw_horiz_band) {
AVFrame *src;
+ const int field_pic= s->picture_structure != PICT_FRAME;
int offset[4];
- if(s->picture_structure != PICT_FRAME){
+ h= FFMIN(h, (s->avctx->height>>field_pic) - y);
+
+ if(field_pic && !(s->avctx->slice_flags&SLICE_FLAG_ALLOW_FIELD)){
h <<= 1;
y <<= 1;
- if(s->first_field && !(s->avctx->slice_flags&SLICE_FLAG_ALLOW_FIELD)) return;
+ if(s->first_field) return;
}
- h= FFMIN(h, s->avctx->height - y);
-
if(s->pict_type==FF_B_TYPE || s->low_delay || (s->avctx->slice_flags&SLICE_FLAG_CODED_ORDER))
src= (AVFrame*)s->current_picture_ptr;
else if(s->last_picture_ptr)
@@ -1720,9 +1733,16 @@ void ff_init_block_index(MpegEncContext *s){ //FIXME maybe rename
if(!(s->pict_type==FF_B_TYPE && s->avctx->draw_horiz_band && s->picture_structure==PICT_FRAME))
{
+ if(s->picture_structure==PICT_FRAME){
s->dest[0] += s->mb_y * linesize << mb_size;
s->dest[1] += s->mb_y * uvlinesize << (mb_size - s->chroma_y_shift);
s->dest[2] += s->mb_y * uvlinesize << (mb_size - s->chroma_y_shift);
+ }else{
+ s->dest[0] += (s->mb_y>>1) * linesize << mb_size;
+ s->dest[1] += (s->mb_y>>1) * uvlinesize << (mb_size - s->chroma_y_shift);
+ s->dest[2] += (s->mb_y>>1) * uvlinesize << (mb_size - s->chroma_y_shift);
+ assert((s->mb_y&1) == (s->picture_structure == PICT_BOTTOM_FIELD));
+ }
}
}
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/mpegvideo.h b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/mpegvideo.h
index 1210e7a42..92b2300b1 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/mpegvideo.h
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/mpegvideo.h
@@ -54,7 +54,7 @@ enum OutputFormat {
#define MAX_FCODE 7
#define MAX_MV 2048
-#define MAX_THREADS 8
+#define MAX_THREADS 16
#define MAX_PICTURE_COUNT 32
@@ -571,6 +571,7 @@ typedef struct MpegEncContext {
/* RV10 specific */
int rv10_version; ///< RV10 version: 0 or 3
int rv10_first_dc_coded[3];
+ int orig_width, orig_height;
/* MJPEG specific */
struct MJpegContext *mjpeg_ctx;
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/mpegvideo_common.h b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/mpegvideo_common.h
index ecb8265ea..eaf0a3033 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/mpegvideo_common.h
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/mpegvideo_common.h
@@ -242,7 +242,7 @@ void mpeg_motion_internal(MpegEncContext *s,
uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr,
int field_based, int bottom_field, int field_select,
uint8_t **ref_picture, op_pixels_func (*pix_op)[4],
- int motion_x, int motion_y, int h, int is_mpeg12)
+ int motion_x, int motion_y, int h, int is_mpeg12, int mb_y)
{
uint8_t *ptr_y, *ptr_cb, *ptr_cr;
int dxy, uvdxy, mx, my, src_x, src_y,
@@ -262,7 +262,7 @@ if(s->quarter_sample)
dxy = ((motion_y & 1) << 1) | (motion_x & 1);
src_x = s->mb_x* 16 + (motion_x >> 1);
- src_y =(s->mb_y<<(4-field_based)) + (motion_y >> 1);
+ src_y =( mb_y<<(4-field_based)) + (motion_y >> 1);
if (!is_mpeg12 && s->out_format == FMT_H263) {
if((s->workaround_bugs & FF_BUG_HPEL_CHROMA) && field_based){
@@ -270,7 +270,7 @@ if(s->quarter_sample)
my = motion_y >>1;
uvdxy = ((my & 1) << 1) | (mx & 1);
uvsrc_x = s->mb_x* 8 + (mx >> 1);
- uvsrc_y = (s->mb_y<<(3-field_based)) + (my >> 1);
+ uvsrc_y =( mb_y<<(3-field_based))+ (my >> 1);
}else{
uvdxy = dxy | (motion_y & 2) | ((motion_x & 2) >> 1);
uvsrc_x = src_x>>1;
@@ -281,14 +281,14 @@ if(s->quarter_sample)
my = motion_y / 4;
uvdxy = 0;
uvsrc_x = s->mb_x*8 + mx;
- uvsrc_y = s->mb_y*8 + my;
+ uvsrc_y = mb_y*8 + my;
} else {
if(s->chroma_y_shift){
mx = motion_x / 2;
my = motion_y / 2;
uvdxy = ((my & 1) << 1) | (mx & 1);
uvsrc_x = s->mb_x* 8 + (mx >> 1);
- uvsrc_y = (s->mb_y<<(3-field_based)) + (my >> 1);
+ uvsrc_y =( mb_y<<(3-field_based))+ (my >> 1);
} else {
if(s->chroma_x_shift){
//Chroma422
@@ -314,7 +314,7 @@ if(s->quarter_sample)
if(is_mpeg12 || s->codec_id == CODEC_ID_MPEG2VIDEO ||
s->codec_id == CODEC_ID_MPEG1VIDEO){
av_log(s->avctx,AV_LOG_DEBUG,
- "MPEG motion vector out of boundary\n");
+ "MPEG motion vector out of boundary (%d %d)\n", src_x, src_y);
return;
}
ff_emulated_edge_mc(s->edge_emu_buffer, ptr_y, s->linesize,
@@ -370,18 +370,18 @@ void mpeg_motion(MpegEncContext *s,
uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr,
int field_based, int bottom_field, int field_select,
uint8_t **ref_picture, op_pixels_func (*pix_op)[4],
- int motion_x, int motion_y, int h)
+ int motion_x, int motion_y, int h, int mb_y)
{
#if !CONFIG_SMALL
if(s->out_format == FMT_MPEG1)
mpeg_motion_internal(s, dest_y, dest_cb, dest_cr, field_based,
bottom_field, field_select, ref_picture, pix_op,
- motion_x, motion_y, h, 1);
+ motion_x, motion_y, h, 1, mb_y);
else
#endif
mpeg_motion_internal(s, dest_y, dest_cb, dest_cr, field_based,
bottom_field, field_select, ref_picture, pix_op,
- motion_x, motion_y, h, 0);
+ motion_x, motion_y, h, 0, mb_y);
}
//FIXME move to dsputil, avg variant, 16x16 version
@@ -736,7 +736,7 @@ static av_always_inline void MPV_motion_internal(MpegEncContext *s,
mpeg_motion(s, dest_y, dest_cb, dest_cr,
0, 0, 0,
ref_picture, pix_op,
- s->mv[dir][0][0], s->mv[dir][0][1], 16);
+ s->mv[dir][0][0], s->mv[dir][0][1], 16, mb_y);
}
break;
case MV_TYPE_8X8:
@@ -810,12 +810,12 @@ static av_always_inline void MPV_motion_internal(MpegEncContext *s,
mpeg_motion(s, dest_y, dest_cb, dest_cr,
1, 0, s->field_select[dir][0],
ref_picture, pix_op,
- s->mv[dir][0][0], s->mv[dir][0][1], 8);
+ s->mv[dir][0][0], s->mv[dir][0][1], 8, mb_y);
/* bottom field */
mpeg_motion(s, dest_y, dest_cb, dest_cr,
1, 1, s->field_select[dir][1],
ref_picture, pix_op,
- s->mv[dir][1][0], s->mv[dir][1][1], 8);
+ s->mv[dir][1][0], s->mv[dir][1][1], 8, mb_y);
}
} else {
if(s->picture_structure != s->field_select[dir][0] + 1 && s->pict_type != FF_B_TYPE && !s->first_field){
@@ -825,7 +825,7 @@ static av_always_inline void MPV_motion_internal(MpegEncContext *s,
mpeg_motion(s, dest_y, dest_cb, dest_cr,
0, 0, s->field_select[dir][0],
ref_picture, pix_op,
- s->mv[dir][0][0], s->mv[dir][0][1], 16);
+ s->mv[dir][0][0], s->mv[dir][0][1], 16, mb_y>>1);
}
break;
case MV_TYPE_16X8:
@@ -842,7 +842,7 @@ static av_always_inline void MPV_motion_internal(MpegEncContext *s,
mpeg_motion(s, dest_y, dest_cb, dest_cr,
0, 0, s->field_select[dir][i],
ref2picture, pix_op,
- s->mv[dir][i][0], s->mv[dir][i][1] + 16*i, 8);
+ s->mv[dir][i][0], s->mv[dir][i][1] + 16*i, 8, mb_y>>1);
dest_y += 16*s->linesize;
dest_cb+= (16>>s->chroma_y_shift)*s->uvlinesize;
@@ -857,7 +857,7 @@ static av_always_inline void MPV_motion_internal(MpegEncContext *s,
mpeg_motion(s, dest_y, dest_cb, dest_cr,
1, j, j^i,
ref_picture, pix_op,
- s->mv[dir][2*i + j][0], s->mv[dir][2*i + j][1], 8);
+ s->mv[dir][2*i + j][0], s->mv[dir][2*i + j][1], 8, mb_y);
}
pix_op = s->dsp.avg_pixels_tab;
}
@@ -866,7 +866,7 @@ static av_always_inline void MPV_motion_internal(MpegEncContext *s,
mpeg_motion(s, dest_y, dest_cb, dest_cr,
0, 0, s->picture_structure != i+1,
ref_picture, pix_op,
- s->mv[dir][2*i][0],s->mv[dir][2*i][1],16);
+ s->mv[dir][2*i][0],s->mv[dir][2*i][1],16, mb_y>>1);
// after put we make avg of the same block
pix_op=s->dsp.avg_pixels_tab;
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/msmpeg4.c b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/msmpeg4.c
index ba08a3d03..16ff8ddc9 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/msmpeg4.c
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/msmpeg4.c
@@ -1823,7 +1823,7 @@ int ff_msmpeg4_decode_block(MpegEncContext * s, DCTELEM * block,
if (i > 62){
i-= 192;
if(i&(~63)){
- const int left= s->gb.size_in_bits - get_bits_count(&s->gb);
+ const int left= get_bits_left(&s->gb);
if(((i+192 == 64 && level/qmul==-1) || s->error_recognition<=1) && left>=0){
av_log(s->avctx, AV_LOG_ERROR, "ignoring overflow at %d %d\n", s->mb_x, s->mb_y);
break;
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/nellymoserdec.c b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/nellymoserdec.c
index 0ba50eb86..89f5d86a4 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/nellymoserdec.c
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/nellymoserdec.c
@@ -133,7 +133,7 @@ static av_cold int decode_init(AVCodecContext * avctx) {
NellyMoserDecodeContext *s = avctx->priv_data;
s->avctx = avctx;
- av_lfg_init(&s->random_state, ff_random_get_seed());
+ av_lfg_init(&s->random_state, 0);
ff_mdct_init(&s->imdct_ctx, 8, 1, 1.0);
dsputil_init(&s->dsp, avctx);
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/options.c b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/options.c
index c4494040e..ae6ee4785 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/options.c
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/options.c
@@ -48,6 +48,7 @@ void avcodec_get_context_defaults(AVCodecContext *s){
s->release_buffer= avcodec_default_release_buffer;
s->get_format= avcodec_default_get_format;
s->execute= avcodec_default_execute;
+ s->execute2= avcodec_default_execute2;
s->sample_aspect_ratio.num=0; s->sample_aspect_ratio.den=1;
s->pix_fmt= PIX_FMT_NONE;
s->sample_fmt= SAMPLE_FMT_S16; // FIXME: set to NONE
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/put_bits.h b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/put_bits.h
index cbf650e0f..a2318ad09 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/put_bits.h
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/put_bits.h
@@ -123,11 +123,11 @@ static inline void flush_put_bits(PutBitContext *s)
void align_put_bits(PutBitContext *s);
/**
- * Puts the string s in the bitstream.
+ * Puts the string string in the bitstream.
*
* @param terminate_string 0-terminates the written string if value is 1
*/
-void ff_put_string(PutBitContext * pbc, const char *s, int terminate_string);
+void ff_put_string(PutBitContext *pb, const char *string, int terminate_string);
/**
* Copies the content of src to the bitstream.
@@ -136,6 +136,10 @@ void ff_put_string(PutBitContext * pbc, const char *s, int terminate_string);
*/
void ff_copy_bits(PutBitContext *pb, const uint8_t *src, int length);
+/**
+ * Writes up to 31 bits into a bitstream.
+ * Use put_bits32 to write 32 bits.
+ */
static inline void put_bits(PutBitContext *s, int n, unsigned int value)
#ifndef ALT_BITSTREAM_WRITER
{
@@ -143,7 +147,7 @@ static inline void put_bits(PutBitContext *s, int n, unsigned int value)
int bit_left;
// printf("put_bits=%d %x\n", n, value);
- assert(n == 32 || value < (1U << n));
+ assert(n <= 31 && value < (1U << n));
bit_buf = s->bit_buf;
bit_left = s->bit_left;
@@ -252,11 +256,27 @@ static inline void put_bits(PutBitContext *s, int n, unsigned int value)
}
#endif
-static inline void put_sbits(PutBitContext *pb, int bits, int32_t val)
+static inline void put_sbits(PutBitContext *pb, int n, int32_t value)
{
- assert(bits >= 0 && bits <= 31);
+ assert(n >= 0 && n <= 31);
- put_bits(pb, bits, val & ((1<<bits)-1));
+ put_bits(pb, n, value & ((1<<n)-1));
+}
+
+/**
+ * Writes exactly 32 bits into a bitstream.
+ */
+static void av_unused put_bits32(PutBitContext *s, uint32_t value)
+{
+ int lo = value & 0xffff;
+ int hi = value >> 16;
+#ifdef BITSTREAM_WRITER_LE
+ put_bits(s, 16, lo);
+ put_bits(s, 16, hi);
+#else
+ put_bits(s, 16, hi);
+ put_bits(s, 16, lo);
+#endif
}
/**
@@ -276,7 +296,8 @@ static inline uint8_t* put_bits_ptr(PutBitContext *s)
* Skips the given number of bytes.
* PutBitContext must be flushed & aligned to a byte boundary before calling this.
*/
-static inline void skip_put_bytes(PutBitContext *s, int n){
+static inline void skip_put_bytes(PutBitContext *s, int n)
+{
assert((put_bits_count(s)&7)==0);
#ifdef ALT_BITSTREAM_WRITER
FIXME may need some cleaning of the buffer
@@ -292,7 +313,8 @@ static inline void skip_put_bytes(PutBitContext *s, int n){
* Must only be used if the actual values in the bitstream do not matter.
* If n is 0 the behavior is undefined.
*/
-static inline void skip_put_bits(PutBitContext *s, int n){
+static inline void skip_put_bits(PutBitContext *s, int n)
+{
#ifdef ALT_BITSTREAM_WRITER
s->index += n;
#else
@@ -307,7 +329,8 @@ static inline void skip_put_bits(PutBitContext *s, int n){
*
* @param size the new size in bytes of the buffer where to put bits
*/
-static inline void set_put_bits_buffer_size(PutBitContext *s, int size){
+static inline void set_put_bits_buffer_size(PutBitContext *s, int size)
+{
s->buf_end= s->buf + size;
}
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/svq1dec.c b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/svq1dec.c
index fa6e55b13..9c810cdc7 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/svq1dec.c
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/svq1dec.c
@@ -844,5 +844,5 @@ AVCodec svq1_decoder = {
#else
/*.pix_fmts = */NULL,
#endif
- /*.long_name= */NULL_IF_CONFIG_SMALL("Sorenson Vector Quantizer 1"),
+ /*.long_name= */NULL_IF_CONFIG_SMALL("Sorenson Vector Quantizer 1 / Sorenson Video 1 / SVQ1"),
};
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/svq3.c b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/svq3.c
index 7488d9495..25dc36bbf 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/svq3.c
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/svq3.c
@@ -1068,5 +1068,5 @@ AVCodec svq3_decoder = {
/*.flush = */NULL,
/*.supported_framerates = */NULL,
/*.pix_fmts = */NULL,
- /*.long_name = */NULL_IF_CONFIG_SMALL("Sorenson Vector Quantizer 3"),
+ /*.long_name = */NULL_IF_CONFIG_SMALL("Sorenson Vector Quantizer 3 / Sorenson Video 3 / SVQ3"),
};
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/ulti.c b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/ulti.c
deleted file mode 100644
index bfaf68761..000000000
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/ulti.c
+++ /dev/null
@@ -1,419 +0,0 @@
-/*
- * IBM Ultimotion Video Decoder
- * Copyright (C) 2004 Konstantin Shishkov
- *
- * 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 ulti.c
- * IBM Ultimotion Video Decoder.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "avcodec.h"
-#include "bytestream.h"
-
-#include "ulti_cb.h"
-
-typedef struct UltimotionDecodeContext {
- AVCodecContext *avctx;
- int width, height, blocks;
- AVFrame frame;
- const uint8_t *ulti_codebook;
-} UltimotionDecodeContext;
-
-static av_cold int ulti_decode_init(AVCodecContext *avctx)
-{
- UltimotionDecodeContext *s = avctx->priv_data;
-
- s->avctx = avctx;
- s->width = avctx->width;
- s->height = avctx->height;
- s->blocks = (s->width / 8) * (s->height / 8);
- avctx->pix_fmt = PIX_FMT_YUV410P;
- avctx->coded_frame = (AVFrame*) &s->frame;
- s->ulti_codebook = ulti_codebook;
-
- return 0;
-}
-
-static const int block_coords[8] = // 4x4 block coords in 8x8 superblock
- { 0, 0, 0, 4, 4, 4, 4, 0};
-
-static const int angle_by_index[4] = { 0, 2, 6, 12};
-
-/* Lookup tables for luma and chroma - used by ulti_convert_yuv() */
-static const uint8_t ulti_lumas[64] =
- { 0x10, 0x13, 0x17, 0x1A, 0x1E, 0x21, 0x25, 0x28,
- 0x2C, 0x2F, 0x33, 0x36, 0x3A, 0x3D, 0x41, 0x44,
- 0x48, 0x4B, 0x4F, 0x52, 0x56, 0x59, 0x5C, 0x60,
- 0x63, 0x67, 0x6A, 0x6E, 0x71, 0x75, 0x78, 0x7C,
- 0x7F, 0x83, 0x86, 0x8A, 0x8D, 0x91, 0x94, 0x98,
- 0x9B, 0x9F, 0xA2, 0xA5, 0xA9, 0xAC, 0xB0, 0xB3,
- 0xB7, 0xBA, 0xBE, 0xC1, 0xC5, 0xC8, 0xCC, 0xCF,
- 0xD3, 0xD6, 0xDA, 0xDD, 0xE1, 0xE4, 0xE8, 0xEB};
-
-static const uint8_t ulti_chromas[16] =
- { 0x60, 0x67, 0x6D, 0x73, 0x7A, 0x80, 0x86, 0x8D,
- 0x93, 0x99, 0xA0, 0xA6, 0xAC, 0xB3, 0xB9, 0xC0};
-
-/* convert Ultimotion YUV block (sixteen 6-bit Y samples and
- two 4-bit chroma samples) into standard YUV and put it into frame */
-static void ulti_convert_yuv(AVFrame *frame, int x, int y,
- uint8_t *luma,int chroma)
-{
- uint8_t *y_plane, *cr_plane, *cb_plane;
- int i;
-
- y_plane = frame->data[0] + x + y * frame->linesize[0];
- cr_plane = frame->data[1] + (x / 4) + (y / 4) * frame->linesize[1];
- cb_plane = frame->data[2] + (x / 4) + (y / 4) * frame->linesize[2];
-
- cr_plane[0] = ulti_chromas[chroma >> 4];
-
- cb_plane[0] = ulti_chromas[chroma & 0xF];
-
-
- for(i = 0; i < 16; i++){
- y_plane[i & 3] = ulti_lumas[luma[i]];
- if((i & 3) == 3) { //next row
- y_plane += frame->linesize[0];
- }
- }
-}
-
-/* generate block like in MS Video1 */
-static void ulti_pattern(AVFrame *frame, int x, int y,
- int f0, int f1, int Y0, int Y1, int chroma)
-{
- uint8_t Luma[16];
- int mask, i;
- for(mask = 0x80, i = 0; mask; mask >>= 1, i++) {
- if(f0 & mask)
- Luma[i] = Y1;
- else
- Luma[i] = Y0;
- }
-
- for(mask = 0x80, i = 8; mask; mask >>= 1, i++) {
- if(f1 & mask)
- Luma[i] = Y1;
- else
- Luma[i] = Y0;
- }
-
- ulti_convert_yuv(frame, x, y, Luma, chroma);
-}
-
-/* fill block with some gradient */
-static void ulti_grad(AVFrame *frame, int x, int y, uint8_t *Y, int chroma, int angle)
-{
- uint8_t Luma[16];
- if(angle & 8) { //reverse order
- int t;
- angle &= 0x7;
- t = Y[0];
- Y[0] = Y[3];
- Y[3] = t;
- t = Y[1];
- Y[1] = Y[2];
- Y[2] = t;
- }
- switch(angle){
- case 0:
- Luma[0] = Y[0]; Luma[1] = Y[1]; Luma[2] = Y[2]; Luma[3] = Y[3];
- Luma[4] = Y[0]; Luma[5] = Y[1]; Luma[6] = Y[2]; Luma[7] = Y[3];
- Luma[8] = Y[0]; Luma[9] = Y[1]; Luma[10] = Y[2]; Luma[11] = Y[3];
- Luma[12] = Y[0]; Luma[13] = Y[1]; Luma[14] = Y[2]; Luma[15] = Y[3];
- break;
- case 1:
- Luma[0] = Y[1]; Luma[1] = Y[2]; Luma[2] = Y[3]; Luma[3] = Y[3];
- Luma[4] = Y[0]; Luma[5] = Y[1]; Luma[6] = Y[2]; Luma[7] = Y[3];
- Luma[8] = Y[0]; Luma[9] = Y[1]; Luma[10] = Y[2]; Luma[11] = Y[3];
- Luma[12] = Y[0]; Luma[13] = Y[0]; Luma[14] = Y[1]; Luma[15] = Y[2];
- break;
- case 2:
- Luma[0] = Y[1]; Luma[1] = Y[2]; Luma[2] = Y[3]; Luma[3] = Y[3];
- Luma[4] = Y[1]; Luma[5] = Y[2]; Luma[6] = Y[2]; Luma[7] = Y[3];
- Luma[8] = Y[0]; Luma[9] = Y[1]; Luma[10] = Y[1]; Luma[11] = Y[2];
- Luma[12] = Y[0]; Luma[13] = Y[0]; Luma[14] = Y[1]; Luma[15] = Y[2];
- break;
- case 3:
- Luma[0] = Y[2]; Luma[1] = Y[3]; Luma[2] = Y[3]; Luma[3] = Y[3];
- Luma[4] = Y[1]; Luma[5] = Y[2]; Luma[6] = Y[2]; Luma[7] = Y[3];
- Luma[8] = Y[0]; Luma[9] = Y[1]; Luma[10] = Y[1]; Luma[11] = Y[2];
- Luma[12] = Y[0]; Luma[13] = Y[0]; Luma[14] = Y[0]; Luma[15] = Y[1];
- break;
- case 4:
- Luma[0] = Y[3]; Luma[1] = Y[3]; Luma[2] = Y[3]; Luma[3] = Y[3];
- Luma[4] = Y[2]; Luma[5] = Y[2]; Luma[6] = Y[2]; Luma[7] = Y[2];
- Luma[8] = Y[1]; Luma[9] = Y[1]; Luma[10] = Y[1]; Luma[11] = Y[1];
- Luma[12] = Y[0]; Luma[13] = Y[0]; Luma[14] = Y[0]; Luma[15] = Y[0];
- break;
- case 5:
- Luma[0] = Y[3]; Luma[1] = Y[3]; Luma[2] = Y[3]; Luma[3] = Y[2];
- Luma[4] = Y[3]; Luma[5] = Y[2]; Luma[6] = Y[2]; Luma[7] = Y[1];
- Luma[8] = Y[2]; Luma[9] = Y[1]; Luma[10] = Y[1]; Luma[11] = Y[0];
- Luma[12] = Y[1]; Luma[13] = Y[0]; Luma[14] = Y[0]; Luma[15] = Y[0];
- break;
- case 6:
- Luma[0] = Y[3]; Luma[1] = Y[3]; Luma[2] = Y[2]; Luma[3] = Y[2];
- Luma[4] = Y[3]; Luma[5] = Y[2]; Luma[6] = Y[1]; Luma[7] = Y[1];
- Luma[8] = Y[2]; Luma[9] = Y[2]; Luma[10] = Y[1]; Luma[11] = Y[0];
- Luma[12] = Y[1]; Luma[13] = Y[1]; Luma[14] = Y[0]; Luma[15] = Y[0];
- break;
- case 7:
- Luma[0] = Y[3]; Luma[1] = Y[3]; Luma[2] = Y[2]; Luma[3] = Y[1];
- Luma[4] = Y[3]; Luma[5] = Y[2]; Luma[6] = Y[1]; Luma[7] = Y[0];
- Luma[8] = Y[3]; Luma[9] = Y[2]; Luma[10] = Y[1]; Luma[11] = Y[0];
- Luma[12] = Y[2]; Luma[13] = Y[1]; Luma[14] = Y[0]; Luma[15] = Y[0];
- break;
- default:
- Luma[0] = Y[0]; Luma[1] = Y[0]; Luma[2] = Y[1]; Luma[3] = Y[1];
- Luma[4] = Y[0]; Luma[5] = Y[0]; Luma[6] = Y[1]; Luma[7] = Y[1];
- Luma[8] = Y[2]; Luma[9] = Y[2]; Luma[10] = Y[3]; Luma[11] = Y[3];
- Luma[12] = Y[2]; Luma[13] = Y[2]; Luma[14] = Y[3]; Luma[15] = Y[3];
- break;
- }
-
- ulti_convert_yuv(frame, x, y, Luma, chroma);
-}
-
-static int ulti_decode_frame(AVCodecContext *avctx,
- void *data, int *data_size,
- const uint8_t *buf, int buf_size)
-{
- UltimotionDecodeContext *s=avctx->priv_data;
- int modifier = 0;
- int uniq = 0;
- int mode = 0;
- int blocks = 0;
- int done = 0;
- int x = 0, y = 0;
- int i;
- int skip;
- int tmp;
-
- if(s->frame.data[0])
- avctx->release_buffer(avctx, &s->frame);
-
- s->frame.reference = 1;
- s->frame.buffer_hints = FF_BUFFER_HINTS_VALID | FF_BUFFER_HINTS_PRESERVE | FF_BUFFER_HINTS_REUSABLE;
- if(avctx->get_buffer(avctx, &s->frame) < 0) {
- av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
- return -1;
- }
-
- while(!done) {
- int idx;
- if(blocks >= s->blocks || y >= s->height)
- break;//all blocks decoded
-
- idx = *buf++;
- if((idx & 0xF8) == 0x70) {
- switch(idx) {
- case 0x70: //change modifier
- modifier = *buf++;
- if(modifier>1)
- av_log(avctx, AV_LOG_INFO, "warning: modifier must be 0 or 1, got %i\n", modifier);
- break;
- case 0x71: // set uniq flag
- uniq = 1;
- break;
- case 0x72: //toggle mode
- mode = !mode;
- break;
- case 0x73: //end-of-frame
- done = 1;
- break;
- case 0x74: //skip some blocks
- skip = *buf++;
- if ((blocks + skip) >= s->blocks)
- break;
- blocks += skip;
- x += skip * 8;
- while(x >= s->width) {
- x -= s->width;
- y += 8;
- }
- break;
- default:
- av_log(avctx, AV_LOG_INFO, "warning: unknown escape 0x%02X\n", idx);
- }
- } else { //handle one block
- int code;
- int cf;
- int angle = 0;
- uint8_t Y[4]; // luma samples of block
- int tx = 0, ty = 0; //coords of subblock
- int chroma = 0;
- if (mode || uniq) {
- uniq = 0;
- cf = 1;
- chroma = 0;
- } else {
- cf = 0;
- if (idx)
- chroma = *buf++;
- }
- for (i = 0; i < 4; i++) { // for every subblock
- code = (idx >> (6 - i*2)) & 3; //extract 2 bits
- if(!code) //skip subblock
- continue;
- if(cf)
- chroma = *buf++;
- tx = x + block_coords[i * 2];
- ty = y + block_coords[(i * 2) + 1];
- switch(code) {
- case 1:
- tmp = *buf++;
-
- angle = angle_by_index[(tmp >> 6) & 0x3];
-
- Y[0] = tmp & 0x3F;
- Y[1] = Y[0];
-
- if (angle) {
- Y[2] = Y[0]+1;
- if (Y[2] > 0x3F)
- Y[2] = 0x3F;
- Y[3] = Y[2];
- } else {
- Y[2] = Y[0];
- Y[3] = Y[0];
- }
- break;
-
- case 2:
- if (modifier) { // unpack four luma samples
- tmp = bytestream_get_be24(&buf);
-
- Y[0] = (tmp >> 18) & 0x3F;
- Y[1] = (tmp >> 12) & 0x3F;
- Y[2] = (tmp >> 6) & 0x3F;
- Y[3] = tmp & 0x3F;
- angle = 16;
- } else { // retrieve luma samples from codebook
- tmp = bytestream_get_be16(&buf);
-
- angle = (tmp >> 12) & 0xF;
- tmp &= 0xFFF;
- tmp <<= 2;
- Y[0] = s->ulti_codebook[tmp];
- Y[1] = s->ulti_codebook[tmp + 1];
- Y[2] = s->ulti_codebook[tmp + 2];
- Y[3] = s->ulti_codebook[tmp + 3];
- }
- break;
-
- case 3:
- if (modifier) { // all 16 luma samples
- uint8_t Luma[16];
-
- tmp = bytestream_get_be24(&buf);
- Luma[0] = (tmp >> 18) & 0x3F;
- Luma[1] = (tmp >> 12) & 0x3F;
- Luma[2] = (tmp >> 6) & 0x3F;
- Luma[3] = tmp & 0x3F;
-
- tmp = bytestream_get_be24(&buf);
- Luma[4] = (tmp >> 18) & 0x3F;
- Luma[5] = (tmp >> 12) & 0x3F;
- Luma[6] = (tmp >> 6) & 0x3F;
- Luma[7] = tmp & 0x3F;
-
- tmp = bytestream_get_be24(&buf);
- Luma[8] = (tmp >> 18) & 0x3F;
- Luma[9] = (tmp >> 12) & 0x3F;
- Luma[10] = (tmp >> 6) & 0x3F;
- Luma[11] = tmp & 0x3F;
-
- tmp = bytestream_get_be24(&buf);
- Luma[12] = (tmp >> 18) & 0x3F;
- Luma[13] = (tmp >> 12) & 0x3F;
- Luma[14] = (tmp >> 6) & 0x3F;
- Luma[15] = tmp & 0x3F;
-
- ulti_convert_yuv(&s->frame, tx, ty, Luma, chroma);
- } else {
- tmp = *buf++;
- if(tmp & 0x80) {
- angle = (tmp >> 4) & 0x7;
- tmp = (tmp << 8) + *buf++;
- Y[0] = (tmp >> 6) & 0x3F;
- Y[1] = tmp & 0x3F;
- Y[2] = (*buf++) & 0x3F;
- Y[3] = (*buf++) & 0x3F;
- ulti_grad(&s->frame, tx, ty, Y, chroma, angle); //draw block
- } else { // some patterns
- int f0, f1;
- f0 = *buf++;
- f1 = tmp;
- Y[0] = (*buf++) & 0x3F;
- Y[1] = (*buf++) & 0x3F;
- ulti_pattern(&s->frame, tx, ty, f1, f0, Y[0], Y[1], chroma);
- }
- }
- break;
- }
- if(code != 3)
- ulti_grad(&s->frame, tx, ty, Y, chroma, angle); // draw block
- }
- blocks++;
- x += 8;
- if(x >= s->width) {
- x = 0;
- y += 8;
- }
- }
- }
-
- *data_size=sizeof(AVFrame);
- *(AVFrame*)data= s->frame;
-
- return buf_size;
-}
-
-static av_cold int ulti_decode_end(AVCodecContext *avctx)
-{
-/* UltimotionDecodeContext *s = avctx->priv_data;*/
-
- return 0;
-}
-
-AVCodec ulti_decoder = {
- "ultimotion",
- CODEC_TYPE_VIDEO,
- CODEC_ID_ULTI,
- sizeof(UltimotionDecodeContext),
- ulti_decode_init,
- NULL,
- ulti_decode_end,
- ulti_decode_frame,
- /*.capabilities = */CODEC_CAP_DR1,
- /*.next = */NULL,
- /*.flush = */NULL,
- /*.supported_framerates = */NULL,
- /*.pix_fmts = */NULL,
- /*.long_name = */NULL_IF_CONFIG_SMALL("IBM UltiMotion"),
-};
-
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/ulti_cb.h b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/ulti_cb.h
deleted file mode 100644
index 2d3c21ac9..000000000
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/ulti_cb.h
+++ /dev/null
@@ -1,4124 +0,0 @@
-/*
- * IBM Ultimotion Video Decoder
- * copyright (C) 2004 Konstantin Shishkov
- *
- * 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_ULTI_CB_H
-#define AVCODEC_ULTI_CB_H
-
-static const unsigned char ulti_codebook[16384]={
- 0x00, 0x01, 0x01, 0x02,
- 0x00, 0x01, 0x02, 0x03,
- 0x00, 0x02, 0x03, 0x04,
- 0x00, 0x01, 0x03, 0x04,
- 0x00, 0x01, 0x02, 0x04,
- 0x00, 0x02, 0x03, 0x05,
- 0x00, 0x02, 0x04, 0x05,
- 0x00, 0x01, 0x04, 0x05,
- 0x00, 0x01, 0x03, 0x05,
- 0x00, 0x02, 0x04, 0x06,
- 0x00, 0x03, 0x05, 0x06,
- 0x00, 0x01, 0x05, 0x06,
- 0x00, 0x01, 0x03, 0x06,
- 0x00, 0x06, 0x06, 0x06,
- 0x00, 0x00, 0x06, 0x06,
- 0x00, 0x00, 0x00, 0x06,
- 0x00, 0x03, 0x04, 0x07,
- 0x00, 0x03, 0x06, 0x07,
- 0x00, 0x01, 0x06, 0x07,
- 0x00, 0x01, 0x04, 0x07,
- 0x00, 0x03, 0x05, 0x08,
- 0x00, 0x04, 0x06, 0x08,
- 0x00, 0x02, 0x06, 0x08,
- 0x00, 0x02, 0x04, 0x08,
- 0x00, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x08,
- 0x00, 0x04, 0x07, 0x0B,
- 0x00, 0x05, 0x09, 0x0B,
- 0x00, 0x02, 0x09, 0x0B,
- 0x00, 0x02, 0x06, 0x0B,
- 0x00, 0x0B, 0x0B, 0x0B,
- 0x00, 0x00, 0x0B, 0x0B,
- 0x00, 0x00, 0x00, 0x0B,
- 0x00, 0x05, 0x09, 0x0E,
- 0x00, 0x07, 0x0B, 0x0E,
- 0x00, 0x03, 0x0B, 0x0E,
- 0x00, 0x03, 0x07, 0x0E,
- 0x00, 0x0E, 0x0E, 0x0E,
- 0x00, 0x00, 0x0E, 0x0E,
- 0x00, 0x00, 0x00, 0x0E,
- 0x00, 0x06, 0x0B, 0x11,
- 0x00, 0x08, 0x0D, 0x11,
- 0x00, 0x04, 0x0D, 0x11,
- 0x00, 0x04, 0x09, 0x11,
- 0x00, 0x11, 0x11, 0x11,
- 0x00, 0x00, 0x11, 0x11,
- 0x00, 0x00, 0x00, 0x11,
- 0x00, 0x07, 0x0D, 0x14,
- 0x00, 0x0A, 0x0F, 0x14,
- 0x00, 0x05, 0x0F, 0x14,
- 0x00, 0x05, 0x0A, 0x14,
- 0x00, 0x14, 0x14, 0x14,
- 0x00, 0x00, 0x14, 0x14,
- 0x00, 0x00, 0x00, 0x14,
- 0x00, 0x0B, 0x12, 0x17,
- 0x00, 0x05, 0x12, 0x17,
- 0x00, 0x05, 0x0C, 0x17,
- 0x00, 0x17, 0x17, 0x17,
- 0x00, 0x00, 0x17, 0x17,
- 0x00, 0x00, 0x00, 0x17,
- 0x00, 0x0D, 0x14, 0x1A,
- 0x00, 0x06, 0x14, 0x1A,
- 0x00, 0x06, 0x0D, 0x1A,
- 0x00, 0x1A, 0x1A, 0x1A,
- 0x00, 0x00, 0x1A, 0x1A,
- 0x00, 0x00, 0x00, 0x1A,
- 0x00, 0x0E, 0x16, 0x1D,
- 0x00, 0x07, 0x16, 0x1D,
- 0x00, 0x07, 0x0F, 0x1D,
- 0x00, 0x1D, 0x1D, 0x1D,
- 0x00, 0x00, 0x1D, 0x1D,
- 0x00, 0x00, 0x00, 0x1D,
- 0x00, 0x10, 0x18, 0x20,
- 0x00, 0x08, 0x18, 0x20,
- 0x00, 0x08, 0x10, 0x20,
- 0x00, 0x20, 0x20, 0x20,
- 0x00, 0x00, 0x20, 0x20,
- 0x00, 0x00, 0x00, 0x20,
- 0x00, 0x23, 0x23, 0x23,
- 0x00, 0x00, 0x23, 0x23,
- 0x00, 0x00, 0x00, 0x23,
- 0x00, 0x12, 0x1B, 0x24,
- 0x00, 0x09, 0x1B, 0x24,
- 0x00, 0x09, 0x12, 0x24,
- 0x00, 0x28, 0x28, 0x28,
- 0x00, 0x00, 0x28, 0x28,
- 0x00, 0x00, 0x00, 0x28,
- 0x00, 0x2E, 0x2E, 0x2E,
- 0x00, 0x00, 0x2E, 0x2E,
- 0x00, 0x00, 0x00, 0x2E,
- 0x01, 0x02, 0x02, 0x03,
- 0x01, 0x02, 0x03, 0x04,
- 0x01, 0x03, 0x04, 0x05,
- 0x01, 0x02, 0x04, 0x05,
- 0x01, 0x02, 0x03, 0x05,
- 0x01, 0x03, 0x04, 0x06,
- 0x01, 0x03, 0x05, 0x06,
- 0x01, 0x02, 0x05, 0x06,
- 0x01, 0x02, 0x04, 0x06,
- 0x01, 0x03, 0x05, 0x07,
- 0x01, 0x04, 0x06, 0x07,
- 0x01, 0x02, 0x06, 0x07,
- 0x01, 0x02, 0x04, 0x07,
- 0x01, 0x07, 0x07, 0x07,
- 0x01, 0x01, 0x07, 0x07,
- 0x01, 0x01, 0x01, 0x07,
- 0x01, 0x04, 0x05, 0x08,
- 0x01, 0x04, 0x07, 0x08,
- 0x01, 0x02, 0x07, 0x08,
- 0x01, 0x02, 0x05, 0x08,
- 0x01, 0x04, 0x06, 0x09,
- 0x01, 0x05, 0x07, 0x09,
- 0x01, 0x03, 0x07, 0x09,
- 0x01, 0x03, 0x05, 0x09,
- 0x01, 0x09, 0x09, 0x09,
- 0x01, 0x01, 0x09, 0x09,
- 0x01, 0x01, 0x01, 0x09,
- 0x01, 0x05, 0x08, 0x0C,
- 0x01, 0x06, 0x0A, 0x0C,
- 0x01, 0x03, 0x0A, 0x0C,
- 0x01, 0x03, 0x07, 0x0C,
- 0x01, 0x0C, 0x0C, 0x0C,
- 0x01, 0x01, 0x0C, 0x0C,
- 0x01, 0x01, 0x01, 0x0C,
- 0x01, 0x06, 0x0A, 0x0F,
- 0x01, 0x08, 0x0C, 0x0F,
- 0x01, 0x04, 0x0C, 0x0F,
- 0x01, 0x04, 0x08, 0x0F,
- 0x01, 0x0F, 0x0F, 0x0F,
- 0x01, 0x01, 0x0F, 0x0F,
- 0x01, 0x01, 0x01, 0x0F,
- 0x01, 0x07, 0x0C, 0x12,
- 0x01, 0x09, 0x0E, 0x12,
- 0x01, 0x05, 0x0E, 0x12,
- 0x01, 0x05, 0x0A, 0x12,
- 0x01, 0x12, 0x12, 0x12,
- 0x01, 0x01, 0x12, 0x12,
- 0x01, 0x01, 0x01, 0x12,
- 0x01, 0x08, 0x0E, 0x15,
- 0x01, 0x0B, 0x10, 0x15,
- 0x01, 0x06, 0x10, 0x15,
- 0x01, 0x06, 0x0B, 0x15,
- 0x01, 0x15, 0x15, 0x15,
- 0x01, 0x01, 0x15, 0x15,
- 0x01, 0x01, 0x01, 0x15,
- 0x01, 0x0C, 0x13, 0x18,
- 0x01, 0x06, 0x13, 0x18,
- 0x01, 0x06, 0x0D, 0x18,
- 0x01, 0x18, 0x18, 0x18,
- 0x01, 0x01, 0x18, 0x18,
- 0x01, 0x01, 0x01, 0x18,
- 0x01, 0x0E, 0x15, 0x1B,
- 0x01, 0x07, 0x15, 0x1B,
- 0x01, 0x07, 0x0E, 0x1B,
- 0x01, 0x1B, 0x1B, 0x1B,
- 0x01, 0x01, 0x1B, 0x1B,
- 0x01, 0x01, 0x01, 0x1B,
- 0x01, 0x0F, 0x17, 0x1E,
- 0x01, 0x08, 0x17, 0x1E,
- 0x01, 0x08, 0x10, 0x1E,
- 0x01, 0x1E, 0x1E, 0x1E,
- 0x01, 0x01, 0x1E, 0x1E,
- 0x01, 0x01, 0x01, 0x1E,
- 0x01, 0x11, 0x19, 0x21,
- 0x01, 0x09, 0x19, 0x21,
- 0x01, 0x09, 0x11, 0x21,
- 0x01, 0x21, 0x21, 0x21,
- 0x01, 0x01, 0x21, 0x21,
- 0x01, 0x01, 0x01, 0x21,
- 0x01, 0x24, 0x24, 0x24,
- 0x01, 0x01, 0x24, 0x24,
- 0x01, 0x01, 0x01, 0x24,
- 0x01, 0x13, 0x1C, 0x25,
- 0x01, 0x0A, 0x1C, 0x25,
- 0x01, 0x0A, 0x13, 0x25,
- 0x01, 0x29, 0x29, 0x29,
- 0x01, 0x01, 0x29, 0x29,
- 0x01, 0x01, 0x01, 0x29,
- 0x01, 0x2F, 0x2F, 0x2F,
- 0x01, 0x01, 0x2F, 0x2F,
- 0x01, 0x01, 0x01, 0x2F,
- 0x02, 0x03, 0x03, 0x04,
- 0x02, 0x03, 0x04, 0x05,
- 0x02, 0x04, 0x05, 0x06,
- 0x02, 0x03, 0x05, 0x06,
- 0x02, 0x03, 0x04, 0x06,
- 0x02, 0x04, 0x05, 0x07,
- 0x02, 0x04, 0x06, 0x07,
- 0x02, 0x03, 0x06, 0x07,
- 0x02, 0x03, 0x05, 0x07,
- 0x02, 0x04, 0x06, 0x08,
- 0x02, 0x05, 0x07, 0x08,
- 0x02, 0x03, 0x07, 0x08,
- 0x02, 0x03, 0x05, 0x08,
- 0x02, 0x08, 0x08, 0x08,
- 0x02, 0x02, 0x08, 0x08,
- 0x02, 0x02, 0x02, 0x08,
- 0x02, 0x05, 0x06, 0x09,
- 0x02, 0x05, 0x08, 0x09,
- 0x02, 0x03, 0x08, 0x09,
- 0x02, 0x03, 0x06, 0x09,
- 0x02, 0x05, 0x07, 0x0A,
- 0x02, 0x06, 0x08, 0x0A,
- 0x02, 0x04, 0x08, 0x0A,
- 0x02, 0x04, 0x06, 0x0A,
- 0x02, 0x0A, 0x0A, 0x0A,
- 0x02, 0x02, 0x0A, 0x0A,
- 0x02, 0x02, 0x02, 0x0A,
- 0x02, 0x06, 0x09, 0x0D,
- 0x02, 0x07, 0x0B, 0x0D,
- 0x02, 0x04, 0x0B, 0x0D,
- 0x02, 0x04, 0x08, 0x0D,
- 0x02, 0x0D, 0x0D, 0x0D,
- 0x02, 0x02, 0x0D, 0x0D,
- 0x02, 0x02, 0x02, 0x0D,
- 0x02, 0x07, 0x0B, 0x10,
- 0x02, 0x09, 0x0D, 0x10,
- 0x02, 0x05, 0x0D, 0x10,
- 0x02, 0x05, 0x09, 0x10,
- 0x02, 0x10, 0x10, 0x10,
- 0x02, 0x02, 0x10, 0x10,
- 0x02, 0x02, 0x02, 0x10,
- 0x02, 0x08, 0x0D, 0x13,
- 0x02, 0x0A, 0x0F, 0x13,
- 0x02, 0x06, 0x0F, 0x13,
- 0x02, 0x06, 0x0B, 0x13,
- 0x02, 0x13, 0x13, 0x13,
- 0x02, 0x02, 0x13, 0x13,
- 0x02, 0x02, 0x02, 0x13,
- 0x02, 0x09, 0x0F, 0x16,
- 0x02, 0x0C, 0x11, 0x16,
- 0x02, 0x07, 0x11, 0x16,
- 0x02, 0x07, 0x0C, 0x16,
- 0x02, 0x16, 0x16, 0x16,
- 0x02, 0x02, 0x16, 0x16,
- 0x02, 0x02, 0x02, 0x16,
- 0x02, 0x0D, 0x14, 0x19,
- 0x02, 0x07, 0x14, 0x19,
- 0x02, 0x07, 0x0E, 0x19,
- 0x02, 0x19, 0x19, 0x19,
- 0x02, 0x02, 0x19, 0x19,
- 0x02, 0x02, 0x02, 0x19,
- 0x02, 0x0F, 0x16, 0x1C,
- 0x02, 0x08, 0x16, 0x1C,
- 0x02, 0x08, 0x0F, 0x1C,
- 0x02, 0x1C, 0x1C, 0x1C,
- 0x02, 0x02, 0x1C, 0x1C,
- 0x02, 0x02, 0x02, 0x1C,
- 0x02, 0x10, 0x18, 0x1F,
- 0x02, 0x09, 0x18, 0x1F,
- 0x02, 0x09, 0x11, 0x1F,
- 0x02, 0x1F, 0x1F, 0x1F,
- 0x02, 0x02, 0x1F, 0x1F,
- 0x02, 0x02, 0x02, 0x1F,
- 0x02, 0x12, 0x1A, 0x22,
- 0x02, 0x0A, 0x1A, 0x22,
- 0x02, 0x0A, 0x12, 0x22,
- 0x02, 0x22, 0x22, 0x22,
- 0x02, 0x02, 0x22, 0x22,
- 0x02, 0x02, 0x02, 0x22,
- 0x02, 0x25, 0x25, 0x25,
- 0x02, 0x02, 0x25, 0x25,
- 0x02, 0x02, 0x02, 0x25,
- 0x02, 0x14, 0x1D, 0x26,
- 0x02, 0x0B, 0x1D, 0x26,
- 0x02, 0x0B, 0x14, 0x26,
- 0x02, 0x2A, 0x2A, 0x2A,
- 0x02, 0x02, 0x2A, 0x2A,
- 0x02, 0x02, 0x02, 0x2A,
- 0x02, 0x30, 0x30, 0x30,
- 0x02, 0x02, 0x30, 0x30,
- 0x02, 0x02, 0x02, 0x30,
- 0x03, 0x04, 0x04, 0x05,
- 0x03, 0x04, 0x05, 0x06,
- 0x03, 0x05, 0x06, 0x07,
- 0x03, 0x04, 0x06, 0x07,
- 0x03, 0x04, 0x05, 0x07,
- 0x03, 0x05, 0x06, 0x08,
- 0x03, 0x05, 0x07, 0x08,
- 0x03, 0x04, 0x07, 0x08,
- 0x03, 0x04, 0x06, 0x08,
- 0x03, 0x05, 0x07, 0x09,
- 0x03, 0x06, 0x08, 0x09,
- 0x03, 0x04, 0x08, 0x09,
- 0x03, 0x04, 0x06, 0x09,
- 0x03, 0x09, 0x09, 0x09,
- 0x03, 0x03, 0x09, 0x09,
- 0x03, 0x03, 0x03, 0x09,
- 0x03, 0x06, 0x07, 0x0A,
- 0x03, 0x06, 0x09, 0x0A,
- 0x03, 0x04, 0x09, 0x0A,
- 0x03, 0x04, 0x07, 0x0A,
- 0x03, 0x06, 0x08, 0x0B,
- 0x03, 0x07, 0x09, 0x0B,
- 0x03, 0x05, 0x09, 0x0B,
- 0x03, 0x05, 0x07, 0x0B,
- 0x03, 0x0B, 0x0B, 0x0B,
- 0x03, 0x03, 0x0B, 0x0B,
- 0x03, 0x03, 0x03, 0x0B,
- 0x03, 0x07, 0x0A, 0x0E,
- 0x03, 0x08, 0x0C, 0x0E,
- 0x03, 0x05, 0x0C, 0x0E,
- 0x03, 0x05, 0x09, 0x0E,
- 0x03, 0x0E, 0x0E, 0x0E,
- 0x03, 0x03, 0x0E, 0x0E,
- 0x03, 0x03, 0x03, 0x0E,
- 0x03, 0x08, 0x0C, 0x11,
- 0x03, 0x0A, 0x0E, 0x11,
- 0x03, 0x06, 0x0E, 0x11,
- 0x03, 0x06, 0x0A, 0x11,
- 0x03, 0x11, 0x11, 0x11,
- 0x03, 0x03, 0x11, 0x11,
- 0x03, 0x03, 0x03, 0x11,
- 0x03, 0x09, 0x0E, 0x14,
- 0x03, 0x0B, 0x10, 0x14,
- 0x03, 0x07, 0x10, 0x14,
- 0x03, 0x07, 0x0C, 0x14,
- 0x03, 0x14, 0x14, 0x14,
- 0x03, 0x03, 0x14, 0x14,
- 0x03, 0x03, 0x03, 0x14,
- 0x03, 0x0A, 0x10, 0x17,
- 0x03, 0x0D, 0x12, 0x17,
- 0x03, 0x08, 0x12, 0x17,
- 0x03, 0x08, 0x0D, 0x17,
- 0x03, 0x17, 0x17, 0x17,
- 0x03, 0x03, 0x17, 0x17,
- 0x03, 0x03, 0x03, 0x17,
- 0x03, 0x0E, 0x15, 0x1A,
- 0x03, 0x08, 0x15, 0x1A,
- 0x03, 0x08, 0x0F, 0x1A,
- 0x03, 0x1A, 0x1A, 0x1A,
- 0x03, 0x03, 0x1A, 0x1A,
- 0x03, 0x03, 0x03, 0x1A,
- 0x03, 0x10, 0x17, 0x1D,
- 0x03, 0x09, 0x17, 0x1D,
- 0x03, 0x09, 0x10, 0x1D,
- 0x03, 0x1D, 0x1D, 0x1D,
- 0x03, 0x03, 0x1D, 0x1D,
- 0x03, 0x03, 0x03, 0x1D,
- 0x03, 0x11, 0x19, 0x20,
- 0x03, 0x0A, 0x19, 0x20,
- 0x03, 0x0A, 0x12, 0x20,
- 0x03, 0x20, 0x20, 0x20,
- 0x03, 0x03, 0x20, 0x20,
- 0x03, 0x03, 0x03, 0x20,
- 0x03, 0x13, 0x1B, 0x23,
- 0x03, 0x0B, 0x1B, 0x23,
- 0x03, 0x0B, 0x13, 0x23,
- 0x03, 0x23, 0x23, 0x23,
- 0x03, 0x03, 0x23, 0x23,
- 0x03, 0x03, 0x03, 0x23,
- 0x03, 0x26, 0x26, 0x26,
- 0x03, 0x03, 0x26, 0x26,
- 0x03, 0x03, 0x03, 0x26,
- 0x03, 0x15, 0x1E, 0x27,
- 0x03, 0x0C, 0x1E, 0x27,
- 0x03, 0x0C, 0x15, 0x27,
- 0x03, 0x2B, 0x2B, 0x2B,
- 0x03, 0x03, 0x2B, 0x2B,
- 0x03, 0x03, 0x03, 0x2B,
- 0x03, 0x31, 0x31, 0x31,
- 0x03, 0x03, 0x31, 0x31,
- 0x03, 0x03, 0x03, 0x31,
- 0x04, 0x05, 0x05, 0x06,
- 0x04, 0x05, 0x06, 0x07,
- 0x04, 0x06, 0x07, 0x08,
- 0x04, 0x05, 0x07, 0x08,
- 0x04, 0x05, 0x06, 0x08,
- 0x04, 0x06, 0x07, 0x09,
- 0x04, 0x06, 0x08, 0x09,
- 0x04, 0x05, 0x08, 0x09,
- 0x04, 0x05, 0x07, 0x09,
- 0x04, 0x06, 0x08, 0x0A,
- 0x04, 0x07, 0x09, 0x0A,
- 0x04, 0x05, 0x09, 0x0A,
- 0x04, 0x05, 0x07, 0x0A,
- 0x04, 0x0A, 0x0A, 0x0A,
- 0x04, 0x04, 0x0A, 0x0A,
- 0x04, 0x04, 0x04, 0x0A,
- 0x04, 0x07, 0x08, 0x0B,
- 0x04, 0x07, 0x0A, 0x0B,
- 0x04, 0x05, 0x0A, 0x0B,
- 0x04, 0x05, 0x08, 0x0B,
- 0x04, 0x07, 0x09, 0x0C,
- 0x04, 0x08, 0x0A, 0x0C,
- 0x04, 0x06, 0x0A, 0x0C,
- 0x04, 0x06, 0x08, 0x0C,
- 0x04, 0x0C, 0x0C, 0x0C,
- 0x04, 0x04, 0x0C, 0x0C,
- 0x04, 0x04, 0x04, 0x0C,
- 0x04, 0x08, 0x0B, 0x0F,
- 0x04, 0x09, 0x0D, 0x0F,
- 0x04, 0x06, 0x0D, 0x0F,
- 0x04, 0x06, 0x0A, 0x0F,
- 0x04, 0x0F, 0x0F, 0x0F,
- 0x04, 0x04, 0x0F, 0x0F,
- 0x04, 0x04, 0x04, 0x0F,
- 0x04, 0x09, 0x0D, 0x12,
- 0x04, 0x0B, 0x0F, 0x12,
- 0x04, 0x07, 0x0F, 0x12,
- 0x04, 0x07, 0x0B, 0x12,
- 0x04, 0x12, 0x12, 0x12,
- 0x04, 0x04, 0x12, 0x12,
- 0x04, 0x04, 0x04, 0x12,
- 0x04, 0x0A, 0x0F, 0x15,
- 0x04, 0x0C, 0x11, 0x15,
- 0x04, 0x08, 0x11, 0x15,
- 0x04, 0x08, 0x0D, 0x15,
- 0x04, 0x15, 0x15, 0x15,
- 0x04, 0x04, 0x15, 0x15,
- 0x04, 0x04, 0x04, 0x15,
- 0x04, 0x0B, 0x11, 0x18,
- 0x04, 0x0E, 0x13, 0x18,
- 0x04, 0x09, 0x13, 0x18,
- 0x04, 0x09, 0x0E, 0x18,
- 0x04, 0x18, 0x18, 0x18,
- 0x04, 0x04, 0x18, 0x18,
- 0x04, 0x04, 0x04, 0x18,
- 0x04, 0x0F, 0x16, 0x1B,
- 0x04, 0x09, 0x16, 0x1B,
- 0x04, 0x09, 0x10, 0x1B,
- 0x04, 0x1B, 0x1B, 0x1B,
- 0x04, 0x04, 0x1B, 0x1B,
- 0x04, 0x04, 0x04, 0x1B,
- 0x04, 0x11, 0x18, 0x1E,
- 0x04, 0x0A, 0x18, 0x1E,
- 0x04, 0x0A, 0x11, 0x1E,
- 0x04, 0x1E, 0x1E, 0x1E,
- 0x04, 0x04, 0x1E, 0x1E,
- 0x04, 0x04, 0x04, 0x1E,
- 0x04, 0x12, 0x1A, 0x21,
- 0x04, 0x0B, 0x1A, 0x21,
- 0x04, 0x0B, 0x13, 0x21,
- 0x04, 0x21, 0x21, 0x21,
- 0x04, 0x04, 0x21, 0x21,
- 0x04, 0x04, 0x04, 0x21,
- 0x04, 0x14, 0x1C, 0x24,
- 0x04, 0x0C, 0x1C, 0x24,
- 0x04, 0x0C, 0x14, 0x24,
- 0x04, 0x24, 0x24, 0x24,
- 0x04, 0x04, 0x24, 0x24,
- 0x04, 0x04, 0x04, 0x24,
- 0x04, 0x27, 0x27, 0x27,
- 0x04, 0x04, 0x27, 0x27,
- 0x04, 0x04, 0x04, 0x27,
- 0x04, 0x16, 0x1F, 0x28,
- 0x04, 0x0D, 0x1F, 0x28,
- 0x04, 0x0D, 0x16, 0x28,
- 0x04, 0x2C, 0x2C, 0x2C,
- 0x04, 0x04, 0x2C, 0x2C,
- 0x04, 0x04, 0x04, 0x2C,
- 0x04, 0x32, 0x32, 0x32,
- 0x04, 0x04, 0x32, 0x32,
- 0x04, 0x04, 0x04, 0x32,
- 0x05, 0x06, 0x06, 0x07,
- 0x05, 0x06, 0x07, 0x08,
- 0x05, 0x07, 0x08, 0x09,
- 0x05, 0x06, 0x08, 0x09,
- 0x05, 0x06, 0x07, 0x09,
- 0x05, 0x07, 0x08, 0x0A,
- 0x05, 0x07, 0x09, 0x0A,
- 0x05, 0x06, 0x09, 0x0A,
- 0x05, 0x06, 0x08, 0x0A,
- 0x05, 0x07, 0x09, 0x0B,
- 0x05, 0x08, 0x0A, 0x0B,
- 0x05, 0x06, 0x0A, 0x0B,
- 0x05, 0x06, 0x08, 0x0B,
- 0x05, 0x0B, 0x0B, 0x0B,
- 0x05, 0x05, 0x0B, 0x0B,
- 0x05, 0x05, 0x05, 0x0B,
- 0x05, 0x08, 0x09, 0x0C,
- 0x05, 0x08, 0x0B, 0x0C,
- 0x05, 0x06, 0x0B, 0x0C,
- 0x05, 0x06, 0x09, 0x0C,
- 0x05, 0x08, 0x0A, 0x0D,
- 0x05, 0x09, 0x0B, 0x0D,
- 0x05, 0x07, 0x0B, 0x0D,
- 0x05, 0x07, 0x09, 0x0D,
- 0x05, 0x0D, 0x0D, 0x0D,
- 0x05, 0x05, 0x0D, 0x0D,
- 0x05, 0x05, 0x05, 0x0D,
- 0x05, 0x09, 0x0C, 0x10,
- 0x05, 0x0A, 0x0E, 0x10,
- 0x05, 0x07, 0x0E, 0x10,
- 0x05, 0x07, 0x0B, 0x10,
- 0x05, 0x10, 0x10, 0x10,
- 0x05, 0x05, 0x10, 0x10,
- 0x05, 0x05, 0x05, 0x10,
- 0x05, 0x0A, 0x0E, 0x13,
- 0x05, 0x0C, 0x10, 0x13,
- 0x05, 0x08, 0x10, 0x13,
- 0x05, 0x08, 0x0C, 0x13,
- 0x05, 0x13, 0x13, 0x13,
- 0x05, 0x05, 0x13, 0x13,
- 0x05, 0x05, 0x05, 0x13,
- 0x05, 0x0B, 0x10, 0x16,
- 0x05, 0x0D, 0x12, 0x16,
- 0x05, 0x09, 0x12, 0x16,
- 0x05, 0x09, 0x0E, 0x16,
- 0x05, 0x16, 0x16, 0x16,
- 0x05, 0x05, 0x16, 0x16,
- 0x05, 0x05, 0x05, 0x16,
- 0x05, 0x0C, 0x12, 0x19,
- 0x05, 0x0F, 0x14, 0x19,
- 0x05, 0x0A, 0x14, 0x19,
- 0x05, 0x0A, 0x0F, 0x19,
- 0x05, 0x19, 0x19, 0x19,
- 0x05, 0x05, 0x19, 0x19,
- 0x05, 0x05, 0x05, 0x19,
- 0x05, 0x10, 0x17, 0x1C,
- 0x05, 0x0A, 0x17, 0x1C,
- 0x05, 0x0A, 0x11, 0x1C,
- 0x05, 0x1C, 0x1C, 0x1C,
- 0x05, 0x05, 0x1C, 0x1C,
- 0x05, 0x05, 0x05, 0x1C,
- 0x05, 0x12, 0x19, 0x1F,
- 0x05, 0x0B, 0x19, 0x1F,
- 0x05, 0x0B, 0x12, 0x1F,
- 0x05, 0x1F, 0x1F, 0x1F,
- 0x05, 0x05, 0x1F, 0x1F,
- 0x05, 0x05, 0x05, 0x1F,
- 0x05, 0x13, 0x1B, 0x22,
- 0x05, 0x0C, 0x1B, 0x22,
- 0x05, 0x0C, 0x14, 0x22,
- 0x05, 0x22, 0x22, 0x22,
- 0x05, 0x05, 0x22, 0x22,
- 0x05, 0x05, 0x05, 0x22,
- 0x05, 0x15, 0x1D, 0x25,
- 0x05, 0x0D, 0x1D, 0x25,
- 0x05, 0x0D, 0x15, 0x25,
- 0x05, 0x25, 0x25, 0x25,
- 0x05, 0x05, 0x25, 0x25,
- 0x05, 0x05, 0x05, 0x25,
- 0x05, 0x28, 0x28, 0x28,
- 0x05, 0x05, 0x28, 0x28,
- 0x05, 0x05, 0x05, 0x28,
- 0x05, 0x17, 0x20, 0x29,
- 0x05, 0x0E, 0x20, 0x29,
- 0x05, 0x0E, 0x17, 0x29,
- 0x05, 0x2D, 0x2D, 0x2D,
- 0x05, 0x05, 0x2D, 0x2D,
- 0x05, 0x05, 0x05, 0x2D,
- 0x05, 0x33, 0x33, 0x33,
- 0x05, 0x05, 0x33, 0x33,
- 0x05, 0x05, 0x05, 0x33,
- 0x06, 0x07, 0x07, 0x08,
- 0x06, 0x07, 0x08, 0x09,
- 0x06, 0x08, 0x09, 0x0A,
- 0x06, 0x07, 0x09, 0x0A,
- 0x06, 0x07, 0x08, 0x0A,
- 0x06, 0x08, 0x09, 0x0B,
- 0x06, 0x08, 0x0A, 0x0B,
- 0x06, 0x07, 0x0A, 0x0B,
- 0x06, 0x07, 0x09, 0x0B,
- 0x06, 0x08, 0x0A, 0x0C,
- 0x06, 0x09, 0x0B, 0x0C,
- 0x06, 0x07, 0x0B, 0x0C,
- 0x06, 0x07, 0x09, 0x0C,
- 0x06, 0x0C, 0x0C, 0x0C,
- 0x06, 0x06, 0x0C, 0x0C,
- 0x06, 0x06, 0x06, 0x0C,
- 0x06, 0x09, 0x0A, 0x0D,
- 0x06, 0x09, 0x0C, 0x0D,
- 0x06, 0x07, 0x0C, 0x0D,
- 0x06, 0x07, 0x0A, 0x0D,
- 0x06, 0x09, 0x0B, 0x0E,
- 0x06, 0x0A, 0x0C, 0x0E,
- 0x06, 0x08, 0x0C, 0x0E,
- 0x06, 0x08, 0x0A, 0x0E,
- 0x06, 0x0E, 0x0E, 0x0E,
- 0x06, 0x06, 0x0E, 0x0E,
- 0x06, 0x06, 0x06, 0x0E,
- 0x06, 0x0A, 0x0D, 0x11,
- 0x06, 0x0B, 0x0F, 0x11,
- 0x06, 0x08, 0x0F, 0x11,
- 0x06, 0x08, 0x0C, 0x11,
- 0x06, 0x11, 0x11, 0x11,
- 0x06, 0x06, 0x11, 0x11,
- 0x06, 0x06, 0x06, 0x11,
- 0x06, 0x0B, 0x0F, 0x14,
- 0x06, 0x0D, 0x11, 0x14,
- 0x06, 0x09, 0x11, 0x14,
- 0x06, 0x09, 0x0D, 0x14,
- 0x06, 0x14, 0x14, 0x14,
- 0x06, 0x06, 0x14, 0x14,
- 0x06, 0x06, 0x06, 0x14,
- 0x06, 0x0C, 0x11, 0x17,
- 0x06, 0x0E, 0x13, 0x17,
- 0x06, 0x0A, 0x13, 0x17,
- 0x06, 0x0A, 0x0F, 0x17,
- 0x06, 0x17, 0x17, 0x17,
- 0x06, 0x06, 0x17, 0x17,
- 0x06, 0x06, 0x06, 0x17,
- 0x06, 0x0D, 0x13, 0x1A,
- 0x06, 0x10, 0x15, 0x1A,
- 0x06, 0x0B, 0x15, 0x1A,
- 0x06, 0x0B, 0x10, 0x1A,
- 0x06, 0x1A, 0x1A, 0x1A,
- 0x06, 0x06, 0x1A, 0x1A,
- 0x06, 0x06, 0x06, 0x1A,
- 0x06, 0x11, 0x18, 0x1D,
- 0x06, 0x0B, 0x18, 0x1D,
- 0x06, 0x0B, 0x12, 0x1D,
- 0x06, 0x1D, 0x1D, 0x1D,
- 0x06, 0x06, 0x1D, 0x1D,
- 0x06, 0x06, 0x06, 0x1D,
- 0x06, 0x13, 0x1A, 0x20,
- 0x06, 0x0C, 0x1A, 0x20,
- 0x06, 0x0C, 0x13, 0x20,
- 0x06, 0x20, 0x20, 0x20,
- 0x06, 0x06, 0x20, 0x20,
- 0x06, 0x06, 0x06, 0x20,
- 0x06, 0x14, 0x1C, 0x23,
- 0x06, 0x0D, 0x1C, 0x23,
- 0x06, 0x0D, 0x15, 0x23,
- 0x06, 0x23, 0x23, 0x23,
- 0x06, 0x06, 0x23, 0x23,
- 0x06, 0x06, 0x06, 0x23,
- 0x06, 0x16, 0x1E, 0x26,
- 0x06, 0x0E, 0x1E, 0x26,
- 0x06, 0x0E, 0x16, 0x26,
- 0x06, 0x26, 0x26, 0x26,
- 0x06, 0x06, 0x26, 0x26,
- 0x06, 0x06, 0x06, 0x26,
- 0x06, 0x29, 0x29, 0x29,
- 0x06, 0x06, 0x29, 0x29,
- 0x06, 0x06, 0x06, 0x29,
- 0x06, 0x18, 0x21, 0x2A,
- 0x06, 0x0F, 0x21, 0x2A,
- 0x06, 0x0F, 0x18, 0x2A,
- 0x06, 0x2E, 0x2E, 0x2E,
- 0x06, 0x06, 0x2E, 0x2E,
- 0x06, 0x06, 0x06, 0x2E,
- 0x06, 0x34, 0x34, 0x34,
- 0x06, 0x06, 0x34, 0x34,
- 0x06, 0x06, 0x06, 0x34,
- 0x07, 0x08, 0x08, 0x09,
- 0x07, 0x08, 0x09, 0x0A,
- 0x07, 0x09, 0x0A, 0x0B,
- 0x07, 0x08, 0x0A, 0x0B,
- 0x07, 0x08, 0x09, 0x0B,
- 0x07, 0x09, 0x0A, 0x0C,
- 0x07, 0x09, 0x0B, 0x0C,
- 0x07, 0x08, 0x0B, 0x0C,
- 0x07, 0x08, 0x0A, 0x0C,
- 0x07, 0x09, 0x0B, 0x0D,
- 0x07, 0x0A, 0x0C, 0x0D,
- 0x07, 0x08, 0x0C, 0x0D,
- 0x07, 0x08, 0x0A, 0x0D,
- 0x07, 0x0D, 0x0D, 0x0D,
- 0x07, 0x07, 0x0D, 0x0D,
- 0x07, 0x07, 0x07, 0x0D,
- 0x07, 0x0A, 0x0B, 0x0E,
- 0x07, 0x0A, 0x0D, 0x0E,
- 0x07, 0x08, 0x0D, 0x0E,
- 0x07, 0x08, 0x0B, 0x0E,
- 0x07, 0x0A, 0x0C, 0x0F,
- 0x07, 0x0B, 0x0D, 0x0F,
- 0x07, 0x09, 0x0D, 0x0F,
- 0x07, 0x09, 0x0B, 0x0F,
- 0x07, 0x0F, 0x0F, 0x0F,
- 0x07, 0x07, 0x0F, 0x0F,
- 0x07, 0x07, 0x07, 0x0F,
- 0x07, 0x0B, 0x0E, 0x12,
- 0x07, 0x0C, 0x10, 0x12,
- 0x07, 0x09, 0x10, 0x12,
- 0x07, 0x09, 0x0D, 0x12,
- 0x07, 0x12, 0x12, 0x12,
- 0x07, 0x07, 0x12, 0x12,
- 0x07, 0x07, 0x07, 0x12,
- 0x07, 0x0C, 0x10, 0x15,
- 0x07, 0x0E, 0x12, 0x15,
- 0x07, 0x0A, 0x12, 0x15,
- 0x07, 0x0A, 0x0E, 0x15,
- 0x07, 0x15, 0x15, 0x15,
- 0x07, 0x07, 0x15, 0x15,
- 0x07, 0x07, 0x07, 0x15,
- 0x07, 0x0D, 0x12, 0x18,
- 0x07, 0x0F, 0x14, 0x18,
- 0x07, 0x0B, 0x14, 0x18,
- 0x07, 0x0B, 0x10, 0x18,
- 0x07, 0x18, 0x18, 0x18,
- 0x07, 0x07, 0x18, 0x18,
- 0x07, 0x07, 0x07, 0x18,
- 0x07, 0x0E, 0x14, 0x1B,
- 0x07, 0x11, 0x16, 0x1B,
- 0x07, 0x0C, 0x16, 0x1B,
- 0x07, 0x0C, 0x11, 0x1B,
- 0x07, 0x1B, 0x1B, 0x1B,
- 0x07, 0x07, 0x1B, 0x1B,
- 0x07, 0x07, 0x07, 0x1B,
- 0x07, 0x12, 0x19, 0x1E,
- 0x07, 0x0C, 0x19, 0x1E,
- 0x07, 0x0C, 0x13, 0x1E,
- 0x07, 0x1E, 0x1E, 0x1E,
- 0x07, 0x07, 0x1E, 0x1E,
- 0x07, 0x07, 0x07, 0x1E,
- 0x07, 0x14, 0x1B, 0x21,
- 0x07, 0x0D, 0x1B, 0x21,
- 0x07, 0x0D, 0x14, 0x21,
- 0x07, 0x21, 0x21, 0x21,
- 0x07, 0x07, 0x21, 0x21,
- 0x07, 0x07, 0x07, 0x21,
- 0x07, 0x15, 0x1D, 0x24,
- 0x07, 0x0E, 0x1D, 0x24,
- 0x07, 0x0E, 0x16, 0x24,
- 0x07, 0x24, 0x24, 0x24,
- 0x07, 0x07, 0x24, 0x24,
- 0x07, 0x07, 0x07, 0x24,
- 0x07, 0x17, 0x1F, 0x27,
- 0x07, 0x0F, 0x1F, 0x27,
- 0x07, 0x0F, 0x17, 0x27,
- 0x07, 0x27, 0x27, 0x27,
- 0x07, 0x07, 0x27, 0x27,
- 0x07, 0x07, 0x07, 0x27,
- 0x07, 0x2A, 0x2A, 0x2A,
- 0x07, 0x07, 0x2A, 0x2A,
- 0x07, 0x07, 0x07, 0x2A,
- 0x07, 0x19, 0x22, 0x2B,
- 0x07, 0x10, 0x22, 0x2B,
- 0x07, 0x10, 0x19, 0x2B,
- 0x07, 0x2F, 0x2F, 0x2F,
- 0x07, 0x07, 0x2F, 0x2F,
- 0x07, 0x07, 0x07, 0x2F,
- 0x07, 0x35, 0x35, 0x35,
- 0x07, 0x07, 0x35, 0x35,
- 0x07, 0x07, 0x07, 0x35,
- 0x08, 0x09, 0x09, 0x0A,
- 0x08, 0x09, 0x0A, 0x0B,
- 0x08, 0x0A, 0x0B, 0x0C,
- 0x08, 0x09, 0x0B, 0x0C,
- 0x08, 0x09, 0x0A, 0x0C,
- 0x08, 0x0A, 0x0B, 0x0D,
- 0x08, 0x0A, 0x0C, 0x0D,
- 0x08, 0x09, 0x0C, 0x0D,
- 0x08, 0x09, 0x0B, 0x0D,
- 0x08, 0x0A, 0x0C, 0x0E,
- 0x08, 0x0B, 0x0D, 0x0E,
- 0x08, 0x09, 0x0D, 0x0E,
- 0x08, 0x09, 0x0B, 0x0E,
- 0x08, 0x0E, 0x0E, 0x0E,
- 0x08, 0x08, 0x0E, 0x0E,
- 0x08, 0x08, 0x08, 0x0E,
- 0x08, 0x0B, 0x0C, 0x0F,
- 0x08, 0x0B, 0x0E, 0x0F,
- 0x08, 0x09, 0x0E, 0x0F,
- 0x08, 0x09, 0x0C, 0x0F,
- 0x08, 0x0B, 0x0D, 0x10,
- 0x08, 0x0C, 0x0E, 0x10,
- 0x08, 0x0A, 0x0E, 0x10,
- 0x08, 0x0A, 0x0C, 0x10,
- 0x08, 0x10, 0x10, 0x10,
- 0x08, 0x08, 0x10, 0x10,
- 0x08, 0x08, 0x08, 0x10,
- 0x08, 0x0C, 0x0F, 0x13,
- 0x08, 0x0D, 0x11, 0x13,
- 0x08, 0x0A, 0x11, 0x13,
- 0x08, 0x0A, 0x0E, 0x13,
- 0x08, 0x13, 0x13, 0x13,
- 0x08, 0x08, 0x13, 0x13,
- 0x08, 0x08, 0x08, 0x13,
- 0x08, 0x0D, 0x11, 0x16,
- 0x08, 0x0F, 0x13, 0x16,
- 0x08, 0x0B, 0x13, 0x16,
- 0x08, 0x0B, 0x0F, 0x16,
- 0x08, 0x16, 0x16, 0x16,
- 0x08, 0x08, 0x16, 0x16,
- 0x08, 0x08, 0x08, 0x16,
- 0x08, 0x0E, 0x13, 0x19,
- 0x08, 0x10, 0x15, 0x19,
- 0x08, 0x0C, 0x15, 0x19,
- 0x08, 0x0C, 0x11, 0x19,
- 0x08, 0x19, 0x19, 0x19,
- 0x08, 0x08, 0x19, 0x19,
- 0x08, 0x08, 0x08, 0x19,
- 0x08, 0x0F, 0x15, 0x1C,
- 0x08, 0x12, 0x17, 0x1C,
- 0x08, 0x0D, 0x17, 0x1C,
- 0x08, 0x0D, 0x12, 0x1C,
- 0x08, 0x1C, 0x1C, 0x1C,
- 0x08, 0x08, 0x1C, 0x1C,
- 0x08, 0x08, 0x08, 0x1C,
- 0x08, 0x13, 0x1A, 0x1F,
- 0x08, 0x0D, 0x1A, 0x1F,
- 0x08, 0x0D, 0x14, 0x1F,
- 0x08, 0x1F, 0x1F, 0x1F,
- 0x08, 0x08, 0x1F, 0x1F,
- 0x08, 0x08, 0x08, 0x1F,
- 0x08, 0x15, 0x1C, 0x22,
- 0x08, 0x0E, 0x1C, 0x22,
- 0x08, 0x0E, 0x15, 0x22,
- 0x08, 0x22, 0x22, 0x22,
- 0x08, 0x08, 0x22, 0x22,
- 0x08, 0x08, 0x08, 0x22,
- 0x08, 0x16, 0x1E, 0x25,
- 0x08, 0x0F, 0x1E, 0x25,
- 0x08, 0x0F, 0x17, 0x25,
- 0x08, 0x25, 0x25, 0x25,
- 0x08, 0x08, 0x25, 0x25,
- 0x08, 0x08, 0x08, 0x25,
- 0x08, 0x18, 0x20, 0x28,
- 0x08, 0x10, 0x20, 0x28,
- 0x08, 0x10, 0x18, 0x28,
- 0x08, 0x28, 0x28, 0x28,
- 0x08, 0x08, 0x28, 0x28,
- 0x08, 0x08, 0x08, 0x28,
- 0x08, 0x2B, 0x2B, 0x2B,
- 0x08, 0x08, 0x2B, 0x2B,
- 0x08, 0x08, 0x08, 0x2B,
- 0x08, 0x1A, 0x23, 0x2C,
- 0x08, 0x11, 0x23, 0x2C,
- 0x08, 0x11, 0x1A, 0x2C,
- 0x08, 0x30, 0x30, 0x30,
- 0x08, 0x08, 0x30, 0x30,
- 0x08, 0x08, 0x08, 0x30,
- 0x08, 0x36, 0x36, 0x36,
- 0x08, 0x08, 0x36, 0x36,
- 0x08, 0x08, 0x08, 0x36,
- 0x09, 0x0A, 0x0A, 0x0B,
- 0x09, 0x0A, 0x0B, 0x0C,
- 0x09, 0x0B, 0x0C, 0x0D,
- 0x09, 0x0A, 0x0C, 0x0D,
- 0x09, 0x0A, 0x0B, 0x0D,
- 0x09, 0x0B, 0x0C, 0x0E,
- 0x09, 0x0B, 0x0D, 0x0E,
- 0x09, 0x0A, 0x0D, 0x0E,
- 0x09, 0x0A, 0x0C, 0x0E,
- 0x09, 0x0B, 0x0D, 0x0F,
- 0x09, 0x0C, 0x0E, 0x0F,
- 0x09, 0x0A, 0x0E, 0x0F,
- 0x09, 0x0A, 0x0C, 0x0F,
- 0x09, 0x0F, 0x0F, 0x0F,
- 0x09, 0x09, 0x0F, 0x0F,
- 0x09, 0x09, 0x09, 0x0F,
- 0x09, 0x0C, 0x0D, 0x10,
- 0x09, 0x0C, 0x0F, 0x10,
- 0x09, 0x0A, 0x0F, 0x10,
- 0x09, 0x0A, 0x0D, 0x10,
- 0x09, 0x0C, 0x0E, 0x11,
- 0x09, 0x0D, 0x0F, 0x11,
- 0x09, 0x0B, 0x0F, 0x11,
- 0x09, 0x0B, 0x0D, 0x11,
- 0x09, 0x11, 0x11, 0x11,
- 0x09, 0x09, 0x11, 0x11,
- 0x09, 0x09, 0x09, 0x11,
- 0x09, 0x0D, 0x10, 0x14,
- 0x09, 0x0E, 0x12, 0x14,
- 0x09, 0x0B, 0x12, 0x14,
- 0x09, 0x0B, 0x0F, 0x14,
- 0x09, 0x14, 0x14, 0x14,
- 0x09, 0x09, 0x14, 0x14,
- 0x09, 0x09, 0x09, 0x14,
- 0x09, 0x0E, 0x12, 0x17,
- 0x09, 0x10, 0x14, 0x17,
- 0x09, 0x0C, 0x14, 0x17,
- 0x09, 0x0C, 0x10, 0x17,
- 0x09, 0x17, 0x17, 0x17,
- 0x09, 0x09, 0x17, 0x17,
- 0x09, 0x09, 0x09, 0x17,
- 0x09, 0x0F, 0x14, 0x1A,
- 0x09, 0x11, 0x16, 0x1A,
- 0x09, 0x0D, 0x16, 0x1A,
- 0x09, 0x0D, 0x12, 0x1A,
- 0x09, 0x1A, 0x1A, 0x1A,
- 0x09, 0x09, 0x1A, 0x1A,
- 0x09, 0x09, 0x09, 0x1A,
- 0x09, 0x10, 0x16, 0x1D,
- 0x09, 0x13, 0x18, 0x1D,
- 0x09, 0x0E, 0x18, 0x1D,
- 0x09, 0x0E, 0x13, 0x1D,
- 0x09, 0x1D, 0x1D, 0x1D,
- 0x09, 0x09, 0x1D, 0x1D,
- 0x09, 0x09, 0x09, 0x1D,
- 0x09, 0x14, 0x1B, 0x20,
- 0x09, 0x0E, 0x1B, 0x20,
- 0x09, 0x0E, 0x15, 0x20,
- 0x09, 0x20, 0x20, 0x20,
- 0x09, 0x09, 0x20, 0x20,
- 0x09, 0x09, 0x09, 0x20,
- 0x09, 0x16, 0x1D, 0x23,
- 0x09, 0x0F, 0x1D, 0x23,
- 0x09, 0x0F, 0x16, 0x23,
- 0x09, 0x23, 0x23, 0x23,
- 0x09, 0x09, 0x23, 0x23,
- 0x09, 0x09, 0x09, 0x23,
- 0x09, 0x17, 0x1F, 0x26,
- 0x09, 0x10, 0x1F, 0x26,
- 0x09, 0x10, 0x18, 0x26,
- 0x09, 0x26, 0x26, 0x26,
- 0x09, 0x09, 0x26, 0x26,
- 0x09, 0x09, 0x09, 0x26,
- 0x09, 0x19, 0x21, 0x29,
- 0x09, 0x11, 0x21, 0x29,
- 0x09, 0x11, 0x19, 0x29,
- 0x09, 0x29, 0x29, 0x29,
- 0x09, 0x09, 0x29, 0x29,
- 0x09, 0x09, 0x09, 0x29,
- 0x09, 0x2C, 0x2C, 0x2C,
- 0x09, 0x09, 0x2C, 0x2C,
- 0x09, 0x09, 0x09, 0x2C,
- 0x09, 0x1B, 0x24, 0x2D,
- 0x09, 0x12, 0x24, 0x2D,
- 0x09, 0x12, 0x1B, 0x2D,
- 0x09, 0x31, 0x31, 0x31,
- 0x09, 0x09, 0x31, 0x31,
- 0x09, 0x09, 0x09, 0x31,
- 0x09, 0x37, 0x37, 0x37,
- 0x09, 0x09, 0x37, 0x37,
- 0x09, 0x09, 0x09, 0x37,
- 0x0A, 0x0B, 0x0B, 0x0C,
- 0x0A, 0x0B, 0x0C, 0x0D,
- 0x0A, 0x0C, 0x0D, 0x0E,
- 0x0A, 0x0B, 0x0D, 0x0E,
- 0x0A, 0x0B, 0x0C, 0x0E,
- 0x0A, 0x0C, 0x0D, 0x0F,
- 0x0A, 0x0C, 0x0E, 0x0F,
- 0x0A, 0x0B, 0x0E, 0x0F,
- 0x0A, 0x0B, 0x0D, 0x0F,
- 0x0A, 0x0C, 0x0E, 0x10,
- 0x0A, 0x0D, 0x0F, 0x10,
- 0x0A, 0x0B, 0x0F, 0x10,
- 0x0A, 0x0B, 0x0D, 0x10,
- 0x0A, 0x10, 0x10, 0x10,
- 0x0A, 0x0A, 0x10, 0x10,
- 0x0A, 0x0A, 0x0A, 0x10,
- 0x0A, 0x0D, 0x0E, 0x11,
- 0x0A, 0x0D, 0x10, 0x11,
- 0x0A, 0x0B, 0x10, 0x11,
- 0x0A, 0x0B, 0x0E, 0x11,
- 0x0A, 0x0D, 0x0F, 0x12,
- 0x0A, 0x0E, 0x10, 0x12,
- 0x0A, 0x0C, 0x10, 0x12,
- 0x0A, 0x0C, 0x0E, 0x12,
- 0x0A, 0x12, 0x12, 0x12,
- 0x0A, 0x0A, 0x12, 0x12,
- 0x0A, 0x0A, 0x0A, 0x12,
- 0x0A, 0x0E, 0x11, 0x15,
- 0x0A, 0x0F, 0x13, 0x15,
- 0x0A, 0x0C, 0x13, 0x15,
- 0x0A, 0x0C, 0x10, 0x15,
- 0x0A, 0x15, 0x15, 0x15,
- 0x0A, 0x0A, 0x15, 0x15,
- 0x0A, 0x0A, 0x0A, 0x15,
- 0x0A, 0x0F, 0x13, 0x18,
- 0x0A, 0x11, 0x15, 0x18,
- 0x0A, 0x0D, 0x15, 0x18,
- 0x0A, 0x0D, 0x11, 0x18,
- 0x0A, 0x18, 0x18, 0x18,
- 0x0A, 0x0A, 0x18, 0x18,
- 0x0A, 0x0A, 0x0A, 0x18,
- 0x0A, 0x10, 0x15, 0x1B,
- 0x0A, 0x12, 0x17, 0x1B,
- 0x0A, 0x0E, 0x17, 0x1B,
- 0x0A, 0x0E, 0x13, 0x1B,
- 0x0A, 0x1B, 0x1B, 0x1B,
- 0x0A, 0x0A, 0x1B, 0x1B,
- 0x0A, 0x0A, 0x0A, 0x1B,
- 0x0A, 0x11, 0x17, 0x1E,
- 0x0A, 0x14, 0x19, 0x1E,
- 0x0A, 0x0F, 0x19, 0x1E,
- 0x0A, 0x0F, 0x14, 0x1E,
- 0x0A, 0x1E, 0x1E, 0x1E,
- 0x0A, 0x0A, 0x1E, 0x1E,
- 0x0A, 0x0A, 0x0A, 0x1E,
- 0x0A, 0x15, 0x1C, 0x21,
- 0x0A, 0x0F, 0x1C, 0x21,
- 0x0A, 0x0F, 0x16, 0x21,
- 0x0A, 0x21, 0x21, 0x21,
- 0x0A, 0x0A, 0x21, 0x21,
- 0x0A, 0x0A, 0x0A, 0x21,
- 0x0A, 0x17, 0x1E, 0x24,
- 0x0A, 0x10, 0x1E, 0x24,
- 0x0A, 0x10, 0x17, 0x24,
- 0x0A, 0x24, 0x24, 0x24,
- 0x0A, 0x0A, 0x24, 0x24,
- 0x0A, 0x0A, 0x0A, 0x24,
- 0x0A, 0x18, 0x20, 0x27,
- 0x0A, 0x11, 0x20, 0x27,
- 0x0A, 0x11, 0x19, 0x27,
- 0x0A, 0x27, 0x27, 0x27,
- 0x0A, 0x0A, 0x27, 0x27,
- 0x0A, 0x0A, 0x0A, 0x27,
- 0x0A, 0x1A, 0x22, 0x2A,
- 0x0A, 0x12, 0x22, 0x2A,
- 0x0A, 0x12, 0x1A, 0x2A,
- 0x0A, 0x2A, 0x2A, 0x2A,
- 0x0A, 0x0A, 0x2A, 0x2A,
- 0x0A, 0x0A, 0x0A, 0x2A,
- 0x0A, 0x2D, 0x2D, 0x2D,
- 0x0A, 0x0A, 0x2D, 0x2D,
- 0x0A, 0x0A, 0x0A, 0x2D,
- 0x0A, 0x1C, 0x25, 0x2E,
- 0x0A, 0x13, 0x25, 0x2E,
- 0x0A, 0x13, 0x1C, 0x2E,
- 0x0A, 0x32, 0x32, 0x32,
- 0x0A, 0x0A, 0x32, 0x32,
- 0x0A, 0x0A, 0x0A, 0x32,
- 0x0A, 0x38, 0x38, 0x38,
- 0x0A, 0x0A, 0x38, 0x38,
- 0x0A, 0x0A, 0x0A, 0x38,
- 0x0B, 0x0C, 0x0C, 0x0D,
- 0x0B, 0x0C, 0x0D, 0x0E,
- 0x0B, 0x0D, 0x0E, 0x0F,
- 0x0B, 0x0C, 0x0E, 0x0F,
- 0x0B, 0x0C, 0x0D, 0x0F,
- 0x0B, 0x0D, 0x0E, 0x10,
- 0x0B, 0x0D, 0x0F, 0x10,
- 0x0B, 0x0C, 0x0F, 0x10,
- 0x0B, 0x0C, 0x0E, 0x10,
- 0x0B, 0x0D, 0x0F, 0x11,
- 0x0B, 0x0E, 0x10, 0x11,
- 0x0B, 0x0C, 0x10, 0x11,
- 0x0B, 0x0C, 0x0E, 0x11,
- 0x0B, 0x11, 0x11, 0x11,
- 0x0B, 0x0B, 0x11, 0x11,
- 0x0B, 0x0B, 0x0B, 0x11,
- 0x0B, 0x0E, 0x0F, 0x12,
- 0x0B, 0x0E, 0x11, 0x12,
- 0x0B, 0x0C, 0x11, 0x12,
- 0x0B, 0x0C, 0x0F, 0x12,
- 0x0B, 0x0E, 0x10, 0x13,
- 0x0B, 0x0F, 0x11, 0x13,
- 0x0B, 0x0D, 0x11, 0x13,
- 0x0B, 0x0D, 0x0F, 0x13,
- 0x0B, 0x13, 0x13, 0x13,
- 0x0B, 0x0B, 0x13, 0x13,
- 0x0B, 0x0B, 0x0B, 0x13,
- 0x0B, 0x0F, 0x12, 0x16,
- 0x0B, 0x10, 0x14, 0x16,
- 0x0B, 0x0D, 0x14, 0x16,
- 0x0B, 0x0D, 0x11, 0x16,
- 0x0B, 0x16, 0x16, 0x16,
- 0x0B, 0x0B, 0x16, 0x16,
- 0x0B, 0x0B, 0x0B, 0x16,
- 0x0B, 0x10, 0x14, 0x19,
- 0x0B, 0x12, 0x16, 0x19,
- 0x0B, 0x0E, 0x16, 0x19,
- 0x0B, 0x0E, 0x12, 0x19,
- 0x0B, 0x19, 0x19, 0x19,
- 0x0B, 0x0B, 0x19, 0x19,
- 0x0B, 0x0B, 0x0B, 0x19,
- 0x0B, 0x11, 0x16, 0x1C,
- 0x0B, 0x13, 0x18, 0x1C,
- 0x0B, 0x0F, 0x18, 0x1C,
- 0x0B, 0x0F, 0x14, 0x1C,
- 0x0B, 0x1C, 0x1C, 0x1C,
- 0x0B, 0x0B, 0x1C, 0x1C,
- 0x0B, 0x0B, 0x0B, 0x1C,
- 0x0B, 0x12, 0x18, 0x1F,
- 0x0B, 0x15, 0x1A, 0x1F,
- 0x0B, 0x10, 0x1A, 0x1F,
- 0x0B, 0x10, 0x15, 0x1F,
- 0x0B, 0x1F, 0x1F, 0x1F,
- 0x0B, 0x0B, 0x1F, 0x1F,
- 0x0B, 0x0B, 0x0B, 0x1F,
- 0x0B, 0x16, 0x1D, 0x22,
- 0x0B, 0x10, 0x1D, 0x22,
- 0x0B, 0x10, 0x17, 0x22,
- 0x0B, 0x22, 0x22, 0x22,
- 0x0B, 0x0B, 0x22, 0x22,
- 0x0B, 0x0B, 0x0B, 0x22,
- 0x0B, 0x18, 0x1F, 0x25,
- 0x0B, 0x11, 0x1F, 0x25,
- 0x0B, 0x11, 0x18, 0x25,
- 0x0B, 0x25, 0x25, 0x25,
- 0x0B, 0x0B, 0x25, 0x25,
- 0x0B, 0x0B, 0x0B, 0x25,
- 0x0B, 0x19, 0x21, 0x28,
- 0x0B, 0x12, 0x21, 0x28,
- 0x0B, 0x12, 0x1A, 0x28,
- 0x0B, 0x28, 0x28, 0x28,
- 0x0B, 0x0B, 0x28, 0x28,
- 0x0B, 0x0B, 0x0B, 0x28,
- 0x0B, 0x1B, 0x23, 0x2B,
- 0x0B, 0x13, 0x23, 0x2B,
- 0x0B, 0x13, 0x1B, 0x2B,
- 0x0B, 0x2B, 0x2B, 0x2B,
- 0x0B, 0x0B, 0x2B, 0x2B,
- 0x0B, 0x0B, 0x0B, 0x2B,
- 0x0B, 0x2E, 0x2E, 0x2E,
- 0x0B, 0x0B, 0x2E, 0x2E,
- 0x0B, 0x0B, 0x0B, 0x2E,
- 0x0B, 0x1D, 0x26, 0x2F,
- 0x0B, 0x14, 0x26, 0x2F,
- 0x0B, 0x14, 0x1D, 0x2F,
- 0x0B, 0x33, 0x33, 0x33,
- 0x0B, 0x0B, 0x33, 0x33,
- 0x0B, 0x0B, 0x0B, 0x33,
- 0x0B, 0x39, 0x39, 0x39,
- 0x0B, 0x0B, 0x39, 0x39,
- 0x0B, 0x0B, 0x0B, 0x39,
- 0x0C, 0x0D, 0x0D, 0x0E,
- 0x0C, 0x0D, 0x0E, 0x0F,
- 0x0C, 0x0E, 0x0F, 0x10,
- 0x0C, 0x0D, 0x0F, 0x10,
- 0x0C, 0x0D, 0x0E, 0x10,
- 0x0C, 0x0E, 0x0F, 0x11,
- 0x0C, 0x0E, 0x10, 0x11,
- 0x0C, 0x0D, 0x10, 0x11,
- 0x0C, 0x0D, 0x0F, 0x11,
- 0x0C, 0x0E, 0x10, 0x12,
- 0x0C, 0x0F, 0x11, 0x12,
- 0x0C, 0x0D, 0x11, 0x12,
- 0x0C, 0x0D, 0x0F, 0x12,
- 0x0C, 0x12, 0x12, 0x12,
- 0x0C, 0x0C, 0x12, 0x12,
- 0x0C, 0x0C, 0x0C, 0x12,
- 0x0C, 0x0F, 0x10, 0x13,
- 0x0C, 0x0F, 0x12, 0x13,
- 0x0C, 0x0D, 0x12, 0x13,
- 0x0C, 0x0D, 0x10, 0x13,
- 0x0C, 0x0F, 0x11, 0x14,
- 0x0C, 0x10, 0x12, 0x14,
- 0x0C, 0x0E, 0x12, 0x14,
- 0x0C, 0x0E, 0x10, 0x14,
- 0x0C, 0x14, 0x14, 0x14,
- 0x0C, 0x0C, 0x14, 0x14,
- 0x0C, 0x0C, 0x0C, 0x14,
- 0x0C, 0x10, 0x13, 0x17,
- 0x0C, 0x11, 0x15, 0x17,
- 0x0C, 0x0E, 0x15, 0x17,
- 0x0C, 0x0E, 0x12, 0x17,
- 0x0C, 0x17, 0x17, 0x17,
- 0x0C, 0x0C, 0x17, 0x17,
- 0x0C, 0x0C, 0x0C, 0x17,
- 0x0C, 0x11, 0x15, 0x1A,
- 0x0C, 0x13, 0x17, 0x1A,
- 0x0C, 0x0F, 0x17, 0x1A,
- 0x0C, 0x0F, 0x13, 0x1A,
- 0x0C, 0x1A, 0x1A, 0x1A,
- 0x0C, 0x0C, 0x1A, 0x1A,
- 0x0C, 0x0C, 0x0C, 0x1A,
- 0x0C, 0x12, 0x17, 0x1D,
- 0x0C, 0x14, 0x19, 0x1D,
- 0x0C, 0x10, 0x19, 0x1D,
- 0x0C, 0x10, 0x15, 0x1D,
- 0x0C, 0x1D, 0x1D, 0x1D,
- 0x0C, 0x0C, 0x1D, 0x1D,
- 0x0C, 0x0C, 0x0C, 0x1D,
- 0x0C, 0x13, 0x19, 0x20,
- 0x0C, 0x16, 0x1B, 0x20,
- 0x0C, 0x11, 0x1B, 0x20,
- 0x0C, 0x11, 0x16, 0x20,
- 0x0C, 0x20, 0x20, 0x20,
- 0x0C, 0x0C, 0x20, 0x20,
- 0x0C, 0x0C, 0x0C, 0x20,
- 0x0C, 0x17, 0x1E, 0x23,
- 0x0C, 0x11, 0x1E, 0x23,
- 0x0C, 0x11, 0x18, 0x23,
- 0x0C, 0x23, 0x23, 0x23,
- 0x0C, 0x0C, 0x23, 0x23,
- 0x0C, 0x0C, 0x0C, 0x23,
- 0x0C, 0x19, 0x20, 0x26,
- 0x0C, 0x12, 0x20, 0x26,
- 0x0C, 0x12, 0x19, 0x26,
- 0x0C, 0x26, 0x26, 0x26,
- 0x0C, 0x0C, 0x26, 0x26,
- 0x0C, 0x0C, 0x0C, 0x26,
- 0x0C, 0x1A, 0x22, 0x29,
- 0x0C, 0x13, 0x22, 0x29,
- 0x0C, 0x13, 0x1B, 0x29,
- 0x0C, 0x29, 0x29, 0x29,
- 0x0C, 0x0C, 0x29, 0x29,
- 0x0C, 0x0C, 0x0C, 0x29,
- 0x0C, 0x1C, 0x24, 0x2C,
- 0x0C, 0x14, 0x24, 0x2C,
- 0x0C, 0x14, 0x1C, 0x2C,
- 0x0C, 0x2C, 0x2C, 0x2C,
- 0x0C, 0x0C, 0x2C, 0x2C,
- 0x0C, 0x0C, 0x0C, 0x2C,
- 0x0C, 0x2F, 0x2F, 0x2F,
- 0x0C, 0x0C, 0x2F, 0x2F,
- 0x0C, 0x0C, 0x0C, 0x2F,
- 0x0C, 0x1E, 0x27, 0x30,
- 0x0C, 0x15, 0x27, 0x30,
- 0x0C, 0x15, 0x1E, 0x30,
- 0x0C, 0x34, 0x34, 0x34,
- 0x0C, 0x0C, 0x34, 0x34,
- 0x0C, 0x0C, 0x0C, 0x34,
- 0x0C, 0x3A, 0x3A, 0x3A,
- 0x0C, 0x0C, 0x3A, 0x3A,
- 0x0C, 0x0C, 0x0C, 0x3A,
- 0x0D, 0x0E, 0x0E, 0x0F,
- 0x0D, 0x0E, 0x0F, 0x10,
- 0x0D, 0x0F, 0x10, 0x11,
- 0x0D, 0x0E, 0x10, 0x11,
- 0x0D, 0x0E, 0x0F, 0x11,
- 0x0D, 0x0F, 0x10, 0x12,
- 0x0D, 0x0F, 0x11, 0x12,
- 0x0D, 0x0E, 0x11, 0x12,
- 0x0D, 0x0E, 0x10, 0x12,
- 0x0D, 0x0F, 0x11, 0x13,
- 0x0D, 0x10, 0x12, 0x13,
- 0x0D, 0x0E, 0x12, 0x13,
- 0x0D, 0x0E, 0x10, 0x13,
- 0x0D, 0x13, 0x13, 0x13,
- 0x0D, 0x0D, 0x13, 0x13,
- 0x0D, 0x0D, 0x0D, 0x13,
- 0x0D, 0x10, 0x11, 0x14,
- 0x0D, 0x10, 0x13, 0x14,
- 0x0D, 0x0E, 0x13, 0x14,
- 0x0D, 0x0E, 0x11, 0x14,
- 0x0D, 0x10, 0x12, 0x15,
- 0x0D, 0x11, 0x13, 0x15,
- 0x0D, 0x0F, 0x13, 0x15,
- 0x0D, 0x0F, 0x11, 0x15,
- 0x0D, 0x15, 0x15, 0x15,
- 0x0D, 0x0D, 0x15, 0x15,
- 0x0D, 0x0D, 0x0D, 0x15,
- 0x0D, 0x11, 0x14, 0x18,
- 0x0D, 0x12, 0x16, 0x18,
- 0x0D, 0x0F, 0x16, 0x18,
- 0x0D, 0x0F, 0x13, 0x18,
- 0x0D, 0x18, 0x18, 0x18,
- 0x0D, 0x0D, 0x18, 0x18,
- 0x0D, 0x0D, 0x0D, 0x18,
- 0x0D, 0x12, 0x16, 0x1B,
- 0x0D, 0x14, 0x18, 0x1B,
- 0x0D, 0x10, 0x18, 0x1B,
- 0x0D, 0x10, 0x14, 0x1B,
- 0x0D, 0x1B, 0x1B, 0x1B,
- 0x0D, 0x0D, 0x1B, 0x1B,
- 0x0D, 0x0D, 0x0D, 0x1B,
- 0x0D, 0x13, 0x18, 0x1E,
- 0x0D, 0x15, 0x1A, 0x1E,
- 0x0D, 0x11, 0x1A, 0x1E,
- 0x0D, 0x11, 0x16, 0x1E,
- 0x0D, 0x1E, 0x1E, 0x1E,
- 0x0D, 0x0D, 0x1E, 0x1E,
- 0x0D, 0x0D, 0x0D, 0x1E,
- 0x0D, 0x14, 0x1A, 0x21,
- 0x0D, 0x17, 0x1C, 0x21,
- 0x0D, 0x12, 0x1C, 0x21,
- 0x0D, 0x12, 0x17, 0x21,
- 0x0D, 0x21, 0x21, 0x21,
- 0x0D, 0x0D, 0x21, 0x21,
- 0x0D, 0x0D, 0x0D, 0x21,
- 0x0D, 0x18, 0x1F, 0x24,
- 0x0D, 0x12, 0x1F, 0x24,
- 0x0D, 0x12, 0x19, 0x24,
- 0x0D, 0x24, 0x24, 0x24,
- 0x0D, 0x0D, 0x24, 0x24,
- 0x0D, 0x0D, 0x0D, 0x24,
- 0x0D, 0x1A, 0x21, 0x27,
- 0x0D, 0x13, 0x21, 0x27,
- 0x0D, 0x13, 0x1A, 0x27,
- 0x0D, 0x27, 0x27, 0x27,
- 0x0D, 0x0D, 0x27, 0x27,
- 0x0D, 0x0D, 0x0D, 0x27,
- 0x0D, 0x1B, 0x23, 0x2A,
- 0x0D, 0x14, 0x23, 0x2A,
- 0x0D, 0x14, 0x1C, 0x2A,
- 0x0D, 0x2A, 0x2A, 0x2A,
- 0x0D, 0x0D, 0x2A, 0x2A,
- 0x0D, 0x0D, 0x0D, 0x2A,
- 0x0D, 0x1D, 0x25, 0x2D,
- 0x0D, 0x15, 0x25, 0x2D,
- 0x0D, 0x15, 0x1D, 0x2D,
- 0x0D, 0x2D, 0x2D, 0x2D,
- 0x0D, 0x0D, 0x2D, 0x2D,
- 0x0D, 0x0D, 0x0D, 0x2D,
- 0x0D, 0x30, 0x30, 0x30,
- 0x0D, 0x0D, 0x30, 0x30,
- 0x0D, 0x0D, 0x0D, 0x30,
- 0x0D, 0x1F, 0x28, 0x31,
- 0x0D, 0x16, 0x28, 0x31,
- 0x0D, 0x16, 0x1F, 0x31,
- 0x0D, 0x35, 0x35, 0x35,
- 0x0D, 0x0D, 0x35, 0x35,
- 0x0D, 0x0D, 0x0D, 0x35,
- 0x0D, 0x3B, 0x3B, 0x3B,
- 0x0D, 0x0D, 0x3B, 0x3B,
- 0x0D, 0x0D, 0x0D, 0x3B,
- 0x0E, 0x0F, 0x0F, 0x10,
- 0x0E, 0x0F, 0x10, 0x11,
- 0x0E, 0x10, 0x11, 0x12,
- 0x0E, 0x0F, 0x11, 0x12,
- 0x0E, 0x0F, 0x10, 0x12,
- 0x0E, 0x10, 0x11, 0x13,
- 0x0E, 0x10, 0x12, 0x13,
- 0x0E, 0x0F, 0x12, 0x13,
- 0x0E, 0x0F, 0x11, 0x13,
- 0x0E, 0x10, 0x12, 0x14,
- 0x0E, 0x11, 0x13, 0x14,
- 0x0E, 0x0F, 0x13, 0x14,
- 0x0E, 0x0F, 0x11, 0x14,
- 0x0E, 0x14, 0x14, 0x14,
- 0x0E, 0x0E, 0x14, 0x14,
- 0x0E, 0x0E, 0x0E, 0x14,
- 0x0E, 0x11, 0x12, 0x15,
- 0x0E, 0x11, 0x14, 0x15,
- 0x0E, 0x0F, 0x14, 0x15,
- 0x0E, 0x0F, 0x12, 0x15,
- 0x0E, 0x11, 0x13, 0x16,
- 0x0E, 0x12, 0x14, 0x16,
- 0x0E, 0x10, 0x14, 0x16,
- 0x0E, 0x10, 0x12, 0x16,
- 0x0E, 0x16, 0x16, 0x16,
- 0x0E, 0x0E, 0x16, 0x16,
- 0x0E, 0x0E, 0x0E, 0x16,
- 0x0E, 0x12, 0x15, 0x19,
- 0x0E, 0x13, 0x17, 0x19,
- 0x0E, 0x10, 0x17, 0x19,
- 0x0E, 0x10, 0x14, 0x19,
- 0x0E, 0x19, 0x19, 0x19,
- 0x0E, 0x0E, 0x19, 0x19,
- 0x0E, 0x0E, 0x0E, 0x19,
- 0x0E, 0x13, 0x17, 0x1C,
- 0x0E, 0x15, 0x19, 0x1C,
- 0x0E, 0x11, 0x19, 0x1C,
- 0x0E, 0x11, 0x15, 0x1C,
- 0x0E, 0x1C, 0x1C, 0x1C,
- 0x0E, 0x0E, 0x1C, 0x1C,
- 0x0E, 0x0E, 0x0E, 0x1C,
- 0x0E, 0x14, 0x19, 0x1F,
- 0x0E, 0x16, 0x1B, 0x1F,
- 0x0E, 0x12, 0x1B, 0x1F,
- 0x0E, 0x12, 0x17, 0x1F,
- 0x0E, 0x1F, 0x1F, 0x1F,
- 0x0E, 0x0E, 0x1F, 0x1F,
- 0x0E, 0x0E, 0x0E, 0x1F,
- 0x0E, 0x15, 0x1B, 0x22,
- 0x0E, 0x18, 0x1D, 0x22,
- 0x0E, 0x13, 0x1D, 0x22,
- 0x0E, 0x13, 0x18, 0x22,
- 0x0E, 0x22, 0x22, 0x22,
- 0x0E, 0x0E, 0x22, 0x22,
- 0x0E, 0x0E, 0x0E, 0x22,
- 0x0E, 0x19, 0x20, 0x25,
- 0x0E, 0x13, 0x20, 0x25,
- 0x0E, 0x13, 0x1A, 0x25,
- 0x0E, 0x25, 0x25, 0x25,
- 0x0E, 0x0E, 0x25, 0x25,
- 0x0E, 0x0E, 0x0E, 0x25,
- 0x0E, 0x1B, 0x22, 0x28,
- 0x0E, 0x14, 0x22, 0x28,
- 0x0E, 0x14, 0x1B, 0x28,
- 0x0E, 0x28, 0x28, 0x28,
- 0x0E, 0x0E, 0x28, 0x28,
- 0x0E, 0x0E, 0x0E, 0x28,
- 0x0E, 0x1C, 0x24, 0x2B,
- 0x0E, 0x15, 0x24, 0x2B,
- 0x0E, 0x15, 0x1D, 0x2B,
- 0x0E, 0x2B, 0x2B, 0x2B,
- 0x0E, 0x0E, 0x2B, 0x2B,
- 0x0E, 0x0E, 0x0E, 0x2B,
- 0x0E, 0x1E, 0x26, 0x2E,
- 0x0E, 0x16, 0x26, 0x2E,
- 0x0E, 0x16, 0x1E, 0x2E,
- 0x0E, 0x2E, 0x2E, 0x2E,
- 0x0E, 0x0E, 0x2E, 0x2E,
- 0x0E, 0x0E, 0x0E, 0x2E,
- 0x0E, 0x31, 0x31, 0x31,
- 0x0E, 0x0E, 0x31, 0x31,
- 0x0E, 0x0E, 0x0E, 0x31,
- 0x0E, 0x20, 0x29, 0x32,
- 0x0E, 0x17, 0x29, 0x32,
- 0x0E, 0x17, 0x20, 0x32,
- 0x0E, 0x36, 0x36, 0x36,
- 0x0E, 0x0E, 0x36, 0x36,
- 0x0E, 0x0E, 0x0E, 0x36,
- 0x0E, 0x3C, 0x3C, 0x3C,
- 0x0E, 0x0E, 0x3C, 0x3C,
- 0x0E, 0x0E, 0x0E, 0x3C,
- 0x0F, 0x10, 0x10, 0x11,
- 0x0F, 0x10, 0x11, 0x12,
- 0x0F, 0x11, 0x12, 0x13,
- 0x0F, 0x10, 0x12, 0x13,
- 0x0F, 0x10, 0x11, 0x13,
- 0x0F, 0x11, 0x12, 0x14,
- 0x0F, 0x11, 0x13, 0x14,
- 0x0F, 0x10, 0x13, 0x14,
- 0x0F, 0x10, 0x12, 0x14,
- 0x0F, 0x11, 0x13, 0x15,
- 0x0F, 0x12, 0x14, 0x15,
- 0x0F, 0x10, 0x14, 0x15,
- 0x0F, 0x10, 0x12, 0x15,
- 0x0F, 0x15, 0x15, 0x15,
- 0x0F, 0x0F, 0x15, 0x15,
- 0x0F, 0x0F, 0x0F, 0x15,
- 0x0F, 0x12, 0x13, 0x16,
- 0x0F, 0x12, 0x15, 0x16,
- 0x0F, 0x10, 0x15, 0x16,
- 0x0F, 0x10, 0x13, 0x16,
- 0x0F, 0x12, 0x14, 0x17,
- 0x0F, 0x13, 0x15, 0x17,
- 0x0F, 0x11, 0x15, 0x17,
- 0x0F, 0x11, 0x13, 0x17,
- 0x0F, 0x17, 0x17, 0x17,
- 0x0F, 0x0F, 0x17, 0x17,
- 0x0F, 0x0F, 0x0F, 0x17,
- 0x0F, 0x13, 0x16, 0x1A,
- 0x0F, 0x14, 0x18, 0x1A,
- 0x0F, 0x11, 0x18, 0x1A,
- 0x0F, 0x11, 0x15, 0x1A,
- 0x0F, 0x1A, 0x1A, 0x1A,
- 0x0F, 0x0F, 0x1A, 0x1A,
- 0x0F, 0x0F, 0x0F, 0x1A,
- 0x0F, 0x14, 0x18, 0x1D,
- 0x0F, 0x16, 0x1A, 0x1D,
- 0x0F, 0x12, 0x1A, 0x1D,
- 0x0F, 0x12, 0x16, 0x1D,
- 0x0F, 0x1D, 0x1D, 0x1D,
- 0x0F, 0x0F, 0x1D, 0x1D,
- 0x0F, 0x0F, 0x0F, 0x1D,
- 0x0F, 0x15, 0x1A, 0x20,
- 0x0F, 0x17, 0x1C, 0x20,
- 0x0F, 0x13, 0x1C, 0x20,
- 0x0F, 0x13, 0x18, 0x20,
- 0x0F, 0x20, 0x20, 0x20,
- 0x0F, 0x0F, 0x20, 0x20,
- 0x0F, 0x0F, 0x0F, 0x20,
- 0x0F, 0x16, 0x1C, 0x23,
- 0x0F, 0x19, 0x1E, 0x23,
- 0x0F, 0x14, 0x1E, 0x23,
- 0x0F, 0x14, 0x19, 0x23,
- 0x0F, 0x23, 0x23, 0x23,
- 0x0F, 0x0F, 0x23, 0x23,
- 0x0F, 0x0F, 0x0F, 0x23,
- 0x0F, 0x1A, 0x21, 0x26,
- 0x0F, 0x14, 0x21, 0x26,
- 0x0F, 0x14, 0x1B, 0x26,
- 0x0F, 0x26, 0x26, 0x26,
- 0x0F, 0x0F, 0x26, 0x26,
- 0x0F, 0x0F, 0x0F, 0x26,
- 0x0F, 0x1C, 0x23, 0x29,
- 0x0F, 0x15, 0x23, 0x29,
- 0x0F, 0x15, 0x1C, 0x29,
- 0x0F, 0x29, 0x29, 0x29,
- 0x0F, 0x0F, 0x29, 0x29,
- 0x0F, 0x0F, 0x0F, 0x29,
- 0x0F, 0x1D, 0x25, 0x2C,
- 0x0F, 0x16, 0x25, 0x2C,
- 0x0F, 0x16, 0x1E, 0x2C,
- 0x0F, 0x2C, 0x2C, 0x2C,
- 0x0F, 0x0F, 0x2C, 0x2C,
- 0x0F, 0x0F, 0x0F, 0x2C,
- 0x0F, 0x1F, 0x27, 0x2F,
- 0x0F, 0x17, 0x27, 0x2F,
- 0x0F, 0x17, 0x1F, 0x2F,
- 0x0F, 0x2F, 0x2F, 0x2F,
- 0x0F, 0x0F, 0x2F, 0x2F,
- 0x0F, 0x0F, 0x0F, 0x2F,
- 0x0F, 0x32, 0x32, 0x32,
- 0x0F, 0x0F, 0x32, 0x32,
- 0x0F, 0x0F, 0x0F, 0x32,
- 0x0F, 0x21, 0x2A, 0x33,
- 0x0F, 0x18, 0x2A, 0x33,
- 0x0F, 0x18, 0x21, 0x33,
- 0x0F, 0x37, 0x37, 0x37,
- 0x0F, 0x0F, 0x37, 0x37,
- 0x0F, 0x0F, 0x0F, 0x37,
- 0x0F, 0x3D, 0x3D, 0x3D,
- 0x0F, 0x0F, 0x3D, 0x3D,
- 0x0F, 0x0F, 0x0F, 0x3D,
- 0x10, 0x11, 0x11, 0x12,
- 0x10, 0x11, 0x12, 0x13,
- 0x10, 0x12, 0x13, 0x14,
- 0x10, 0x11, 0x13, 0x14,
- 0x10, 0x11, 0x12, 0x14,
- 0x10, 0x12, 0x13, 0x15,
- 0x10, 0x12, 0x14, 0x15,
- 0x10, 0x11, 0x14, 0x15,
- 0x10, 0x11, 0x13, 0x15,
- 0x10, 0x12, 0x14, 0x16,
- 0x10, 0x13, 0x15, 0x16,
- 0x10, 0x11, 0x15, 0x16,
- 0x10, 0x11, 0x13, 0x16,
- 0x10, 0x16, 0x16, 0x16,
- 0x10, 0x10, 0x16, 0x16,
- 0x10, 0x10, 0x10, 0x16,
- 0x10, 0x13, 0x14, 0x17,
- 0x10, 0x13, 0x16, 0x17,
- 0x10, 0x11, 0x16, 0x17,
- 0x10, 0x11, 0x14, 0x17,
- 0x10, 0x13, 0x15, 0x18,
- 0x10, 0x14, 0x16, 0x18,
- 0x10, 0x12, 0x16, 0x18,
- 0x10, 0x12, 0x14, 0x18,
- 0x10, 0x18, 0x18, 0x18,
- 0x10, 0x10, 0x18, 0x18,
- 0x10, 0x10, 0x10, 0x18,
- 0x10, 0x14, 0x17, 0x1B,
- 0x10, 0x15, 0x19, 0x1B,
- 0x10, 0x12, 0x19, 0x1B,
- 0x10, 0x12, 0x16, 0x1B,
- 0x10, 0x1B, 0x1B, 0x1B,
- 0x10, 0x10, 0x1B, 0x1B,
- 0x10, 0x10, 0x10, 0x1B,
- 0x10, 0x15, 0x19, 0x1E,
- 0x10, 0x17, 0x1B, 0x1E,
- 0x10, 0x13, 0x1B, 0x1E,
- 0x10, 0x13, 0x17, 0x1E,
- 0x10, 0x1E, 0x1E, 0x1E,
- 0x10, 0x10, 0x1E, 0x1E,
- 0x10, 0x10, 0x10, 0x1E,
- 0x10, 0x16, 0x1B, 0x21,
- 0x10, 0x18, 0x1D, 0x21,
- 0x10, 0x14, 0x1D, 0x21,
- 0x10, 0x14, 0x19, 0x21,
- 0x10, 0x21, 0x21, 0x21,
- 0x10, 0x10, 0x21, 0x21,
- 0x10, 0x10, 0x10, 0x21,
- 0x10, 0x17, 0x1D, 0x24,
- 0x10, 0x1A, 0x1F, 0x24,
- 0x10, 0x15, 0x1F, 0x24,
- 0x10, 0x15, 0x1A, 0x24,
- 0x10, 0x24, 0x24, 0x24,
- 0x10, 0x10, 0x24, 0x24,
- 0x10, 0x10, 0x10, 0x24,
- 0x10, 0x1B, 0x22, 0x27,
- 0x10, 0x15, 0x22, 0x27,
- 0x10, 0x15, 0x1C, 0x27,
- 0x10, 0x27, 0x27, 0x27,
- 0x10, 0x10, 0x27, 0x27,
- 0x10, 0x10, 0x10, 0x27,
- 0x10, 0x1D, 0x24, 0x2A,
- 0x10, 0x16, 0x24, 0x2A,
- 0x10, 0x16, 0x1D, 0x2A,
- 0x10, 0x2A, 0x2A, 0x2A,
- 0x10, 0x10, 0x2A, 0x2A,
- 0x10, 0x10, 0x10, 0x2A,
- 0x10, 0x1E, 0x26, 0x2D,
- 0x10, 0x17, 0x26, 0x2D,
- 0x10, 0x17, 0x1F, 0x2D,
- 0x10, 0x2D, 0x2D, 0x2D,
- 0x10, 0x10, 0x2D, 0x2D,
- 0x10, 0x10, 0x10, 0x2D,
- 0x10, 0x20, 0x28, 0x30,
- 0x10, 0x18, 0x28, 0x30,
- 0x10, 0x18, 0x20, 0x30,
- 0x10, 0x30, 0x30, 0x30,
- 0x10, 0x10, 0x30, 0x30,
- 0x10, 0x10, 0x10, 0x30,
- 0x10, 0x33, 0x33, 0x33,
- 0x10, 0x10, 0x33, 0x33,
- 0x10, 0x10, 0x10, 0x33,
- 0x10, 0x22, 0x2B, 0x34,
- 0x10, 0x19, 0x2B, 0x34,
- 0x10, 0x19, 0x22, 0x34,
- 0x10, 0x38, 0x38, 0x38,
- 0x10, 0x10, 0x38, 0x38,
- 0x10, 0x10, 0x10, 0x38,
- 0x10, 0x3E, 0x3E, 0x3E,
- 0x10, 0x10, 0x3E, 0x3E,
- 0x10, 0x10, 0x10, 0x3E,
- 0x11, 0x12, 0x12, 0x13,
- 0x11, 0x12, 0x13, 0x14,
- 0x11, 0x13, 0x14, 0x15,
- 0x11, 0x12, 0x14, 0x15,
- 0x11, 0x12, 0x13, 0x15,
- 0x11, 0x13, 0x14, 0x16,
- 0x11, 0x13, 0x15, 0x16,
- 0x11, 0x12, 0x15, 0x16,
- 0x11, 0x12, 0x14, 0x16,
- 0x11, 0x13, 0x15, 0x17,
- 0x11, 0x14, 0x16, 0x17,
- 0x11, 0x12, 0x16, 0x17,
- 0x11, 0x12, 0x14, 0x17,
- 0x11, 0x17, 0x17, 0x17,
- 0x11, 0x11, 0x17, 0x17,
- 0x11, 0x11, 0x11, 0x17,
- 0x11, 0x14, 0x15, 0x18,
- 0x11, 0x14, 0x17, 0x18,
- 0x11, 0x12, 0x17, 0x18,
- 0x11, 0x12, 0x15, 0x18,
- 0x11, 0x14, 0x16, 0x19,
- 0x11, 0x15, 0x17, 0x19,
- 0x11, 0x13, 0x17, 0x19,
- 0x11, 0x13, 0x15, 0x19,
- 0x11, 0x19, 0x19, 0x19,
- 0x11, 0x11, 0x19, 0x19,
- 0x11, 0x11, 0x11, 0x19,
- 0x11, 0x15, 0x18, 0x1C,
- 0x11, 0x16, 0x1A, 0x1C,
- 0x11, 0x13, 0x1A, 0x1C,
- 0x11, 0x13, 0x17, 0x1C,
- 0x11, 0x1C, 0x1C, 0x1C,
- 0x11, 0x11, 0x1C, 0x1C,
- 0x11, 0x11, 0x11, 0x1C,
- 0x11, 0x16, 0x1A, 0x1F,
- 0x11, 0x18, 0x1C, 0x1F,
- 0x11, 0x14, 0x1C, 0x1F,
- 0x11, 0x14, 0x18, 0x1F,
- 0x11, 0x1F, 0x1F, 0x1F,
- 0x11, 0x11, 0x1F, 0x1F,
- 0x11, 0x11, 0x11, 0x1F,
- 0x11, 0x17, 0x1C, 0x22,
- 0x11, 0x19, 0x1E, 0x22,
- 0x11, 0x15, 0x1E, 0x22,
- 0x11, 0x15, 0x1A, 0x22,
- 0x11, 0x22, 0x22, 0x22,
- 0x11, 0x11, 0x22, 0x22,
- 0x11, 0x11, 0x11, 0x22,
- 0x11, 0x18, 0x1E, 0x25,
- 0x11, 0x1B, 0x20, 0x25,
- 0x11, 0x16, 0x20, 0x25,
- 0x11, 0x16, 0x1B, 0x25,
- 0x11, 0x25, 0x25, 0x25,
- 0x11, 0x11, 0x25, 0x25,
- 0x11, 0x11, 0x11, 0x25,
- 0x11, 0x1C, 0x23, 0x28,
- 0x11, 0x16, 0x23, 0x28,
- 0x11, 0x16, 0x1D, 0x28,
- 0x11, 0x28, 0x28, 0x28,
- 0x11, 0x11, 0x28, 0x28,
- 0x11, 0x11, 0x11, 0x28,
- 0x11, 0x1E, 0x25, 0x2B,
- 0x11, 0x17, 0x25, 0x2B,
- 0x11, 0x17, 0x1E, 0x2B,
- 0x11, 0x2B, 0x2B, 0x2B,
- 0x11, 0x11, 0x2B, 0x2B,
- 0x11, 0x11, 0x11, 0x2B,
- 0x11, 0x1F, 0x27, 0x2E,
- 0x11, 0x18, 0x27, 0x2E,
- 0x11, 0x18, 0x20, 0x2E,
- 0x11, 0x2E, 0x2E, 0x2E,
- 0x11, 0x11, 0x2E, 0x2E,
- 0x11, 0x11, 0x11, 0x2E,
- 0x11, 0x21, 0x29, 0x31,
- 0x11, 0x19, 0x29, 0x31,
- 0x11, 0x19, 0x21, 0x31,
- 0x11, 0x31, 0x31, 0x31,
- 0x11, 0x11, 0x31, 0x31,
- 0x11, 0x11, 0x11, 0x31,
- 0x11, 0x34, 0x34, 0x34,
- 0x11, 0x11, 0x34, 0x34,
- 0x11, 0x11, 0x11, 0x34,
- 0x11, 0x23, 0x2C, 0x35,
- 0x11, 0x1A, 0x2C, 0x35,
- 0x11, 0x1A, 0x23, 0x35,
- 0x11, 0x39, 0x39, 0x39,
- 0x11, 0x11, 0x39, 0x39,
- 0x11, 0x11, 0x11, 0x39,
- 0x11, 0x3F, 0x3F, 0x3F,
- 0x11, 0x11, 0x3F, 0x3F,
- 0x11, 0x11, 0x11, 0x3F,
- 0x12, 0x13, 0x13, 0x14,
- 0x12, 0x13, 0x14, 0x15,
- 0x12, 0x14, 0x15, 0x16,
- 0x12, 0x13, 0x15, 0x16,
- 0x12, 0x13, 0x14, 0x16,
- 0x12, 0x14, 0x15, 0x17,
- 0x12, 0x14, 0x16, 0x17,
- 0x12, 0x13, 0x16, 0x17,
- 0x12, 0x13, 0x15, 0x17,
- 0x12, 0x14, 0x16, 0x18,
- 0x12, 0x15, 0x17, 0x18,
- 0x12, 0x13, 0x17, 0x18,
- 0x12, 0x13, 0x15, 0x18,
- 0x12, 0x18, 0x18, 0x18,
- 0x12, 0x12, 0x18, 0x18,
- 0x12, 0x12, 0x12, 0x18,
- 0x12, 0x15, 0x16, 0x19,
- 0x12, 0x15, 0x18, 0x19,
- 0x12, 0x13, 0x18, 0x19,
- 0x12, 0x13, 0x16, 0x19,
- 0x12, 0x15, 0x17, 0x1A,
- 0x12, 0x16, 0x18, 0x1A,
- 0x12, 0x14, 0x18, 0x1A,
- 0x12, 0x14, 0x16, 0x1A,
- 0x12, 0x1A, 0x1A, 0x1A,
- 0x12, 0x12, 0x1A, 0x1A,
- 0x12, 0x12, 0x12, 0x1A,
- 0x12, 0x16, 0x19, 0x1D,
- 0x12, 0x17, 0x1B, 0x1D,
- 0x12, 0x14, 0x1B, 0x1D,
- 0x12, 0x14, 0x18, 0x1D,
- 0x12, 0x1D, 0x1D, 0x1D,
- 0x12, 0x12, 0x1D, 0x1D,
- 0x12, 0x12, 0x12, 0x1D,
- 0x12, 0x17, 0x1B, 0x20,
- 0x12, 0x19, 0x1D, 0x20,
- 0x12, 0x15, 0x1D, 0x20,
- 0x12, 0x15, 0x19, 0x20,
- 0x12, 0x20, 0x20, 0x20,
- 0x12, 0x12, 0x20, 0x20,
- 0x12, 0x12, 0x12, 0x20,
- 0x12, 0x18, 0x1D, 0x23,
- 0x12, 0x1A, 0x1F, 0x23,
- 0x12, 0x16, 0x1F, 0x23,
- 0x12, 0x16, 0x1B, 0x23,
- 0x12, 0x23, 0x23, 0x23,
- 0x12, 0x12, 0x23, 0x23,
- 0x12, 0x12, 0x12, 0x23,
- 0x12, 0x19, 0x1F, 0x26,
- 0x12, 0x1C, 0x21, 0x26,
- 0x12, 0x17, 0x21, 0x26,
- 0x12, 0x17, 0x1C, 0x26,
- 0x12, 0x26, 0x26, 0x26,
- 0x12, 0x12, 0x26, 0x26,
- 0x12, 0x12, 0x12, 0x26,
- 0x12, 0x1D, 0x24, 0x29,
- 0x12, 0x17, 0x24, 0x29,
- 0x12, 0x17, 0x1E, 0x29,
- 0x12, 0x29, 0x29, 0x29,
- 0x12, 0x12, 0x29, 0x29,
- 0x12, 0x12, 0x12, 0x29,
- 0x12, 0x1F, 0x26, 0x2C,
- 0x12, 0x18, 0x26, 0x2C,
- 0x12, 0x18, 0x1F, 0x2C,
- 0x12, 0x2C, 0x2C, 0x2C,
- 0x12, 0x12, 0x2C, 0x2C,
- 0x12, 0x12, 0x12, 0x2C,
- 0x12, 0x20, 0x28, 0x2F,
- 0x12, 0x19, 0x28, 0x2F,
- 0x12, 0x19, 0x21, 0x2F,
- 0x12, 0x2F, 0x2F, 0x2F,
- 0x12, 0x12, 0x2F, 0x2F,
- 0x12, 0x12, 0x12, 0x2F,
- 0x12, 0x22, 0x2A, 0x32,
- 0x12, 0x1A, 0x2A, 0x32,
- 0x12, 0x1A, 0x22, 0x32,
- 0x12, 0x32, 0x32, 0x32,
- 0x12, 0x12, 0x32, 0x32,
- 0x12, 0x12, 0x12, 0x32,
- 0x12, 0x35, 0x35, 0x35,
- 0x12, 0x12, 0x35, 0x35,
- 0x12, 0x12, 0x12, 0x35,
- 0x12, 0x24, 0x2D, 0x36,
- 0x12, 0x1B, 0x2D, 0x36,
- 0x12, 0x1B, 0x24, 0x36,
- 0x12, 0x3A, 0x3A, 0x3A,
- 0x12, 0x12, 0x3A, 0x3A,
- 0x12, 0x12, 0x12, 0x3A,
- 0x13, 0x14, 0x14, 0x15,
- 0x13, 0x14, 0x15, 0x16,
- 0x13, 0x15, 0x16, 0x17,
- 0x13, 0x14, 0x16, 0x17,
- 0x13, 0x14, 0x15, 0x17,
- 0x13, 0x15, 0x16, 0x18,
- 0x13, 0x15, 0x17, 0x18,
- 0x13, 0x14, 0x17, 0x18,
- 0x13, 0x14, 0x16, 0x18,
- 0x13, 0x15, 0x17, 0x19,
- 0x13, 0x16, 0x18, 0x19,
- 0x13, 0x14, 0x18, 0x19,
- 0x13, 0x14, 0x16, 0x19,
- 0x13, 0x19, 0x19, 0x19,
- 0x13, 0x13, 0x19, 0x19,
- 0x13, 0x13, 0x13, 0x19,
- 0x13, 0x16, 0x17, 0x1A,
- 0x13, 0x16, 0x19, 0x1A,
- 0x13, 0x14, 0x19, 0x1A,
- 0x13, 0x14, 0x17, 0x1A,
- 0x13, 0x16, 0x18, 0x1B,
- 0x13, 0x17, 0x19, 0x1B,
- 0x13, 0x15, 0x19, 0x1B,
- 0x13, 0x15, 0x17, 0x1B,
- 0x13, 0x1B, 0x1B, 0x1B,
- 0x13, 0x13, 0x1B, 0x1B,
- 0x13, 0x13, 0x13, 0x1B,
- 0x13, 0x17, 0x1A, 0x1E,
- 0x13, 0x18, 0x1C, 0x1E,
- 0x13, 0x15, 0x1C, 0x1E,
- 0x13, 0x15, 0x19, 0x1E,
- 0x13, 0x1E, 0x1E, 0x1E,
- 0x13, 0x13, 0x1E, 0x1E,
- 0x13, 0x13, 0x13, 0x1E,
- 0x13, 0x18, 0x1C, 0x21,
- 0x13, 0x1A, 0x1E, 0x21,
- 0x13, 0x16, 0x1E, 0x21,
- 0x13, 0x16, 0x1A, 0x21,
- 0x13, 0x21, 0x21, 0x21,
- 0x13, 0x13, 0x21, 0x21,
- 0x13, 0x13, 0x13, 0x21,
- 0x13, 0x19, 0x1E, 0x24,
- 0x13, 0x1B, 0x20, 0x24,
- 0x13, 0x17, 0x20, 0x24,
- 0x13, 0x17, 0x1C, 0x24,
- 0x13, 0x24, 0x24, 0x24,
- 0x13, 0x13, 0x24, 0x24,
- 0x13, 0x13, 0x13, 0x24,
- 0x13, 0x1A, 0x20, 0x27,
- 0x13, 0x1D, 0x22, 0x27,
- 0x13, 0x18, 0x22, 0x27,
- 0x13, 0x18, 0x1D, 0x27,
- 0x13, 0x27, 0x27, 0x27,
- 0x13, 0x13, 0x27, 0x27,
- 0x13, 0x13, 0x13, 0x27,
- 0x13, 0x1E, 0x25, 0x2A,
- 0x13, 0x18, 0x25, 0x2A,
- 0x13, 0x18, 0x1F, 0x2A,
- 0x13, 0x2A, 0x2A, 0x2A,
- 0x13, 0x13, 0x2A, 0x2A,
- 0x13, 0x13, 0x13, 0x2A,
- 0x13, 0x20, 0x27, 0x2D,
- 0x13, 0x19, 0x27, 0x2D,
- 0x13, 0x19, 0x20, 0x2D,
- 0x13, 0x2D, 0x2D, 0x2D,
- 0x13, 0x13, 0x2D, 0x2D,
- 0x13, 0x13, 0x13, 0x2D,
- 0x13, 0x21, 0x29, 0x30,
- 0x13, 0x1A, 0x29, 0x30,
- 0x13, 0x1A, 0x22, 0x30,
- 0x13, 0x30, 0x30, 0x30,
- 0x13, 0x13, 0x30, 0x30,
- 0x13, 0x13, 0x13, 0x30,
- 0x13, 0x23, 0x2B, 0x33,
- 0x13, 0x1B, 0x2B, 0x33,
- 0x13, 0x1B, 0x23, 0x33,
- 0x13, 0x33, 0x33, 0x33,
- 0x13, 0x13, 0x33, 0x33,
- 0x13, 0x13, 0x13, 0x33,
- 0x13, 0x36, 0x36, 0x36,
- 0x13, 0x13, 0x36, 0x36,
- 0x13, 0x13, 0x13, 0x36,
- 0x13, 0x25, 0x2E, 0x37,
- 0x13, 0x1C, 0x2E, 0x37,
- 0x13, 0x1C, 0x25, 0x37,
- 0x13, 0x3B, 0x3B, 0x3B,
- 0x13, 0x13, 0x3B, 0x3B,
- 0x13, 0x13, 0x13, 0x3B,
- 0x14, 0x15, 0x15, 0x16,
- 0x14, 0x15, 0x16, 0x17,
- 0x14, 0x16, 0x17, 0x18,
- 0x14, 0x15, 0x17, 0x18,
- 0x14, 0x15, 0x16, 0x18,
- 0x14, 0x16, 0x17, 0x19,
- 0x14, 0x16, 0x18, 0x19,
- 0x14, 0x15, 0x18, 0x19,
- 0x14, 0x15, 0x17, 0x19,
- 0x14, 0x16, 0x18, 0x1A,
- 0x14, 0x17, 0x19, 0x1A,
- 0x14, 0x15, 0x19, 0x1A,
- 0x14, 0x15, 0x17, 0x1A,
- 0x14, 0x1A, 0x1A, 0x1A,
- 0x14, 0x14, 0x1A, 0x1A,
- 0x14, 0x14, 0x14, 0x1A,
- 0x14, 0x17, 0x18, 0x1B,
- 0x14, 0x17, 0x1A, 0x1B,
- 0x14, 0x15, 0x1A, 0x1B,
- 0x14, 0x15, 0x18, 0x1B,
- 0x14, 0x17, 0x19, 0x1C,
- 0x14, 0x18, 0x1A, 0x1C,
- 0x14, 0x16, 0x1A, 0x1C,
- 0x14, 0x16, 0x18, 0x1C,
- 0x14, 0x1C, 0x1C, 0x1C,
- 0x14, 0x14, 0x1C, 0x1C,
- 0x14, 0x14, 0x14, 0x1C,
- 0x14, 0x18, 0x1B, 0x1F,
- 0x14, 0x19, 0x1D, 0x1F,
- 0x14, 0x16, 0x1D, 0x1F,
- 0x14, 0x16, 0x1A, 0x1F,
- 0x14, 0x1F, 0x1F, 0x1F,
- 0x14, 0x14, 0x1F, 0x1F,
- 0x14, 0x14, 0x14, 0x1F,
- 0x14, 0x19, 0x1D, 0x22,
- 0x14, 0x1B, 0x1F, 0x22,
- 0x14, 0x17, 0x1F, 0x22,
- 0x14, 0x17, 0x1B, 0x22,
- 0x14, 0x22, 0x22, 0x22,
- 0x14, 0x14, 0x22, 0x22,
- 0x14, 0x14, 0x14, 0x22,
- 0x14, 0x1A, 0x1F, 0x25,
- 0x14, 0x1C, 0x21, 0x25,
- 0x14, 0x18, 0x21, 0x25,
- 0x14, 0x18, 0x1D, 0x25,
- 0x14, 0x25, 0x25, 0x25,
- 0x14, 0x14, 0x25, 0x25,
- 0x14, 0x14, 0x14, 0x25,
- 0x14, 0x1B, 0x21, 0x28,
- 0x14, 0x1E, 0x23, 0x28,
- 0x14, 0x19, 0x23, 0x28,
- 0x14, 0x19, 0x1E, 0x28,
- 0x14, 0x28, 0x28, 0x28,
- 0x14, 0x14, 0x28, 0x28,
- 0x14, 0x14, 0x14, 0x28,
- 0x14, 0x1F, 0x26, 0x2B,
- 0x14, 0x19, 0x26, 0x2B,
- 0x14, 0x19, 0x20, 0x2B,
- 0x14, 0x2B, 0x2B, 0x2B,
- 0x14, 0x14, 0x2B, 0x2B,
- 0x14, 0x14, 0x14, 0x2B,
- 0x14, 0x21, 0x28, 0x2E,
- 0x14, 0x1A, 0x28, 0x2E,
- 0x14, 0x1A, 0x21, 0x2E,
- 0x14, 0x2E, 0x2E, 0x2E,
- 0x14, 0x14, 0x2E, 0x2E,
- 0x14, 0x14, 0x14, 0x2E,
- 0x14, 0x22, 0x2A, 0x31,
- 0x14, 0x1B, 0x2A, 0x31,
- 0x14, 0x1B, 0x23, 0x31,
- 0x14, 0x31, 0x31, 0x31,
- 0x14, 0x14, 0x31, 0x31,
- 0x14, 0x14, 0x14, 0x31,
- 0x14, 0x24, 0x2C, 0x34,
- 0x14, 0x1C, 0x2C, 0x34,
- 0x14, 0x1C, 0x24, 0x34,
- 0x14, 0x34, 0x34, 0x34,
- 0x14, 0x14, 0x34, 0x34,
- 0x14, 0x14, 0x14, 0x34,
- 0x14, 0x37, 0x37, 0x37,
- 0x14, 0x14, 0x37, 0x37,
- 0x14, 0x14, 0x14, 0x37,
- 0x14, 0x26, 0x2F, 0x38,
- 0x14, 0x1D, 0x2F, 0x38,
- 0x14, 0x1D, 0x26, 0x38,
- 0x14, 0x3C, 0x3C, 0x3C,
- 0x14, 0x14, 0x3C, 0x3C,
- 0x14, 0x14, 0x14, 0x3C,
- 0x15, 0x16, 0x16, 0x17,
- 0x15, 0x16, 0x17, 0x18,
- 0x15, 0x17, 0x18, 0x19,
- 0x15, 0x16, 0x18, 0x19,
- 0x15, 0x16, 0x17, 0x19,
- 0x15, 0x17, 0x18, 0x1A,
- 0x15, 0x17, 0x19, 0x1A,
- 0x15, 0x16, 0x19, 0x1A,
- 0x15, 0x16, 0x18, 0x1A,
- 0x15, 0x17, 0x19, 0x1B,
- 0x15, 0x18, 0x1A, 0x1B,
- 0x15, 0x16, 0x1A, 0x1B,
- 0x15, 0x16, 0x18, 0x1B,
- 0x15, 0x1B, 0x1B, 0x1B,
- 0x15, 0x15, 0x1B, 0x1B,
- 0x15, 0x15, 0x15, 0x1B,
- 0x15, 0x18, 0x19, 0x1C,
- 0x15, 0x18, 0x1B, 0x1C,
- 0x15, 0x16, 0x1B, 0x1C,
- 0x15, 0x16, 0x19, 0x1C,
- 0x15, 0x18, 0x1A, 0x1D,
- 0x15, 0x19, 0x1B, 0x1D,
- 0x15, 0x17, 0x1B, 0x1D,
- 0x15, 0x17, 0x19, 0x1D,
- 0x15, 0x1D, 0x1D, 0x1D,
- 0x15, 0x15, 0x1D, 0x1D,
- 0x15, 0x15, 0x15, 0x1D,
- 0x15, 0x19, 0x1C, 0x20,
- 0x15, 0x1A, 0x1E, 0x20,
- 0x15, 0x17, 0x1E, 0x20,
- 0x15, 0x17, 0x1B, 0x20,
- 0x15, 0x20, 0x20, 0x20,
- 0x15, 0x15, 0x20, 0x20,
- 0x15, 0x15, 0x15, 0x20,
- 0x15, 0x1A, 0x1E, 0x23,
- 0x15, 0x1C, 0x20, 0x23,
- 0x15, 0x18, 0x20, 0x23,
- 0x15, 0x18, 0x1C, 0x23,
- 0x15, 0x23, 0x23, 0x23,
- 0x15, 0x15, 0x23, 0x23,
- 0x15, 0x15, 0x15, 0x23,
- 0x15, 0x1B, 0x20, 0x26,
- 0x15, 0x1D, 0x22, 0x26,
- 0x15, 0x19, 0x22, 0x26,
- 0x15, 0x19, 0x1E, 0x26,
- 0x15, 0x26, 0x26, 0x26,
- 0x15, 0x15, 0x26, 0x26,
- 0x15, 0x15, 0x15, 0x26,
- 0x15, 0x1C, 0x22, 0x29,
- 0x15, 0x1F, 0x24, 0x29,
- 0x15, 0x1A, 0x24, 0x29,
- 0x15, 0x1A, 0x1F, 0x29,
- 0x15, 0x29, 0x29, 0x29,
- 0x15, 0x15, 0x29, 0x29,
- 0x15, 0x15, 0x15, 0x29,
- 0x15, 0x20, 0x27, 0x2C,
- 0x15, 0x1A, 0x27, 0x2C,
- 0x15, 0x1A, 0x21, 0x2C,
- 0x15, 0x2C, 0x2C, 0x2C,
- 0x15, 0x15, 0x2C, 0x2C,
- 0x15, 0x15, 0x15, 0x2C,
- 0x15, 0x22, 0x29, 0x2F,
- 0x15, 0x1B, 0x29, 0x2F,
- 0x15, 0x1B, 0x22, 0x2F,
- 0x15, 0x2F, 0x2F, 0x2F,
- 0x15, 0x15, 0x2F, 0x2F,
- 0x15, 0x15, 0x15, 0x2F,
- 0x15, 0x23, 0x2B, 0x32,
- 0x15, 0x1C, 0x2B, 0x32,
- 0x15, 0x1C, 0x24, 0x32,
- 0x15, 0x32, 0x32, 0x32,
- 0x15, 0x15, 0x32, 0x32,
- 0x15, 0x15, 0x15, 0x32,
- 0x15, 0x25, 0x2D, 0x35,
- 0x15, 0x1D, 0x2D, 0x35,
- 0x15, 0x1D, 0x25, 0x35,
- 0x15, 0x35, 0x35, 0x35,
- 0x15, 0x15, 0x35, 0x35,
- 0x15, 0x15, 0x15, 0x35,
- 0x15, 0x38, 0x38, 0x38,
- 0x15, 0x15, 0x38, 0x38,
- 0x15, 0x15, 0x15, 0x38,
- 0x15, 0x27, 0x30, 0x39,
- 0x15, 0x1E, 0x30, 0x39,
- 0x15, 0x1E, 0x27, 0x39,
- 0x15, 0x3D, 0x3D, 0x3D,
- 0x15, 0x15, 0x3D, 0x3D,
- 0x15, 0x15, 0x15, 0x3D,
- 0x16, 0x17, 0x17, 0x18,
- 0x16, 0x17, 0x18, 0x19,
- 0x16, 0x18, 0x19, 0x1A,
- 0x16, 0x17, 0x19, 0x1A,
- 0x16, 0x17, 0x18, 0x1A,
- 0x16, 0x18, 0x19, 0x1B,
- 0x16, 0x18, 0x1A, 0x1B,
- 0x16, 0x17, 0x1A, 0x1B,
- 0x16, 0x17, 0x19, 0x1B,
- 0x16, 0x18, 0x1A, 0x1C,
- 0x16, 0x19, 0x1B, 0x1C,
- 0x16, 0x17, 0x1B, 0x1C,
- 0x16, 0x17, 0x19, 0x1C,
- 0x16, 0x1C, 0x1C, 0x1C,
- 0x16, 0x16, 0x1C, 0x1C,
- 0x16, 0x16, 0x16, 0x1C,
- 0x16, 0x19, 0x1A, 0x1D,
- 0x16, 0x19, 0x1C, 0x1D,
- 0x16, 0x17, 0x1C, 0x1D,
- 0x16, 0x17, 0x1A, 0x1D,
- 0x16, 0x19, 0x1B, 0x1E,
- 0x16, 0x1A, 0x1C, 0x1E,
- 0x16, 0x18, 0x1C, 0x1E,
- 0x16, 0x18, 0x1A, 0x1E,
- 0x16, 0x1E, 0x1E, 0x1E,
- 0x16, 0x16, 0x1E, 0x1E,
- 0x16, 0x16, 0x16, 0x1E,
- 0x16, 0x1A, 0x1D, 0x21,
- 0x16, 0x1B, 0x1F, 0x21,
- 0x16, 0x18, 0x1F, 0x21,
- 0x16, 0x18, 0x1C, 0x21,
- 0x16, 0x21, 0x21, 0x21,
- 0x16, 0x16, 0x21, 0x21,
- 0x16, 0x16, 0x16, 0x21,
- 0x16, 0x1B, 0x1F, 0x24,
- 0x16, 0x1D, 0x21, 0x24,
- 0x16, 0x19, 0x21, 0x24,
- 0x16, 0x19, 0x1D, 0x24,
- 0x16, 0x24, 0x24, 0x24,
- 0x16, 0x16, 0x24, 0x24,
- 0x16, 0x16, 0x16, 0x24,
- 0x16, 0x1C, 0x21, 0x27,
- 0x16, 0x1E, 0x23, 0x27,
- 0x16, 0x1A, 0x23, 0x27,
- 0x16, 0x1A, 0x1F, 0x27,
- 0x16, 0x27, 0x27, 0x27,
- 0x16, 0x16, 0x27, 0x27,
- 0x16, 0x16, 0x16, 0x27,
- 0x16, 0x1D, 0x23, 0x2A,
- 0x16, 0x20, 0x25, 0x2A,
- 0x16, 0x1B, 0x25, 0x2A,
- 0x16, 0x1B, 0x20, 0x2A,
- 0x16, 0x2A, 0x2A, 0x2A,
- 0x16, 0x16, 0x2A, 0x2A,
- 0x16, 0x16, 0x16, 0x2A,
- 0x16, 0x21, 0x28, 0x2D,
- 0x16, 0x1B, 0x28, 0x2D,
- 0x16, 0x1B, 0x22, 0x2D,
- 0x16, 0x2D, 0x2D, 0x2D,
- 0x16, 0x16, 0x2D, 0x2D,
- 0x16, 0x16, 0x16, 0x2D,
- 0x16, 0x23, 0x2A, 0x30,
- 0x16, 0x1C, 0x2A, 0x30,
- 0x16, 0x1C, 0x23, 0x30,
- 0x16, 0x30, 0x30, 0x30,
- 0x16, 0x16, 0x30, 0x30,
- 0x16, 0x16, 0x16, 0x30,
- 0x16, 0x24, 0x2C, 0x33,
- 0x16, 0x1D, 0x2C, 0x33,
- 0x16, 0x1D, 0x25, 0x33,
- 0x16, 0x33, 0x33, 0x33,
- 0x16, 0x16, 0x33, 0x33,
- 0x16, 0x16, 0x16, 0x33,
- 0x16, 0x26, 0x2E, 0x36,
- 0x16, 0x1E, 0x2E, 0x36,
- 0x16, 0x1E, 0x26, 0x36,
- 0x16, 0x36, 0x36, 0x36,
- 0x16, 0x16, 0x36, 0x36,
- 0x16, 0x16, 0x16, 0x36,
- 0x16, 0x39, 0x39, 0x39,
- 0x16, 0x16, 0x39, 0x39,
- 0x16, 0x16, 0x16, 0x39,
- 0x16, 0x28, 0x31, 0x3A,
- 0x16, 0x1F, 0x31, 0x3A,
- 0x16, 0x1F, 0x28, 0x3A,
- 0x16, 0x3E, 0x3E, 0x3E,
- 0x16, 0x16, 0x3E, 0x3E,
- 0x16, 0x16, 0x16, 0x3E,
- 0x17, 0x18, 0x18, 0x19,
- 0x17, 0x18, 0x19, 0x1A,
- 0x17, 0x19, 0x1A, 0x1B,
- 0x17, 0x18, 0x1A, 0x1B,
- 0x17, 0x18, 0x19, 0x1B,
- 0x17, 0x19, 0x1A, 0x1C,
- 0x17, 0x19, 0x1B, 0x1C,
- 0x17, 0x18, 0x1B, 0x1C,
- 0x17, 0x18, 0x1A, 0x1C,
- 0x17, 0x19, 0x1B, 0x1D,
- 0x17, 0x1A, 0x1C, 0x1D,
- 0x17, 0x18, 0x1C, 0x1D,
- 0x17, 0x18, 0x1A, 0x1D,
- 0x17, 0x1D, 0x1D, 0x1D,
- 0x17, 0x17, 0x1D, 0x1D,
- 0x17, 0x17, 0x17, 0x1D,
- 0x17, 0x1A, 0x1B, 0x1E,
- 0x17, 0x1A, 0x1D, 0x1E,
- 0x17, 0x18, 0x1D, 0x1E,
- 0x17, 0x18, 0x1B, 0x1E,
- 0x17, 0x1A, 0x1C, 0x1F,
- 0x17, 0x1B, 0x1D, 0x1F,
- 0x17, 0x19, 0x1D, 0x1F,
- 0x17, 0x19, 0x1B, 0x1F,
- 0x17, 0x1F, 0x1F, 0x1F,
- 0x17, 0x17, 0x1F, 0x1F,
- 0x17, 0x17, 0x17, 0x1F,
- 0x17, 0x1B, 0x1E, 0x22,
- 0x17, 0x1C, 0x20, 0x22,
- 0x17, 0x19, 0x20, 0x22,
- 0x17, 0x19, 0x1D, 0x22,
- 0x17, 0x22, 0x22, 0x22,
- 0x17, 0x17, 0x22, 0x22,
- 0x17, 0x17, 0x17, 0x22,
- 0x17, 0x1C, 0x20, 0x25,
- 0x17, 0x1E, 0x22, 0x25,
- 0x17, 0x1A, 0x22, 0x25,
- 0x17, 0x1A, 0x1E, 0x25,
- 0x17, 0x25, 0x25, 0x25,
- 0x17, 0x17, 0x25, 0x25,
- 0x17, 0x17, 0x17, 0x25,
- 0x17, 0x1D, 0x22, 0x28,
- 0x17, 0x1F, 0x24, 0x28,
- 0x17, 0x1B, 0x24, 0x28,
- 0x17, 0x1B, 0x20, 0x28,
- 0x17, 0x28, 0x28, 0x28,
- 0x17, 0x17, 0x28, 0x28,
- 0x17, 0x17, 0x17, 0x28,
- 0x17, 0x1E, 0x24, 0x2B,
- 0x17, 0x21, 0x26, 0x2B,
- 0x17, 0x1C, 0x26, 0x2B,
- 0x17, 0x1C, 0x21, 0x2B,
- 0x17, 0x2B, 0x2B, 0x2B,
- 0x17, 0x17, 0x2B, 0x2B,
- 0x17, 0x17, 0x17, 0x2B,
- 0x17, 0x22, 0x29, 0x2E,
- 0x17, 0x1C, 0x29, 0x2E,
- 0x17, 0x1C, 0x23, 0x2E,
- 0x17, 0x2E, 0x2E, 0x2E,
- 0x17, 0x17, 0x2E, 0x2E,
- 0x17, 0x17, 0x17, 0x2E,
- 0x17, 0x24, 0x2B, 0x31,
- 0x17, 0x1D, 0x2B, 0x31,
- 0x17, 0x1D, 0x24, 0x31,
- 0x17, 0x31, 0x31, 0x31,
- 0x17, 0x17, 0x31, 0x31,
- 0x17, 0x17, 0x17, 0x31,
- 0x17, 0x25, 0x2D, 0x34,
- 0x17, 0x1E, 0x2D, 0x34,
- 0x17, 0x1E, 0x26, 0x34,
- 0x17, 0x34, 0x34, 0x34,
- 0x17, 0x17, 0x34, 0x34,
- 0x17, 0x17, 0x17, 0x34,
- 0x17, 0x27, 0x2F, 0x37,
- 0x17, 0x1F, 0x2F, 0x37,
- 0x17, 0x1F, 0x27, 0x37,
- 0x17, 0x37, 0x37, 0x37,
- 0x17, 0x17, 0x37, 0x37,
- 0x17, 0x17, 0x17, 0x37,
- 0x17, 0x3A, 0x3A, 0x3A,
- 0x17, 0x17, 0x3A, 0x3A,
- 0x17, 0x17, 0x17, 0x3A,
- 0x17, 0x29, 0x32, 0x3B,
- 0x17, 0x20, 0x32, 0x3B,
- 0x17, 0x20, 0x29, 0x3B,
- 0x17, 0x3F, 0x3F, 0x3F,
- 0x17, 0x17, 0x3F, 0x3F,
- 0x17, 0x17, 0x17, 0x3F,
- 0x18, 0x19, 0x19, 0x1A,
- 0x18, 0x19, 0x1A, 0x1B,
- 0x18, 0x1A, 0x1B, 0x1C,
- 0x18, 0x19, 0x1B, 0x1C,
- 0x18, 0x19, 0x1A, 0x1C,
- 0x18, 0x1A, 0x1B, 0x1D,
- 0x18, 0x1A, 0x1C, 0x1D,
- 0x18, 0x19, 0x1C, 0x1D,
- 0x18, 0x19, 0x1B, 0x1D,
- 0x18, 0x1A, 0x1C, 0x1E,
- 0x18, 0x1B, 0x1D, 0x1E,
- 0x18, 0x19, 0x1D, 0x1E,
- 0x18, 0x19, 0x1B, 0x1E,
- 0x18, 0x1E, 0x1E, 0x1E,
- 0x18, 0x18, 0x1E, 0x1E,
- 0x18, 0x18, 0x18, 0x1E,
- 0x18, 0x1B, 0x1C, 0x1F,
- 0x18, 0x1B, 0x1E, 0x1F,
- 0x18, 0x19, 0x1E, 0x1F,
- 0x18, 0x19, 0x1C, 0x1F,
- 0x18, 0x1B, 0x1D, 0x20,
- 0x18, 0x1C, 0x1E, 0x20,
- 0x18, 0x1A, 0x1E, 0x20,
- 0x18, 0x1A, 0x1C, 0x20,
- 0x18, 0x20, 0x20, 0x20,
- 0x18, 0x18, 0x20, 0x20,
- 0x18, 0x18, 0x18, 0x20,
- 0x18, 0x1C, 0x1F, 0x23,
- 0x18, 0x1D, 0x21, 0x23,
- 0x18, 0x1A, 0x21, 0x23,
- 0x18, 0x1A, 0x1E, 0x23,
- 0x18, 0x23, 0x23, 0x23,
- 0x18, 0x18, 0x23, 0x23,
- 0x18, 0x18, 0x18, 0x23,
- 0x18, 0x1D, 0x21, 0x26,
- 0x18, 0x1F, 0x23, 0x26,
- 0x18, 0x1B, 0x23, 0x26,
- 0x18, 0x1B, 0x1F, 0x26,
- 0x18, 0x26, 0x26, 0x26,
- 0x18, 0x18, 0x26, 0x26,
- 0x18, 0x18, 0x18, 0x26,
- 0x18, 0x1E, 0x23, 0x29,
- 0x18, 0x20, 0x25, 0x29,
- 0x18, 0x1C, 0x25, 0x29,
- 0x18, 0x1C, 0x21, 0x29,
- 0x18, 0x29, 0x29, 0x29,
- 0x18, 0x18, 0x29, 0x29,
- 0x18, 0x18, 0x18, 0x29,
- 0x18, 0x1F, 0x25, 0x2C,
- 0x18, 0x22, 0x27, 0x2C,
- 0x18, 0x1D, 0x27, 0x2C,
- 0x18, 0x1D, 0x22, 0x2C,
- 0x18, 0x2C, 0x2C, 0x2C,
- 0x18, 0x18, 0x2C, 0x2C,
- 0x18, 0x18, 0x18, 0x2C,
- 0x18, 0x23, 0x2A, 0x2F,
- 0x18, 0x1D, 0x2A, 0x2F,
- 0x18, 0x1D, 0x24, 0x2F,
- 0x18, 0x2F, 0x2F, 0x2F,
- 0x18, 0x18, 0x2F, 0x2F,
- 0x18, 0x18, 0x18, 0x2F,
- 0x18, 0x25, 0x2C, 0x32,
- 0x18, 0x1E, 0x2C, 0x32,
- 0x18, 0x1E, 0x25, 0x32,
- 0x18, 0x32, 0x32, 0x32,
- 0x18, 0x18, 0x32, 0x32,
- 0x18, 0x18, 0x18, 0x32,
- 0x18, 0x26, 0x2E, 0x35,
- 0x18, 0x1F, 0x2E, 0x35,
- 0x18, 0x1F, 0x27, 0x35,
- 0x18, 0x35, 0x35, 0x35,
- 0x18, 0x18, 0x35, 0x35,
- 0x18, 0x18, 0x18, 0x35,
- 0x18, 0x28, 0x30, 0x38,
- 0x18, 0x20, 0x30, 0x38,
- 0x18, 0x20, 0x28, 0x38,
- 0x18, 0x38, 0x38, 0x38,
- 0x18, 0x18, 0x38, 0x38,
- 0x18, 0x18, 0x18, 0x38,
- 0x18, 0x3B, 0x3B, 0x3B,
- 0x18, 0x18, 0x3B, 0x3B,
- 0x18, 0x18, 0x18, 0x3B,
- 0x18, 0x2A, 0x33, 0x3C,
- 0x18, 0x21, 0x33, 0x3C,
- 0x18, 0x21, 0x2A, 0x3C,
- 0x19, 0x1A, 0x1A, 0x1B,
- 0x19, 0x1A, 0x1B, 0x1C,
- 0x19, 0x1B, 0x1C, 0x1D,
- 0x19, 0x1A, 0x1C, 0x1D,
- 0x19, 0x1A, 0x1B, 0x1D,
- 0x19, 0x1B, 0x1C, 0x1E,
- 0x19, 0x1B, 0x1D, 0x1E,
- 0x19, 0x1A, 0x1D, 0x1E,
- 0x19, 0x1A, 0x1C, 0x1E,
- 0x19, 0x1B, 0x1D, 0x1F,
- 0x19, 0x1C, 0x1E, 0x1F,
- 0x19, 0x1A, 0x1E, 0x1F,
- 0x19, 0x1A, 0x1C, 0x1F,
- 0x19, 0x1F, 0x1F, 0x1F,
- 0x19, 0x19, 0x1F, 0x1F,
- 0x19, 0x19, 0x19, 0x1F,
- 0x19, 0x1C, 0x1D, 0x20,
- 0x19, 0x1C, 0x1F, 0x20,
- 0x19, 0x1A, 0x1F, 0x20,
- 0x19, 0x1A, 0x1D, 0x20,
- 0x19, 0x1C, 0x1E, 0x21,
- 0x19, 0x1D, 0x1F, 0x21,
- 0x19, 0x1B, 0x1F, 0x21,
- 0x19, 0x1B, 0x1D, 0x21,
- 0x19, 0x21, 0x21, 0x21,
- 0x19, 0x19, 0x21, 0x21,
- 0x19, 0x19, 0x19, 0x21,
- 0x19, 0x1D, 0x20, 0x24,
- 0x19, 0x1E, 0x22, 0x24,
- 0x19, 0x1B, 0x22, 0x24,
- 0x19, 0x1B, 0x1F, 0x24,
- 0x19, 0x24, 0x24, 0x24,
- 0x19, 0x19, 0x24, 0x24,
- 0x19, 0x19, 0x19, 0x24,
- 0x19, 0x1E, 0x22, 0x27,
- 0x19, 0x20, 0x24, 0x27,
- 0x19, 0x1C, 0x24, 0x27,
- 0x19, 0x1C, 0x20, 0x27,
- 0x19, 0x27, 0x27, 0x27,
- 0x19, 0x19, 0x27, 0x27,
- 0x19, 0x19, 0x19, 0x27,
- 0x19, 0x1F, 0x24, 0x2A,
- 0x19, 0x21, 0x26, 0x2A,
- 0x19, 0x1D, 0x26, 0x2A,
- 0x19, 0x1D, 0x22, 0x2A,
- 0x19, 0x2A, 0x2A, 0x2A,
- 0x19, 0x19, 0x2A, 0x2A,
- 0x19, 0x19, 0x19, 0x2A,
- 0x19, 0x20, 0x26, 0x2D,
- 0x19, 0x23, 0x28, 0x2D,
- 0x19, 0x1E, 0x28, 0x2D,
- 0x19, 0x1E, 0x23, 0x2D,
- 0x19, 0x2D, 0x2D, 0x2D,
- 0x19, 0x19, 0x2D, 0x2D,
- 0x19, 0x19, 0x19, 0x2D,
- 0x19, 0x24, 0x2B, 0x30,
- 0x19, 0x1E, 0x2B, 0x30,
- 0x19, 0x1E, 0x25, 0x30,
- 0x19, 0x30, 0x30, 0x30,
- 0x19, 0x19, 0x30, 0x30,
- 0x19, 0x19, 0x19, 0x30,
- 0x19, 0x26, 0x2D, 0x33,
- 0x19, 0x1F, 0x2D, 0x33,
- 0x19, 0x1F, 0x26, 0x33,
- 0x19, 0x33, 0x33, 0x33,
- 0x19, 0x19, 0x33, 0x33,
- 0x19, 0x19, 0x19, 0x33,
- 0x19, 0x27, 0x2F, 0x36,
- 0x19, 0x20, 0x2F, 0x36,
- 0x19, 0x20, 0x28, 0x36,
- 0x19, 0x36, 0x36, 0x36,
- 0x19, 0x19, 0x36, 0x36,
- 0x19, 0x19, 0x19, 0x36,
- 0x19, 0x29, 0x31, 0x39,
- 0x19, 0x21, 0x31, 0x39,
- 0x19, 0x21, 0x29, 0x39,
- 0x19, 0x39, 0x39, 0x39,
- 0x19, 0x19, 0x39, 0x39,
- 0x19, 0x19, 0x19, 0x39,
- 0x19, 0x3C, 0x3C, 0x3C,
- 0x19, 0x19, 0x3C, 0x3C,
- 0x19, 0x19, 0x19, 0x3C,
- 0x19, 0x2B, 0x34, 0x3D,
- 0x19, 0x22, 0x34, 0x3D,
- 0x19, 0x22, 0x2B, 0x3D,
- 0x1A, 0x1B, 0x1B, 0x1C,
- 0x1A, 0x1B, 0x1C, 0x1D,
- 0x1A, 0x1C, 0x1D, 0x1E,
- 0x1A, 0x1B, 0x1D, 0x1E,
- 0x1A, 0x1B, 0x1C, 0x1E,
- 0x1A, 0x1C, 0x1D, 0x1F,
- 0x1A, 0x1C, 0x1E, 0x1F,
- 0x1A, 0x1B, 0x1E, 0x1F,
- 0x1A, 0x1B, 0x1D, 0x1F,
- 0x1A, 0x1C, 0x1E, 0x20,
- 0x1A, 0x1D, 0x1F, 0x20,
- 0x1A, 0x1B, 0x1F, 0x20,
- 0x1A, 0x1B, 0x1D, 0x20,
- 0x1A, 0x20, 0x20, 0x20,
- 0x1A, 0x1A, 0x20, 0x20,
- 0x1A, 0x1A, 0x1A, 0x20,
- 0x1A, 0x1D, 0x1E, 0x21,
- 0x1A, 0x1D, 0x20, 0x21,
- 0x1A, 0x1B, 0x20, 0x21,
- 0x1A, 0x1B, 0x1E, 0x21,
- 0x1A, 0x1D, 0x1F, 0x22,
- 0x1A, 0x1E, 0x20, 0x22,
- 0x1A, 0x1C, 0x20, 0x22,
- 0x1A, 0x1C, 0x1E, 0x22,
- 0x1A, 0x22, 0x22, 0x22,
- 0x1A, 0x1A, 0x22, 0x22,
- 0x1A, 0x1A, 0x1A, 0x22,
- 0x1A, 0x1E, 0x21, 0x25,
- 0x1A, 0x1F, 0x23, 0x25,
- 0x1A, 0x1C, 0x23, 0x25,
- 0x1A, 0x1C, 0x20, 0x25,
- 0x1A, 0x25, 0x25, 0x25,
- 0x1A, 0x1A, 0x25, 0x25,
- 0x1A, 0x1A, 0x1A, 0x25,
- 0x1A, 0x1F, 0x23, 0x28,
- 0x1A, 0x21, 0x25, 0x28,
- 0x1A, 0x1D, 0x25, 0x28,
- 0x1A, 0x1D, 0x21, 0x28,
- 0x1A, 0x28, 0x28, 0x28,
- 0x1A, 0x1A, 0x28, 0x28,
- 0x1A, 0x1A, 0x1A, 0x28,
- 0x1A, 0x20, 0x25, 0x2B,
- 0x1A, 0x22, 0x27, 0x2B,
- 0x1A, 0x1E, 0x27, 0x2B,
- 0x1A, 0x1E, 0x23, 0x2B,
- 0x1A, 0x2B, 0x2B, 0x2B,
- 0x1A, 0x1A, 0x2B, 0x2B,
- 0x1A, 0x1A, 0x1A, 0x2B,
- 0x1A, 0x21, 0x27, 0x2E,
- 0x1A, 0x24, 0x29, 0x2E,
- 0x1A, 0x1F, 0x29, 0x2E,
- 0x1A, 0x1F, 0x24, 0x2E,
- 0x1A, 0x2E, 0x2E, 0x2E,
- 0x1A, 0x1A, 0x2E, 0x2E,
- 0x1A, 0x1A, 0x1A, 0x2E,
- 0x1A, 0x25, 0x2C, 0x31,
- 0x1A, 0x1F, 0x2C, 0x31,
- 0x1A, 0x1F, 0x26, 0x31,
- 0x1A, 0x31, 0x31, 0x31,
- 0x1A, 0x1A, 0x31, 0x31,
- 0x1A, 0x1A, 0x1A, 0x31,
- 0x1A, 0x27, 0x2E, 0x34,
- 0x1A, 0x20, 0x2E, 0x34,
- 0x1A, 0x20, 0x27, 0x34,
- 0x1A, 0x34, 0x34, 0x34,
- 0x1A, 0x1A, 0x34, 0x34,
- 0x1A, 0x1A, 0x1A, 0x34,
- 0x1A, 0x28, 0x30, 0x37,
- 0x1A, 0x21, 0x30, 0x37,
- 0x1A, 0x21, 0x29, 0x37,
- 0x1A, 0x37, 0x37, 0x37,
- 0x1A, 0x1A, 0x37, 0x37,
- 0x1A, 0x1A, 0x1A, 0x37,
- 0x1A, 0x2A, 0x32, 0x3A,
- 0x1A, 0x22, 0x32, 0x3A,
- 0x1A, 0x22, 0x2A, 0x3A,
- 0x1A, 0x3A, 0x3A, 0x3A,
- 0x1A, 0x1A, 0x3A, 0x3A,
- 0x1A, 0x1A, 0x1A, 0x3A,
- 0x1A, 0x3D, 0x3D, 0x3D,
- 0x1A, 0x1A, 0x3D, 0x3D,
- 0x1A, 0x1A, 0x1A, 0x3D,
- 0x1A, 0x2C, 0x35, 0x3E,
- 0x1A, 0x23, 0x35, 0x3E,
- 0x1A, 0x23, 0x2C, 0x3E,
- 0x1B, 0x1C, 0x1C, 0x1D,
- 0x1B, 0x1C, 0x1D, 0x1E,
- 0x1B, 0x1D, 0x1E, 0x1F,
- 0x1B, 0x1C, 0x1E, 0x1F,
- 0x1B, 0x1C, 0x1D, 0x1F,
- 0x1B, 0x1D, 0x1E, 0x20,
- 0x1B, 0x1D, 0x1F, 0x20,
- 0x1B, 0x1C, 0x1F, 0x20,
- 0x1B, 0x1C, 0x1E, 0x20,
- 0x1B, 0x1D, 0x1F, 0x21,
- 0x1B, 0x1E, 0x20, 0x21,
- 0x1B, 0x1C, 0x20, 0x21,
- 0x1B, 0x1C, 0x1E, 0x21,
- 0x1B, 0x21, 0x21, 0x21,
- 0x1B, 0x1B, 0x21, 0x21,
- 0x1B, 0x1B, 0x1B, 0x21,
- 0x1B, 0x1E, 0x1F, 0x22,
- 0x1B, 0x1E, 0x21, 0x22,
- 0x1B, 0x1C, 0x21, 0x22,
- 0x1B, 0x1C, 0x1F, 0x22,
- 0x1B, 0x1E, 0x20, 0x23,
- 0x1B, 0x1F, 0x21, 0x23,
- 0x1B, 0x1D, 0x21, 0x23,
- 0x1B, 0x1D, 0x1F, 0x23,
- 0x1B, 0x23, 0x23, 0x23,
- 0x1B, 0x1B, 0x23, 0x23,
- 0x1B, 0x1B, 0x1B, 0x23,
- 0x1B, 0x1F, 0x22, 0x26,
- 0x1B, 0x20, 0x24, 0x26,
- 0x1B, 0x1D, 0x24, 0x26,
- 0x1B, 0x1D, 0x21, 0x26,
- 0x1B, 0x26, 0x26, 0x26,
- 0x1B, 0x1B, 0x26, 0x26,
- 0x1B, 0x1B, 0x1B, 0x26,
- 0x1B, 0x20, 0x24, 0x29,
- 0x1B, 0x22, 0x26, 0x29,
- 0x1B, 0x1E, 0x26, 0x29,
- 0x1B, 0x1E, 0x22, 0x29,
- 0x1B, 0x29, 0x29, 0x29,
- 0x1B, 0x1B, 0x29, 0x29,
- 0x1B, 0x1B, 0x1B, 0x29,
- 0x1B, 0x21, 0x26, 0x2C,
- 0x1B, 0x23, 0x28, 0x2C,
- 0x1B, 0x1F, 0x28, 0x2C,
- 0x1B, 0x1F, 0x24, 0x2C,
- 0x1B, 0x2C, 0x2C, 0x2C,
- 0x1B, 0x1B, 0x2C, 0x2C,
- 0x1B, 0x1B, 0x1B, 0x2C,
- 0x1B, 0x22, 0x28, 0x2F,
- 0x1B, 0x25, 0x2A, 0x2F,
- 0x1B, 0x20, 0x2A, 0x2F,
- 0x1B, 0x20, 0x25, 0x2F,
- 0x1B, 0x2F, 0x2F, 0x2F,
- 0x1B, 0x1B, 0x2F, 0x2F,
- 0x1B, 0x1B, 0x1B, 0x2F,
- 0x1B, 0x26, 0x2D, 0x32,
- 0x1B, 0x20, 0x2D, 0x32,
- 0x1B, 0x20, 0x27, 0x32,
- 0x1B, 0x32, 0x32, 0x32,
- 0x1B, 0x1B, 0x32, 0x32,
- 0x1B, 0x1B, 0x1B, 0x32,
- 0x1B, 0x28, 0x2F, 0x35,
- 0x1B, 0x21, 0x2F, 0x35,
- 0x1B, 0x21, 0x28, 0x35,
- 0x1B, 0x35, 0x35, 0x35,
- 0x1B, 0x1B, 0x35, 0x35,
- 0x1B, 0x1B, 0x1B, 0x35,
- 0x1B, 0x29, 0x31, 0x38,
- 0x1B, 0x22, 0x31, 0x38,
- 0x1B, 0x22, 0x2A, 0x38,
- 0x1B, 0x38, 0x38, 0x38,
- 0x1B, 0x1B, 0x38, 0x38,
- 0x1B, 0x1B, 0x1B, 0x38,
- 0x1B, 0x2B, 0x33, 0x3B,
- 0x1B, 0x23, 0x33, 0x3B,
- 0x1B, 0x23, 0x2B, 0x3B,
- 0x1B, 0x3B, 0x3B, 0x3B,
- 0x1B, 0x1B, 0x3B, 0x3B,
- 0x1B, 0x1B, 0x1B, 0x3B,
- 0x1B, 0x3E, 0x3E, 0x3E,
- 0x1B, 0x1B, 0x3E, 0x3E,
- 0x1B, 0x1B, 0x1B, 0x3E,
- 0x1B, 0x2D, 0x36, 0x3F,
- 0x1B, 0x24, 0x36, 0x3F,
- 0x1B, 0x24, 0x2D, 0x3F,
- 0x1C, 0x1D, 0x1D, 0x1E,
- 0x1C, 0x1D, 0x1E, 0x1F,
- 0x1C, 0x1E, 0x1F, 0x20,
- 0x1C, 0x1D, 0x1F, 0x20,
- 0x1C, 0x1D, 0x1E, 0x20,
- 0x1C, 0x1E, 0x1F, 0x21,
- 0x1C, 0x1E, 0x20, 0x21,
- 0x1C, 0x1D, 0x20, 0x21,
- 0x1C, 0x1D, 0x1F, 0x21,
- 0x1C, 0x1E, 0x20, 0x22,
- 0x1C, 0x1F, 0x21, 0x22,
- 0x1C, 0x1D, 0x21, 0x22,
- 0x1C, 0x1D, 0x1F, 0x22,
- 0x1C, 0x22, 0x22, 0x22,
- 0x1C, 0x1C, 0x22, 0x22,
- 0x1C, 0x1C, 0x1C, 0x22,
- 0x1C, 0x1F, 0x20, 0x23,
- 0x1C, 0x1F, 0x22, 0x23,
- 0x1C, 0x1D, 0x22, 0x23,
- 0x1C, 0x1D, 0x20, 0x23,
- 0x1C, 0x1F, 0x21, 0x24,
- 0x1C, 0x20, 0x22, 0x24,
- 0x1C, 0x1E, 0x22, 0x24,
- 0x1C, 0x1E, 0x20, 0x24,
- 0x1C, 0x24, 0x24, 0x24,
- 0x1C, 0x1C, 0x24, 0x24,
- 0x1C, 0x1C, 0x1C, 0x24,
- 0x1C, 0x20, 0x23, 0x27,
- 0x1C, 0x21, 0x25, 0x27,
- 0x1C, 0x1E, 0x25, 0x27,
- 0x1C, 0x1E, 0x22, 0x27,
- 0x1C, 0x27, 0x27, 0x27,
- 0x1C, 0x1C, 0x27, 0x27,
- 0x1C, 0x1C, 0x1C, 0x27,
- 0x1C, 0x21, 0x25, 0x2A,
- 0x1C, 0x23, 0x27, 0x2A,
- 0x1C, 0x1F, 0x27, 0x2A,
- 0x1C, 0x1F, 0x23, 0x2A,
- 0x1C, 0x2A, 0x2A, 0x2A,
- 0x1C, 0x1C, 0x2A, 0x2A,
- 0x1C, 0x1C, 0x1C, 0x2A,
- 0x1C, 0x22, 0x27, 0x2D,
- 0x1C, 0x24, 0x29, 0x2D,
- 0x1C, 0x20, 0x29, 0x2D,
- 0x1C, 0x20, 0x25, 0x2D,
- 0x1C, 0x2D, 0x2D, 0x2D,
- 0x1C, 0x1C, 0x2D, 0x2D,
- 0x1C, 0x1C, 0x1C, 0x2D,
- 0x1C, 0x23, 0x29, 0x30,
- 0x1C, 0x26, 0x2B, 0x30,
- 0x1C, 0x21, 0x2B, 0x30,
- 0x1C, 0x21, 0x26, 0x30,
- 0x1C, 0x30, 0x30, 0x30,
- 0x1C, 0x1C, 0x30, 0x30,
- 0x1C, 0x1C, 0x1C, 0x30,
- 0x1C, 0x27, 0x2E, 0x33,
- 0x1C, 0x21, 0x2E, 0x33,
- 0x1C, 0x21, 0x28, 0x33,
- 0x1C, 0x33, 0x33, 0x33,
- 0x1C, 0x1C, 0x33, 0x33,
- 0x1C, 0x1C, 0x1C, 0x33,
- 0x1C, 0x29, 0x30, 0x36,
- 0x1C, 0x22, 0x30, 0x36,
- 0x1C, 0x22, 0x29, 0x36,
- 0x1C, 0x36, 0x36, 0x36,
- 0x1C, 0x1C, 0x36, 0x36,
- 0x1C, 0x1C, 0x1C, 0x36,
- 0x1C, 0x2A, 0x32, 0x39,
- 0x1C, 0x23, 0x32, 0x39,
- 0x1C, 0x23, 0x2B, 0x39,
- 0x1C, 0x39, 0x39, 0x39,
- 0x1C, 0x1C, 0x39, 0x39,
- 0x1C, 0x1C, 0x1C, 0x39,
- 0x1C, 0x2C, 0x34, 0x3C,
- 0x1C, 0x24, 0x34, 0x3C,
- 0x1C, 0x24, 0x2C, 0x3C,
- 0x1C, 0x3C, 0x3C, 0x3C,
- 0x1C, 0x1C, 0x3C, 0x3C,
- 0x1C, 0x1C, 0x1C, 0x3C,
- 0x1C, 0x3F, 0x3F, 0x3F,
- 0x1C, 0x1C, 0x3F, 0x3F,
- 0x1C, 0x1C, 0x1C, 0x3F,
- 0x1D, 0x1E, 0x1E, 0x1F,
- 0x1D, 0x1E, 0x1F, 0x20,
- 0x1D, 0x1F, 0x20, 0x21,
- 0x1D, 0x1E, 0x20, 0x21,
- 0x1D, 0x1E, 0x1F, 0x21,
- 0x1D, 0x1F, 0x20, 0x22,
- 0x1D, 0x1F, 0x21, 0x22,
- 0x1D, 0x1E, 0x21, 0x22,
- 0x1D, 0x1E, 0x20, 0x22,
- 0x1D, 0x1F, 0x21, 0x23,
- 0x1D, 0x20, 0x22, 0x23,
- 0x1D, 0x1E, 0x22, 0x23,
- 0x1D, 0x1E, 0x20, 0x23,
- 0x1D, 0x23, 0x23, 0x23,
- 0x1D, 0x1D, 0x23, 0x23,
- 0x1D, 0x1D, 0x1D, 0x23,
- 0x1D, 0x20, 0x21, 0x24,
- 0x1D, 0x20, 0x23, 0x24,
- 0x1D, 0x1E, 0x23, 0x24,
- 0x1D, 0x1E, 0x21, 0x24,
- 0x1D, 0x20, 0x22, 0x25,
- 0x1D, 0x21, 0x23, 0x25,
- 0x1D, 0x1F, 0x23, 0x25,
- 0x1D, 0x1F, 0x21, 0x25,
- 0x1D, 0x25, 0x25, 0x25,
- 0x1D, 0x1D, 0x25, 0x25,
- 0x1D, 0x1D, 0x1D, 0x25,
- 0x1D, 0x21, 0x24, 0x28,
- 0x1D, 0x22, 0x26, 0x28,
- 0x1D, 0x1F, 0x26, 0x28,
- 0x1D, 0x1F, 0x23, 0x28,
- 0x1D, 0x28, 0x28, 0x28,
- 0x1D, 0x1D, 0x28, 0x28,
- 0x1D, 0x1D, 0x1D, 0x28,
- 0x1D, 0x22, 0x26, 0x2B,
- 0x1D, 0x24, 0x28, 0x2B,
- 0x1D, 0x20, 0x28, 0x2B,
- 0x1D, 0x20, 0x24, 0x2B,
- 0x1D, 0x2B, 0x2B, 0x2B,
- 0x1D, 0x1D, 0x2B, 0x2B,
- 0x1D, 0x1D, 0x1D, 0x2B,
- 0x1D, 0x23, 0x28, 0x2E,
- 0x1D, 0x25, 0x2A, 0x2E,
- 0x1D, 0x21, 0x2A, 0x2E,
- 0x1D, 0x21, 0x26, 0x2E,
- 0x1D, 0x2E, 0x2E, 0x2E,
- 0x1D, 0x1D, 0x2E, 0x2E,
- 0x1D, 0x1D, 0x1D, 0x2E,
- 0x1D, 0x24, 0x2A, 0x31,
- 0x1D, 0x27, 0x2C, 0x31,
- 0x1D, 0x22, 0x2C, 0x31,
- 0x1D, 0x22, 0x27, 0x31,
- 0x1D, 0x31, 0x31, 0x31,
- 0x1D, 0x1D, 0x31, 0x31,
- 0x1D, 0x1D, 0x1D, 0x31,
- 0x1D, 0x28, 0x2F, 0x34,
- 0x1D, 0x22, 0x2F, 0x34,
- 0x1D, 0x22, 0x29, 0x34,
- 0x1D, 0x34, 0x34, 0x34,
- 0x1D, 0x1D, 0x34, 0x34,
- 0x1D, 0x1D, 0x1D, 0x34,
- 0x1D, 0x2A, 0x31, 0x37,
- 0x1D, 0x23, 0x31, 0x37,
- 0x1D, 0x23, 0x2A, 0x37,
- 0x1D, 0x37, 0x37, 0x37,
- 0x1D, 0x1D, 0x37, 0x37,
- 0x1D, 0x1D, 0x1D, 0x37,
- 0x1D, 0x2B, 0x33, 0x3A,
- 0x1D, 0x24, 0x33, 0x3A,
- 0x1D, 0x24, 0x2C, 0x3A,
- 0x1D, 0x3A, 0x3A, 0x3A,
- 0x1D, 0x1D, 0x3A, 0x3A,
- 0x1D, 0x1D, 0x1D, 0x3A,
- 0x1D, 0x2D, 0x35, 0x3D,
- 0x1D, 0x25, 0x35, 0x3D,
- 0x1D, 0x25, 0x2D, 0x3D,
- 0x1D, 0x3D, 0x3D, 0x3D,
- 0x1D, 0x1D, 0x3D, 0x3D,
- 0x1D, 0x1D, 0x1D, 0x3D,
- 0x1E, 0x1F, 0x1F, 0x20,
- 0x1E, 0x1F, 0x20, 0x21,
- 0x1E, 0x20, 0x21, 0x22,
- 0x1E, 0x1F, 0x21, 0x22,
- 0x1E, 0x1F, 0x20, 0x22,
- 0x1E, 0x20, 0x21, 0x23,
- 0x1E, 0x20, 0x22, 0x23,
- 0x1E, 0x1F, 0x22, 0x23,
- 0x1E, 0x1F, 0x21, 0x23,
- 0x1E, 0x20, 0x22, 0x24,
- 0x1E, 0x21, 0x23, 0x24,
- 0x1E, 0x1F, 0x23, 0x24,
- 0x1E, 0x1F, 0x21, 0x24,
- 0x1E, 0x24, 0x24, 0x24,
- 0x1E, 0x1E, 0x24, 0x24,
- 0x1E, 0x1E, 0x1E, 0x24,
- 0x1E, 0x21, 0x22, 0x25,
- 0x1E, 0x21, 0x24, 0x25,
- 0x1E, 0x1F, 0x24, 0x25,
- 0x1E, 0x1F, 0x22, 0x25,
- 0x1E, 0x21, 0x23, 0x26,
- 0x1E, 0x22, 0x24, 0x26,
- 0x1E, 0x20, 0x24, 0x26,
- 0x1E, 0x20, 0x22, 0x26,
- 0x1E, 0x26, 0x26, 0x26,
- 0x1E, 0x1E, 0x26, 0x26,
- 0x1E, 0x1E, 0x1E, 0x26,
- 0x1E, 0x22, 0x25, 0x29,
- 0x1E, 0x23, 0x27, 0x29,
- 0x1E, 0x20, 0x27, 0x29,
- 0x1E, 0x20, 0x24, 0x29,
- 0x1E, 0x29, 0x29, 0x29,
- 0x1E, 0x1E, 0x29, 0x29,
- 0x1E, 0x1E, 0x1E, 0x29,
- 0x1E, 0x23, 0x27, 0x2C,
- 0x1E, 0x25, 0x29, 0x2C,
- 0x1E, 0x21, 0x29, 0x2C,
- 0x1E, 0x21, 0x25, 0x2C,
- 0x1E, 0x2C, 0x2C, 0x2C,
- 0x1E, 0x1E, 0x2C, 0x2C,
- 0x1E, 0x1E, 0x1E, 0x2C,
- 0x1E, 0x24, 0x29, 0x2F,
- 0x1E, 0x26, 0x2B, 0x2F,
- 0x1E, 0x22, 0x2B, 0x2F,
- 0x1E, 0x22, 0x27, 0x2F,
- 0x1E, 0x2F, 0x2F, 0x2F,
- 0x1E, 0x1E, 0x2F, 0x2F,
- 0x1E, 0x1E, 0x1E, 0x2F,
- 0x1E, 0x25, 0x2B, 0x32,
- 0x1E, 0x28, 0x2D, 0x32,
- 0x1E, 0x23, 0x2D, 0x32,
- 0x1E, 0x23, 0x28, 0x32,
- 0x1E, 0x32, 0x32, 0x32,
- 0x1E, 0x1E, 0x32, 0x32,
- 0x1E, 0x1E, 0x1E, 0x32,
- 0x1E, 0x29, 0x30, 0x35,
- 0x1E, 0x23, 0x30, 0x35,
- 0x1E, 0x23, 0x2A, 0x35,
- 0x1E, 0x35, 0x35, 0x35,
- 0x1E, 0x1E, 0x35, 0x35,
- 0x1E, 0x1E, 0x1E, 0x35,
- 0x1E, 0x2B, 0x32, 0x38,
- 0x1E, 0x24, 0x32, 0x38,
- 0x1E, 0x24, 0x2B, 0x38,
- 0x1E, 0x38, 0x38, 0x38,
- 0x1E, 0x1E, 0x38, 0x38,
- 0x1E, 0x1E, 0x1E, 0x38,
- 0x1E, 0x2C, 0x34, 0x3B,
- 0x1E, 0x25, 0x34, 0x3B,
- 0x1E, 0x25, 0x2D, 0x3B,
- 0x1E, 0x3B, 0x3B, 0x3B,
- 0x1E, 0x1E, 0x3B, 0x3B,
- 0x1E, 0x1E, 0x1E, 0x3B,
- 0x1E, 0x2E, 0x36, 0x3E,
- 0x1E, 0x26, 0x36, 0x3E,
- 0x1E, 0x26, 0x2E, 0x3E,
- 0x1E, 0x3E, 0x3E, 0x3E,
- 0x1E, 0x1E, 0x3E, 0x3E,
- 0x1E, 0x1E, 0x1E, 0x3E,
- 0x1F, 0x20, 0x20, 0x21,
- 0x1F, 0x20, 0x21, 0x22,
- 0x1F, 0x21, 0x22, 0x23,
- 0x1F, 0x20, 0x22, 0x23,
- 0x1F, 0x20, 0x21, 0x23,
- 0x1F, 0x21, 0x22, 0x24,
- 0x1F, 0x21, 0x23, 0x24,
- 0x1F, 0x20, 0x23, 0x24,
- 0x1F, 0x20, 0x22, 0x24,
- 0x1F, 0x21, 0x23, 0x25,
- 0x1F, 0x22, 0x24, 0x25,
- 0x1F, 0x20, 0x24, 0x25,
- 0x1F, 0x20, 0x22, 0x25,
- 0x1F, 0x25, 0x25, 0x25,
- 0x1F, 0x1F, 0x25, 0x25,
- 0x1F, 0x1F, 0x1F, 0x25,
- 0x1F, 0x22, 0x23, 0x26,
- 0x1F, 0x22, 0x25, 0x26,
- 0x1F, 0x20, 0x25, 0x26,
- 0x1F, 0x20, 0x23, 0x26,
- 0x1F, 0x22, 0x24, 0x27,
- 0x1F, 0x23, 0x25, 0x27,
- 0x1F, 0x21, 0x25, 0x27,
- 0x1F, 0x21, 0x23, 0x27,
- 0x1F, 0x27, 0x27, 0x27,
- 0x1F, 0x1F, 0x27, 0x27,
- 0x1F, 0x1F, 0x1F, 0x27,
- 0x1F, 0x23, 0x26, 0x2A,
- 0x1F, 0x24, 0x28, 0x2A,
- 0x1F, 0x21, 0x28, 0x2A,
- 0x1F, 0x21, 0x25, 0x2A,
- 0x1F, 0x2A, 0x2A, 0x2A,
- 0x1F, 0x1F, 0x2A, 0x2A,
- 0x1F, 0x1F, 0x1F, 0x2A,
- 0x1F, 0x24, 0x28, 0x2D,
- 0x1F, 0x26, 0x2A, 0x2D,
- 0x1F, 0x22, 0x2A, 0x2D,
- 0x1F, 0x22, 0x26, 0x2D,
- 0x1F, 0x2D, 0x2D, 0x2D,
- 0x1F, 0x1F, 0x2D, 0x2D,
- 0x1F, 0x1F, 0x1F, 0x2D,
- 0x1F, 0x25, 0x2A, 0x30,
- 0x1F, 0x27, 0x2C, 0x30,
- 0x1F, 0x23, 0x2C, 0x30,
- 0x1F, 0x23, 0x28, 0x30,
- 0x1F, 0x30, 0x30, 0x30,
- 0x1F, 0x1F, 0x30, 0x30,
- 0x1F, 0x1F, 0x1F, 0x30,
- 0x1F, 0x26, 0x2C, 0x33,
- 0x1F, 0x29, 0x2E, 0x33,
- 0x1F, 0x24, 0x2E, 0x33,
- 0x1F, 0x24, 0x29, 0x33,
- 0x1F, 0x33, 0x33, 0x33,
- 0x1F, 0x1F, 0x33, 0x33,
- 0x1F, 0x1F, 0x1F, 0x33,
- 0x1F, 0x2A, 0x31, 0x36,
- 0x1F, 0x24, 0x31, 0x36,
- 0x1F, 0x24, 0x2B, 0x36,
- 0x1F, 0x36, 0x36, 0x36,
- 0x1F, 0x1F, 0x36, 0x36,
- 0x1F, 0x1F, 0x1F, 0x36,
- 0x1F, 0x2C, 0x33, 0x39,
- 0x1F, 0x25, 0x33, 0x39,
- 0x1F, 0x25, 0x2C, 0x39,
- 0x1F, 0x39, 0x39, 0x39,
- 0x1F, 0x1F, 0x39, 0x39,
- 0x1F, 0x1F, 0x1F, 0x39,
- 0x1F, 0x2D, 0x35, 0x3C,
- 0x1F, 0x26, 0x35, 0x3C,
- 0x1F, 0x26, 0x2E, 0x3C,
- 0x1F, 0x3C, 0x3C, 0x3C,
- 0x1F, 0x1F, 0x3C, 0x3C,
- 0x1F, 0x1F, 0x1F, 0x3C,
- 0x1F, 0x2F, 0x37, 0x3F,
- 0x1F, 0x27, 0x37, 0x3F,
- 0x1F, 0x27, 0x2F, 0x3F,
- 0x1F, 0x3F, 0x3F, 0x3F,
- 0x1F, 0x1F, 0x3F, 0x3F,
- 0x1F, 0x1F, 0x1F, 0x3F,
- 0x20, 0x21, 0x21, 0x22,
- 0x20, 0x21, 0x22, 0x23,
- 0x20, 0x22, 0x23, 0x24,
- 0x20, 0x21, 0x23, 0x24,
- 0x20, 0x21, 0x22, 0x24,
- 0x20, 0x22, 0x23, 0x25,
- 0x20, 0x22, 0x24, 0x25,
- 0x20, 0x21, 0x24, 0x25,
- 0x20, 0x21, 0x23, 0x25,
- 0x20, 0x22, 0x24, 0x26,
- 0x20, 0x23, 0x25, 0x26,
- 0x20, 0x21, 0x25, 0x26,
- 0x20, 0x21, 0x23, 0x26,
- 0x20, 0x26, 0x26, 0x26,
- 0x20, 0x20, 0x26, 0x26,
- 0x20, 0x20, 0x20, 0x26,
- 0x20, 0x23, 0x24, 0x27,
- 0x20, 0x23, 0x26, 0x27,
- 0x20, 0x21, 0x26, 0x27,
- 0x20, 0x21, 0x24, 0x27,
- 0x20, 0x23, 0x25, 0x28,
- 0x20, 0x24, 0x26, 0x28,
- 0x20, 0x22, 0x26, 0x28,
- 0x20, 0x22, 0x24, 0x28,
- 0x20, 0x28, 0x28, 0x28,
- 0x20, 0x20, 0x28, 0x28,
- 0x20, 0x20, 0x20, 0x28,
- 0x20, 0x24, 0x27, 0x2B,
- 0x20, 0x25, 0x29, 0x2B,
- 0x20, 0x22, 0x29, 0x2B,
- 0x20, 0x22, 0x26, 0x2B,
- 0x20, 0x2B, 0x2B, 0x2B,
- 0x20, 0x20, 0x2B, 0x2B,
- 0x20, 0x20, 0x20, 0x2B,
- 0x20, 0x25, 0x29, 0x2E,
- 0x20, 0x27, 0x2B, 0x2E,
- 0x20, 0x23, 0x2B, 0x2E,
- 0x20, 0x23, 0x27, 0x2E,
- 0x20, 0x2E, 0x2E, 0x2E,
- 0x20, 0x20, 0x2E, 0x2E,
- 0x20, 0x20, 0x20, 0x2E,
- 0x20, 0x26, 0x2B, 0x31,
- 0x20, 0x28, 0x2D, 0x31,
- 0x20, 0x24, 0x2D, 0x31,
- 0x20, 0x24, 0x29, 0x31,
- 0x20, 0x31, 0x31, 0x31,
- 0x20, 0x20, 0x31, 0x31,
- 0x20, 0x20, 0x20, 0x31,
- 0x20, 0x27, 0x2D, 0x34,
- 0x20, 0x2A, 0x2F, 0x34,
- 0x20, 0x25, 0x2F, 0x34,
- 0x20, 0x25, 0x2A, 0x34,
- 0x20, 0x34, 0x34, 0x34,
- 0x20, 0x20, 0x34, 0x34,
- 0x20, 0x20, 0x20, 0x34,
- 0x20, 0x2B, 0x32, 0x37,
- 0x20, 0x25, 0x32, 0x37,
- 0x20, 0x25, 0x2C, 0x37,
- 0x20, 0x37, 0x37, 0x37,
- 0x20, 0x20, 0x37, 0x37,
- 0x20, 0x20, 0x20, 0x37,
- 0x20, 0x2D, 0x34, 0x3A,
- 0x20, 0x26, 0x34, 0x3A,
- 0x20, 0x26, 0x2D, 0x3A,
- 0x20, 0x3A, 0x3A, 0x3A,
- 0x20, 0x20, 0x3A, 0x3A,
- 0x20, 0x20, 0x20, 0x3A,
- 0x20, 0x2E, 0x36, 0x3D,
- 0x20, 0x27, 0x36, 0x3D,
- 0x20, 0x27, 0x2F, 0x3D,
- 0x20, 0x3D, 0x3D, 0x3D,
- 0x20, 0x20, 0x3D, 0x3D,
- 0x20, 0x20, 0x20, 0x3D,
- 0x21, 0x22, 0x22, 0x23,
- 0x21, 0x22, 0x23, 0x24,
- 0x21, 0x23, 0x24, 0x25,
- 0x21, 0x22, 0x24, 0x25,
- 0x21, 0x22, 0x23, 0x25,
- 0x21, 0x23, 0x24, 0x26,
- 0x21, 0x23, 0x25, 0x26,
- 0x21, 0x22, 0x25, 0x26,
- 0x21, 0x22, 0x24, 0x26,
- 0x21, 0x23, 0x25, 0x27,
- 0x21, 0x24, 0x26, 0x27,
- 0x21, 0x22, 0x26, 0x27,
- 0x21, 0x22, 0x24, 0x27,
- 0x21, 0x27, 0x27, 0x27,
- 0x21, 0x21, 0x27, 0x27,
- 0x21, 0x21, 0x21, 0x27,
- 0x21, 0x24, 0x25, 0x28,
- 0x21, 0x24, 0x27, 0x28,
- 0x21, 0x22, 0x27, 0x28,
- 0x21, 0x22, 0x25, 0x28,
- 0x21, 0x24, 0x26, 0x29,
- 0x21, 0x25, 0x27, 0x29,
- 0x21, 0x23, 0x27, 0x29,
- 0x21, 0x23, 0x25, 0x29,
- 0x21, 0x29, 0x29, 0x29,
- 0x21, 0x21, 0x29, 0x29,
- 0x21, 0x21, 0x21, 0x29,
- 0x21, 0x25, 0x28, 0x2C,
- 0x21, 0x26, 0x2A, 0x2C,
- 0x21, 0x23, 0x2A, 0x2C,
- 0x21, 0x23, 0x27, 0x2C,
- 0x21, 0x2C, 0x2C, 0x2C,
- 0x21, 0x21, 0x2C, 0x2C,
- 0x21, 0x21, 0x21, 0x2C,
- 0x21, 0x26, 0x2A, 0x2F,
- 0x21, 0x28, 0x2C, 0x2F,
- 0x21, 0x24, 0x2C, 0x2F,
- 0x21, 0x24, 0x28, 0x2F,
- 0x21, 0x2F, 0x2F, 0x2F,
- 0x21, 0x21, 0x2F, 0x2F,
- 0x21, 0x21, 0x21, 0x2F,
- 0x21, 0x27, 0x2C, 0x32,
- 0x21, 0x29, 0x2E, 0x32,
- 0x21, 0x25, 0x2E, 0x32,
- 0x21, 0x25, 0x2A, 0x32,
- 0x21, 0x32, 0x32, 0x32,
- 0x21, 0x21, 0x32, 0x32,
- 0x21, 0x21, 0x21, 0x32,
- 0x21, 0x28, 0x2E, 0x35,
- 0x21, 0x2B, 0x30, 0x35,
- 0x21, 0x26, 0x30, 0x35,
- 0x21, 0x26, 0x2B, 0x35,
- 0x21, 0x35, 0x35, 0x35,
- 0x21, 0x21, 0x35, 0x35,
- 0x21, 0x21, 0x21, 0x35,
- 0x21, 0x2C, 0x33, 0x38,
- 0x21, 0x26, 0x33, 0x38,
- 0x21, 0x26, 0x2D, 0x38,
- 0x21, 0x38, 0x38, 0x38,
- 0x21, 0x21, 0x38, 0x38,
- 0x21, 0x21, 0x21, 0x38,
- 0x21, 0x2E, 0x35, 0x3B,
- 0x21, 0x27, 0x35, 0x3B,
- 0x21, 0x27, 0x2E, 0x3B,
- 0x21, 0x3B, 0x3B, 0x3B,
- 0x21, 0x21, 0x3B, 0x3B,
- 0x21, 0x21, 0x21, 0x3B,
- 0x21, 0x2F, 0x37, 0x3E,
- 0x21, 0x28, 0x37, 0x3E,
- 0x21, 0x28, 0x30, 0x3E,
- 0x21, 0x3E, 0x3E, 0x3E,
- 0x21, 0x21, 0x3E, 0x3E,
- 0x21, 0x21, 0x21, 0x3E,
- 0x22, 0x23, 0x23, 0x24,
- 0x22, 0x23, 0x24, 0x25,
- 0x22, 0x24, 0x25, 0x26,
- 0x22, 0x23, 0x25, 0x26,
- 0x22, 0x23, 0x24, 0x26,
- 0x22, 0x24, 0x25, 0x27,
- 0x22, 0x24, 0x26, 0x27,
- 0x22, 0x23, 0x26, 0x27,
- 0x22, 0x23, 0x25, 0x27,
- 0x22, 0x24, 0x26, 0x28,
- 0x22, 0x25, 0x27, 0x28,
- 0x22, 0x23, 0x27, 0x28,
- 0x22, 0x23, 0x25, 0x28,
- 0x22, 0x28, 0x28, 0x28,
- 0x22, 0x22, 0x28, 0x28,
- 0x22, 0x22, 0x22, 0x28,
- 0x22, 0x25, 0x26, 0x29,
- 0x22, 0x25, 0x28, 0x29,
- 0x22, 0x23, 0x28, 0x29,
- 0x22, 0x23, 0x26, 0x29,
- 0x22, 0x25, 0x27, 0x2A,
- 0x22, 0x26, 0x28, 0x2A,
- 0x22, 0x24, 0x28, 0x2A,
- 0x22, 0x24, 0x26, 0x2A,
- 0x22, 0x2A, 0x2A, 0x2A,
- 0x22, 0x22, 0x2A, 0x2A,
- 0x22, 0x22, 0x22, 0x2A,
- 0x22, 0x26, 0x29, 0x2D,
- 0x22, 0x27, 0x2B, 0x2D,
- 0x22, 0x24, 0x2B, 0x2D,
- 0x22, 0x24, 0x28, 0x2D,
- 0x22, 0x2D, 0x2D, 0x2D,
- 0x22, 0x22, 0x2D, 0x2D,
- 0x22, 0x22, 0x22, 0x2D,
- 0x22, 0x27, 0x2B, 0x30,
- 0x22, 0x29, 0x2D, 0x30,
- 0x22, 0x25, 0x2D, 0x30,
- 0x22, 0x25, 0x29, 0x30,
- 0x22, 0x30, 0x30, 0x30,
- 0x22, 0x22, 0x30, 0x30,
- 0x22, 0x22, 0x22, 0x30,
- 0x22, 0x28, 0x2D, 0x33,
- 0x22, 0x2A, 0x2F, 0x33,
- 0x22, 0x26, 0x2F, 0x33,
- 0x22, 0x26, 0x2B, 0x33,
- 0x22, 0x33, 0x33, 0x33,
- 0x22, 0x22, 0x33, 0x33,
- 0x22, 0x22, 0x22, 0x33,
- 0x22, 0x29, 0x2F, 0x36,
- 0x22, 0x2C, 0x31, 0x36,
- 0x22, 0x27, 0x31, 0x36,
- 0x22, 0x27, 0x2C, 0x36,
- 0x22, 0x36, 0x36, 0x36,
- 0x22, 0x22, 0x36, 0x36,
- 0x22, 0x22, 0x22, 0x36,
- 0x22, 0x2D, 0x34, 0x39,
- 0x22, 0x27, 0x34, 0x39,
- 0x22, 0x27, 0x2E, 0x39,
- 0x22, 0x39, 0x39, 0x39,
- 0x22, 0x22, 0x39, 0x39,
- 0x22, 0x22, 0x22, 0x39,
- 0x22, 0x2F, 0x36, 0x3C,
- 0x22, 0x28, 0x36, 0x3C,
- 0x22, 0x28, 0x2F, 0x3C,
- 0x22, 0x3C, 0x3C, 0x3C,
- 0x22, 0x22, 0x3C, 0x3C,
- 0x22, 0x22, 0x22, 0x3C,
- 0x22, 0x30, 0x38, 0x3F,
- 0x22, 0x29, 0x38, 0x3F,
- 0x22, 0x29, 0x31, 0x3F,
- 0x22, 0x3F, 0x3F, 0x3F,
- 0x22, 0x22, 0x3F, 0x3F,
- 0x22, 0x22, 0x22, 0x3F,
- 0x23, 0x24, 0x24, 0x25,
- 0x23, 0x24, 0x25, 0x26,
- 0x23, 0x25, 0x26, 0x27,
- 0x23, 0x24, 0x26, 0x27,
- 0x23, 0x24, 0x25, 0x27,
- 0x23, 0x25, 0x26, 0x28,
- 0x23, 0x25, 0x27, 0x28,
- 0x23, 0x24, 0x27, 0x28,
- 0x23, 0x24, 0x26, 0x28,
- 0x23, 0x25, 0x27, 0x29,
- 0x23, 0x26, 0x28, 0x29,
- 0x23, 0x24, 0x28, 0x29,
- 0x23, 0x24, 0x26, 0x29,
- 0x23, 0x29, 0x29, 0x29,
- 0x23, 0x23, 0x29, 0x29,
- 0x23, 0x23, 0x23, 0x29,
- 0x23, 0x26, 0x27, 0x2A,
- 0x23, 0x26, 0x29, 0x2A,
- 0x23, 0x24, 0x29, 0x2A,
- 0x23, 0x24, 0x27, 0x2A,
- 0x23, 0x26, 0x28, 0x2B,
- 0x23, 0x27, 0x29, 0x2B,
- 0x23, 0x25, 0x29, 0x2B,
- 0x23, 0x25, 0x27, 0x2B,
- 0x23, 0x2B, 0x2B, 0x2B,
- 0x23, 0x23, 0x2B, 0x2B,
- 0x23, 0x23, 0x23, 0x2B,
- 0x23, 0x27, 0x2A, 0x2E,
- 0x23, 0x28, 0x2C, 0x2E,
- 0x23, 0x25, 0x2C, 0x2E,
- 0x23, 0x25, 0x29, 0x2E,
- 0x23, 0x2E, 0x2E, 0x2E,
- 0x23, 0x23, 0x2E, 0x2E,
- 0x23, 0x23, 0x23, 0x2E,
- 0x23, 0x28, 0x2C, 0x31,
- 0x23, 0x2A, 0x2E, 0x31,
- 0x23, 0x26, 0x2E, 0x31,
- 0x23, 0x26, 0x2A, 0x31,
- 0x23, 0x31, 0x31, 0x31,
- 0x23, 0x23, 0x31, 0x31,
- 0x23, 0x23, 0x23, 0x31,
- 0x23, 0x29, 0x2E, 0x34,
- 0x23, 0x2B, 0x30, 0x34,
- 0x23, 0x27, 0x30, 0x34,
- 0x23, 0x27, 0x2C, 0x34,
- 0x23, 0x34, 0x34, 0x34,
- 0x23, 0x23, 0x34, 0x34,
- 0x23, 0x23, 0x23, 0x34,
- 0x23, 0x2A, 0x30, 0x37,
- 0x23, 0x2D, 0x32, 0x37,
- 0x23, 0x28, 0x32, 0x37,
- 0x23, 0x28, 0x2D, 0x37,
- 0x23, 0x37, 0x37, 0x37,
- 0x23, 0x23, 0x37, 0x37,
- 0x23, 0x23, 0x23, 0x37,
- 0x23, 0x2E, 0x35, 0x3A,
- 0x23, 0x28, 0x35, 0x3A,
- 0x23, 0x28, 0x2F, 0x3A,
- 0x23, 0x3A, 0x3A, 0x3A,
- 0x23, 0x23, 0x3A, 0x3A,
- 0x23, 0x23, 0x23, 0x3A,
- 0x23, 0x30, 0x37, 0x3D,
- 0x23, 0x29, 0x37, 0x3D,
- 0x23, 0x29, 0x30, 0x3D,
- 0x23, 0x3D, 0x3D, 0x3D,
- 0x23, 0x23, 0x3D, 0x3D,
- 0x23, 0x23, 0x23, 0x3D,
- 0x24, 0x25, 0x25, 0x26,
- 0x24, 0x25, 0x26, 0x27,
- 0x24, 0x26, 0x27, 0x28,
- 0x24, 0x25, 0x27, 0x28,
- 0x24, 0x25, 0x26, 0x28,
- 0x24, 0x26, 0x27, 0x29,
- 0x24, 0x26, 0x28, 0x29,
- 0x24, 0x25, 0x28, 0x29,
- 0x24, 0x25, 0x27, 0x29,
- 0x24, 0x26, 0x28, 0x2A,
- 0x24, 0x27, 0x29, 0x2A,
- 0x24, 0x25, 0x29, 0x2A,
- 0x24, 0x25, 0x27, 0x2A,
- 0x24, 0x2A, 0x2A, 0x2A,
- 0x24, 0x24, 0x2A, 0x2A,
- 0x24, 0x24, 0x24, 0x2A,
- 0x24, 0x27, 0x28, 0x2B,
- 0x24, 0x27, 0x2A, 0x2B,
- 0x24, 0x25, 0x2A, 0x2B,
- 0x24, 0x25, 0x28, 0x2B,
- 0x24, 0x27, 0x29, 0x2C,
- 0x24, 0x28, 0x2A, 0x2C,
- 0x24, 0x26, 0x2A, 0x2C,
- 0x24, 0x26, 0x28, 0x2C,
- 0x24, 0x2C, 0x2C, 0x2C,
- 0x24, 0x24, 0x2C, 0x2C,
- 0x24, 0x24, 0x24, 0x2C,
- 0x24, 0x28, 0x2B, 0x2F,
- 0x24, 0x29, 0x2D, 0x2F,
- 0x24, 0x26, 0x2D, 0x2F,
- 0x24, 0x26, 0x2A, 0x2F,
- 0x24, 0x2F, 0x2F, 0x2F,
- 0x24, 0x24, 0x2F, 0x2F,
- 0x24, 0x24, 0x24, 0x2F,
- 0x24, 0x29, 0x2D, 0x32,
- 0x24, 0x2B, 0x2F, 0x32,
- 0x24, 0x27, 0x2F, 0x32,
- 0x24, 0x27, 0x2B, 0x32,
- 0x24, 0x32, 0x32, 0x32,
- 0x24, 0x24, 0x32, 0x32,
- 0x24, 0x24, 0x24, 0x32,
- 0x24, 0x2A, 0x2F, 0x35,
- 0x24, 0x2C, 0x31, 0x35,
- 0x24, 0x28, 0x31, 0x35,
- 0x24, 0x28, 0x2D, 0x35,
- 0x24, 0x35, 0x35, 0x35,
- 0x24, 0x24, 0x35, 0x35,
- 0x24, 0x24, 0x24, 0x35,
- 0x24, 0x2B, 0x31, 0x38,
- 0x24, 0x2E, 0x33, 0x38,
- 0x24, 0x29, 0x33, 0x38,
- 0x24, 0x29, 0x2E, 0x38,
- 0x24, 0x38, 0x38, 0x38,
- 0x24, 0x24, 0x38, 0x38,
- 0x24, 0x24, 0x24, 0x38,
- 0x24, 0x2F, 0x36, 0x3B,
- 0x24, 0x29, 0x36, 0x3B,
- 0x24, 0x29, 0x30, 0x3B,
- 0x24, 0x3B, 0x3B, 0x3B,
- 0x24, 0x24, 0x3B, 0x3B,
- 0x24, 0x24, 0x24, 0x3B,
- 0x24, 0x31, 0x38, 0x3E,
- 0x24, 0x2A, 0x38, 0x3E,
- 0x24, 0x2A, 0x31, 0x3E,
- 0x24, 0x3E, 0x3E, 0x3E,
- 0x24, 0x24, 0x3E, 0x3E,
- 0x24, 0x24, 0x24, 0x3E,
- 0x25, 0x26, 0x26, 0x27,
- 0x25, 0x26, 0x27, 0x28,
- 0x25, 0x27, 0x28, 0x29,
- 0x25, 0x26, 0x28, 0x29,
- 0x25, 0x26, 0x27, 0x29,
- 0x25, 0x27, 0x28, 0x2A,
- 0x25, 0x27, 0x29, 0x2A,
- 0x25, 0x26, 0x29, 0x2A,
- 0x25, 0x26, 0x28, 0x2A,
- 0x25, 0x27, 0x29, 0x2B,
- 0x25, 0x28, 0x2A, 0x2B,
- 0x25, 0x26, 0x2A, 0x2B,
- 0x25, 0x26, 0x28, 0x2B,
- 0x25, 0x2B, 0x2B, 0x2B,
- 0x25, 0x25, 0x2B, 0x2B,
- 0x25, 0x25, 0x25, 0x2B,
- 0x25, 0x28, 0x29, 0x2C,
- 0x25, 0x28, 0x2B, 0x2C,
- 0x25, 0x26, 0x2B, 0x2C,
- 0x25, 0x26, 0x29, 0x2C,
- 0x25, 0x28, 0x2A, 0x2D,
- 0x25, 0x29, 0x2B, 0x2D,
- 0x25, 0x27, 0x2B, 0x2D,
- 0x25, 0x27, 0x29, 0x2D,
- 0x25, 0x2D, 0x2D, 0x2D,
- 0x25, 0x25, 0x2D, 0x2D,
- 0x25, 0x25, 0x25, 0x2D,
- 0x25, 0x29, 0x2C, 0x30,
- 0x25, 0x2A, 0x2E, 0x30,
- 0x25, 0x27, 0x2E, 0x30,
- 0x25, 0x27, 0x2B, 0x30,
- 0x25, 0x30, 0x30, 0x30,
- 0x25, 0x25, 0x30, 0x30,
- 0x25, 0x25, 0x25, 0x30,
- 0x25, 0x2A, 0x2E, 0x33,
- 0x25, 0x2C, 0x30, 0x33,
- 0x25, 0x28, 0x30, 0x33,
- 0x25, 0x28, 0x2C, 0x33,
- 0x25, 0x33, 0x33, 0x33,
- 0x25, 0x25, 0x33, 0x33,
- 0x25, 0x25, 0x25, 0x33,
- 0x25, 0x2B, 0x30, 0x36,
- 0x25, 0x2D, 0x32, 0x36,
- 0x25, 0x29, 0x32, 0x36,
- 0x25, 0x29, 0x2E, 0x36,
- 0x25, 0x36, 0x36, 0x36,
- 0x25, 0x25, 0x36, 0x36,
- 0x25, 0x25, 0x25, 0x36,
- 0x25, 0x2C, 0x32, 0x39,
- 0x25, 0x2F, 0x34, 0x39,
- 0x25, 0x2A, 0x34, 0x39,
- 0x25, 0x2A, 0x2F, 0x39,
- 0x25, 0x39, 0x39, 0x39,
- 0x25, 0x25, 0x39, 0x39,
- 0x25, 0x25, 0x25, 0x39,
- 0x25, 0x30, 0x37, 0x3C,
- 0x25, 0x2A, 0x37, 0x3C,
- 0x25, 0x2A, 0x31, 0x3C,
- 0x25, 0x3C, 0x3C, 0x3C,
- 0x25, 0x25, 0x3C, 0x3C,
- 0x25, 0x25, 0x25, 0x3C,
- 0x25, 0x32, 0x39, 0x3F,
- 0x25, 0x2B, 0x39, 0x3F,
- 0x25, 0x2B, 0x32, 0x3F,
- 0x25, 0x3F, 0x3F, 0x3F,
- 0x25, 0x25, 0x3F, 0x3F,
- 0x25, 0x25, 0x25, 0x3F,
- 0x26, 0x27, 0x27, 0x28,
- 0x26, 0x27, 0x28, 0x29,
- 0x26, 0x28, 0x29, 0x2A,
- 0x26, 0x27, 0x29, 0x2A,
- 0x26, 0x27, 0x28, 0x2A,
- 0x26, 0x28, 0x29, 0x2B,
- 0x26, 0x28, 0x2A, 0x2B,
- 0x26, 0x27, 0x2A, 0x2B,
- 0x26, 0x27, 0x29, 0x2B,
- 0x26, 0x28, 0x2A, 0x2C,
- 0x26, 0x29, 0x2B, 0x2C,
- 0x26, 0x27, 0x2B, 0x2C,
- 0x26, 0x27, 0x29, 0x2C,
- 0x26, 0x2C, 0x2C, 0x2C,
- 0x26, 0x26, 0x2C, 0x2C,
- 0x26, 0x26, 0x26, 0x2C,
- 0x26, 0x29, 0x2A, 0x2D,
- 0x26, 0x29, 0x2C, 0x2D,
- 0x26, 0x27, 0x2C, 0x2D,
- 0x26, 0x27, 0x2A, 0x2D,
- 0x26, 0x29, 0x2B, 0x2E,
- 0x26, 0x2A, 0x2C, 0x2E,
- 0x26, 0x28, 0x2C, 0x2E,
- 0x26, 0x28, 0x2A, 0x2E,
- 0x26, 0x2E, 0x2E, 0x2E,
- 0x26, 0x26, 0x2E, 0x2E,
- 0x26, 0x26, 0x26, 0x2E,
- 0x26, 0x2A, 0x2D, 0x31,
- 0x26, 0x2B, 0x2F, 0x31,
- 0x26, 0x28, 0x2F, 0x31,
- 0x26, 0x28, 0x2C, 0x31,
- 0x26, 0x31, 0x31, 0x31,
- 0x26, 0x26, 0x31, 0x31,
- 0x26, 0x26, 0x26, 0x31,
- 0x26, 0x2B, 0x2F, 0x34,
- 0x26, 0x2D, 0x31, 0x34,
- 0x26, 0x29, 0x31, 0x34,
- 0x26, 0x29, 0x2D, 0x34,
- 0x26, 0x34, 0x34, 0x34,
- 0x26, 0x26, 0x34, 0x34,
- 0x26, 0x26, 0x26, 0x34,
- 0x26, 0x2C, 0x31, 0x37,
- 0x26, 0x2E, 0x33, 0x37,
- 0x26, 0x2A, 0x33, 0x37,
- 0x26, 0x2A, 0x2F, 0x37,
- 0x26, 0x37, 0x37, 0x37,
- 0x26, 0x26, 0x37, 0x37,
- 0x26, 0x26, 0x26, 0x37,
- 0x26, 0x2D, 0x33, 0x3A,
- 0x26, 0x30, 0x35, 0x3A,
- 0x26, 0x2B, 0x35, 0x3A,
- 0x26, 0x2B, 0x30, 0x3A,
- 0x26, 0x3A, 0x3A, 0x3A,
- 0x26, 0x26, 0x3A, 0x3A,
- 0x26, 0x26, 0x26, 0x3A,
- 0x26, 0x31, 0x38, 0x3D,
- 0x26, 0x2B, 0x38, 0x3D,
- 0x26, 0x2B, 0x32, 0x3D,
- 0x26, 0x3D, 0x3D, 0x3D,
- 0x26, 0x26, 0x3D, 0x3D,
- 0x26, 0x26, 0x26, 0x3D,
- 0x27, 0x28, 0x28, 0x29,
- 0x27, 0x28, 0x29, 0x2A,
- 0x27, 0x29, 0x2A, 0x2B,
- 0x27, 0x28, 0x2A, 0x2B,
- 0x27, 0x28, 0x29, 0x2B,
- 0x27, 0x29, 0x2A, 0x2C,
- 0x27, 0x29, 0x2B, 0x2C,
- 0x27, 0x28, 0x2B, 0x2C,
- 0x27, 0x28, 0x2A, 0x2C,
- 0x27, 0x29, 0x2B, 0x2D,
- 0x27, 0x2A, 0x2C, 0x2D,
- 0x27, 0x28, 0x2C, 0x2D,
- 0x27, 0x28, 0x2A, 0x2D,
- 0x27, 0x2D, 0x2D, 0x2D,
- 0x27, 0x27, 0x2D, 0x2D,
- 0x27, 0x27, 0x27, 0x2D,
- 0x27, 0x2A, 0x2B, 0x2E,
- 0x27, 0x2A, 0x2D, 0x2E,
- 0x27, 0x28, 0x2D, 0x2E,
- 0x27, 0x28, 0x2B, 0x2E,
- 0x27, 0x2A, 0x2C, 0x2F,
- 0x27, 0x2B, 0x2D, 0x2F,
- 0x27, 0x29, 0x2D, 0x2F,
- 0x27, 0x29, 0x2B, 0x2F,
- 0x27, 0x2F, 0x2F, 0x2F,
- 0x27, 0x27, 0x2F, 0x2F,
- 0x27, 0x27, 0x27, 0x2F,
- 0x27, 0x2B, 0x2E, 0x32,
- 0x27, 0x2C, 0x30, 0x32,
- 0x27, 0x29, 0x30, 0x32,
- 0x27, 0x29, 0x2D, 0x32,
- 0x27, 0x32, 0x32, 0x32,
- 0x27, 0x27, 0x32, 0x32,
- 0x27, 0x27, 0x27, 0x32,
- 0x27, 0x2C, 0x30, 0x35,
- 0x27, 0x2E, 0x32, 0x35,
- 0x27, 0x2A, 0x32, 0x35,
- 0x27, 0x2A, 0x2E, 0x35,
- 0x27, 0x35, 0x35, 0x35,
- 0x27, 0x27, 0x35, 0x35,
- 0x27, 0x27, 0x27, 0x35,
- 0x27, 0x2D, 0x32, 0x38,
- 0x27, 0x2F, 0x34, 0x38,
- 0x27, 0x2B, 0x34, 0x38,
- 0x27, 0x2B, 0x30, 0x38,
- 0x27, 0x38, 0x38, 0x38,
- 0x27, 0x27, 0x38, 0x38,
- 0x27, 0x27, 0x27, 0x38,
- 0x27, 0x2E, 0x34, 0x3B,
- 0x27, 0x31, 0x36, 0x3B,
- 0x27, 0x2C, 0x36, 0x3B,
- 0x27, 0x2C, 0x31, 0x3B,
- 0x27, 0x3B, 0x3B, 0x3B,
- 0x27, 0x27, 0x3B, 0x3B,
- 0x27, 0x27, 0x27, 0x3B,
- 0x27, 0x32, 0x39, 0x3E,
- 0x27, 0x2C, 0x39, 0x3E,
- 0x27, 0x2C, 0x33, 0x3E,
- 0x27, 0x3E, 0x3E, 0x3E,
- 0x27, 0x27, 0x3E, 0x3E,
- 0x27, 0x27, 0x27, 0x3E,
- 0x28, 0x29, 0x29, 0x2A,
- 0x28, 0x29, 0x2A, 0x2B,
- 0x28, 0x2A, 0x2B, 0x2C,
- 0x28, 0x29, 0x2B, 0x2C,
- 0x28, 0x29, 0x2A, 0x2C,
- 0x28, 0x2A, 0x2B, 0x2D,
- 0x28, 0x2A, 0x2C, 0x2D,
- 0x28, 0x29, 0x2C, 0x2D,
- 0x28, 0x29, 0x2B, 0x2D,
- 0x28, 0x2A, 0x2C, 0x2E,
- 0x28, 0x2B, 0x2D, 0x2E,
- 0x28, 0x29, 0x2D, 0x2E,
- 0x28, 0x29, 0x2B, 0x2E,
- 0x28, 0x2E, 0x2E, 0x2E,
- 0x28, 0x28, 0x2E, 0x2E,
- 0x28, 0x28, 0x28, 0x2E,
- 0x28, 0x2B, 0x2C, 0x2F,
- 0x28, 0x2B, 0x2E, 0x2F,
- 0x28, 0x29, 0x2E, 0x2F,
- 0x28, 0x29, 0x2C, 0x2F,
- 0x28, 0x2B, 0x2D, 0x30,
- 0x28, 0x2C, 0x2E, 0x30,
- 0x28, 0x2A, 0x2E, 0x30,
- 0x28, 0x2A, 0x2C, 0x30,
- 0x28, 0x30, 0x30, 0x30,
- 0x28, 0x28, 0x30, 0x30,
- 0x28, 0x28, 0x28, 0x30,
- 0x28, 0x2C, 0x2F, 0x33,
- 0x28, 0x2D, 0x31, 0x33,
- 0x28, 0x2A, 0x31, 0x33,
- 0x28, 0x2A, 0x2E, 0x33,
- 0x28, 0x33, 0x33, 0x33,
- 0x28, 0x28, 0x33, 0x33,
- 0x28, 0x28, 0x28, 0x33,
- 0x28, 0x2D, 0x31, 0x36,
- 0x28, 0x2F, 0x33, 0x36,
- 0x28, 0x2B, 0x33, 0x36,
- 0x28, 0x2B, 0x2F, 0x36,
- 0x28, 0x36, 0x36, 0x36,
- 0x28, 0x28, 0x36, 0x36,
- 0x28, 0x28, 0x28, 0x36,
- 0x28, 0x2E, 0x33, 0x39,
- 0x28, 0x30, 0x35, 0x39,
- 0x28, 0x2C, 0x35, 0x39,
- 0x28, 0x2C, 0x31, 0x39,
- 0x28, 0x39, 0x39, 0x39,
- 0x28, 0x28, 0x39, 0x39,
- 0x28, 0x28, 0x28, 0x39,
- 0x28, 0x2F, 0x35, 0x3C,
- 0x28, 0x32, 0x37, 0x3C,
- 0x28, 0x2D, 0x37, 0x3C,
- 0x28, 0x2D, 0x32, 0x3C,
- 0x28, 0x3C, 0x3C, 0x3C,
- 0x28, 0x28, 0x3C, 0x3C,
- 0x28, 0x28, 0x28, 0x3C,
- 0x28, 0x33, 0x3A, 0x3F,
- 0x28, 0x2D, 0x3A, 0x3F,
- 0x28, 0x2D, 0x34, 0x3F,
- 0x28, 0x3F, 0x3F, 0x3F,
- 0x28, 0x28, 0x3F, 0x3F,
- 0x28, 0x28, 0x28, 0x3F,
- 0x29, 0x2A, 0x2A, 0x2B,
- 0x29, 0x2A, 0x2B, 0x2C,
- 0x29, 0x2B, 0x2C, 0x2D,
- 0x29, 0x2A, 0x2C, 0x2D,
- 0x29, 0x2A, 0x2B, 0x2D,
- 0x29, 0x2B, 0x2C, 0x2E,
- 0x29, 0x2B, 0x2D, 0x2E,
- 0x29, 0x2A, 0x2D, 0x2E,
- 0x29, 0x2A, 0x2C, 0x2E,
- 0x29, 0x2B, 0x2D, 0x2F,
- 0x29, 0x2C, 0x2E, 0x2F,
- 0x29, 0x2A, 0x2E, 0x2F,
- 0x29, 0x2A, 0x2C, 0x2F,
- 0x29, 0x2F, 0x2F, 0x2F,
- 0x29, 0x29, 0x2F, 0x2F,
- 0x29, 0x29, 0x29, 0x2F,
- 0x29, 0x2C, 0x2D, 0x30,
- 0x29, 0x2C, 0x2F, 0x30,
- 0x29, 0x2A, 0x2F, 0x30,
- 0x29, 0x2A, 0x2D, 0x30,
- 0x29, 0x2C, 0x2E, 0x31,
- 0x29, 0x2D, 0x2F, 0x31,
- 0x29, 0x2B, 0x2F, 0x31,
- 0x29, 0x2B, 0x2D, 0x31,
- 0x29, 0x31, 0x31, 0x31,
- 0x29, 0x29, 0x31, 0x31,
- 0x29, 0x29, 0x29, 0x31,
- 0x29, 0x2D, 0x30, 0x34,
- 0x29, 0x2E, 0x32, 0x34,
- 0x29, 0x2B, 0x32, 0x34,
- 0x29, 0x2B, 0x2F, 0x34,
- 0x29, 0x34, 0x34, 0x34,
- 0x29, 0x29, 0x34, 0x34,
- 0x29, 0x29, 0x29, 0x34,
- 0x29, 0x2E, 0x32, 0x37,
- 0x29, 0x30, 0x34, 0x37,
- 0x29, 0x2C, 0x34, 0x37,
- 0x29, 0x2C, 0x30, 0x37,
- 0x29, 0x37, 0x37, 0x37,
- 0x29, 0x29, 0x37, 0x37,
- 0x29, 0x29, 0x29, 0x37,
- 0x29, 0x2F, 0x34, 0x3A,
- 0x29, 0x31, 0x36, 0x3A,
- 0x29, 0x2D, 0x36, 0x3A,
- 0x29, 0x2D, 0x32, 0x3A,
- 0x29, 0x3A, 0x3A, 0x3A,
- 0x29, 0x29, 0x3A, 0x3A,
- 0x29, 0x29, 0x29, 0x3A,
- 0x29, 0x30, 0x36, 0x3D,
- 0x29, 0x33, 0x38, 0x3D,
- 0x29, 0x2E, 0x38, 0x3D,
- 0x29, 0x2E, 0x33, 0x3D,
- 0x29, 0x3D, 0x3D, 0x3D,
- 0x29, 0x29, 0x3D, 0x3D,
- 0x29, 0x29, 0x29, 0x3D,
- 0x2A, 0x2B, 0x2B, 0x2C,
- 0x2A, 0x2B, 0x2C, 0x2D,
- 0x2A, 0x2C, 0x2D, 0x2E,
- 0x2A, 0x2B, 0x2D, 0x2E,
- 0x2A, 0x2B, 0x2C, 0x2E,
- 0x2A, 0x2C, 0x2D, 0x2F,
- 0x2A, 0x2C, 0x2E, 0x2F,
- 0x2A, 0x2B, 0x2E, 0x2F,
- 0x2A, 0x2B, 0x2D, 0x2F,
- 0x2A, 0x2C, 0x2E, 0x30,
- 0x2A, 0x2D, 0x2F, 0x30,
- 0x2A, 0x2B, 0x2F, 0x30,
- 0x2A, 0x2B, 0x2D, 0x30,
- 0x2A, 0x30, 0x30, 0x30,
- 0x2A, 0x2A, 0x30, 0x30,
- 0x2A, 0x2A, 0x2A, 0x30,
- 0x2A, 0x2D, 0x2E, 0x31,
- 0x2A, 0x2D, 0x30, 0x31,
- 0x2A, 0x2B, 0x30, 0x31,
- 0x2A, 0x2B, 0x2E, 0x31,
- 0x2A, 0x2D, 0x2F, 0x32,
- 0x2A, 0x2E, 0x30, 0x32,
- 0x2A, 0x2C, 0x30, 0x32,
- 0x2A, 0x2C, 0x2E, 0x32,
- 0x2A, 0x32, 0x32, 0x32,
- 0x2A, 0x2A, 0x32, 0x32,
- 0x2A, 0x2A, 0x2A, 0x32,
- 0x2A, 0x2E, 0x31, 0x35,
- 0x2A, 0x2F, 0x33, 0x35,
- 0x2A, 0x2C, 0x33, 0x35,
- 0x2A, 0x2C, 0x30, 0x35,
- 0x2A, 0x35, 0x35, 0x35,
- 0x2A, 0x2A, 0x35, 0x35,
- 0x2A, 0x2A, 0x2A, 0x35,
- 0x2A, 0x2F, 0x33, 0x38,
- 0x2A, 0x31, 0x35, 0x38,
- 0x2A, 0x2D, 0x35, 0x38,
- 0x2A, 0x2D, 0x31, 0x38,
- 0x2A, 0x38, 0x38, 0x38,
- 0x2A, 0x2A, 0x38, 0x38,
- 0x2A, 0x2A, 0x2A, 0x38,
- 0x2A, 0x30, 0x35, 0x3B,
- 0x2A, 0x32, 0x37, 0x3B,
- 0x2A, 0x2E, 0x37, 0x3B,
- 0x2A, 0x2E, 0x33, 0x3B,
- 0x2A, 0x3B, 0x3B, 0x3B,
- 0x2A, 0x2A, 0x3B, 0x3B,
- 0x2A, 0x2A, 0x2A, 0x3B,
- 0x2A, 0x31, 0x37, 0x3E,
- 0x2A, 0x34, 0x39, 0x3E,
- 0x2A, 0x2F, 0x39, 0x3E,
- 0x2A, 0x2F, 0x34, 0x3E,
- 0x2A, 0x3E, 0x3E, 0x3E,
- 0x2A, 0x2A, 0x3E, 0x3E,
- 0x2A, 0x2A, 0x2A, 0x3E,
- 0x2B, 0x2C, 0x2C, 0x2D,
- 0x2B, 0x2C, 0x2D, 0x2E,
- 0x2B, 0x2D, 0x2E, 0x2F,
- 0x2B, 0x2C, 0x2E, 0x2F,
- 0x2B, 0x2C, 0x2D, 0x2F,
- 0x2B, 0x2D, 0x2E, 0x30,
- 0x2B, 0x2D, 0x2F, 0x30,
- 0x2B, 0x2C, 0x2F, 0x30,
- 0x2B, 0x2C, 0x2E, 0x30,
- 0x2B, 0x2D, 0x2F, 0x31,
- 0x2B, 0x2E, 0x30, 0x31,
- 0x2B, 0x2C, 0x30, 0x31,
- 0x2B, 0x2C, 0x2E, 0x31,
- 0x2B, 0x31, 0x31, 0x31,
- 0x2B, 0x2B, 0x31, 0x31,
- 0x2B, 0x2B, 0x2B, 0x31,
- 0x2B, 0x2E, 0x2F, 0x32,
- 0x2B, 0x2E, 0x31, 0x32,
- 0x2B, 0x2C, 0x31, 0x32,
- 0x2B, 0x2C, 0x2F, 0x32,
- 0x2B, 0x2E, 0x30, 0x33,
- 0x2B, 0x2F, 0x31, 0x33,
- 0x2B, 0x2D, 0x31, 0x33,
- 0x2B, 0x2D, 0x2F, 0x33,
- 0x2B, 0x33, 0x33, 0x33,
- 0x2B, 0x2B, 0x33, 0x33,
- 0x2B, 0x2B, 0x2B, 0x33,
- 0x2B, 0x2F, 0x32, 0x36,
- 0x2B, 0x30, 0x34, 0x36,
- 0x2B, 0x2D, 0x34, 0x36,
- 0x2B, 0x2D, 0x31, 0x36,
- 0x2B, 0x36, 0x36, 0x36,
- 0x2B, 0x2B, 0x36, 0x36,
- 0x2B, 0x2B, 0x2B, 0x36,
- 0x2B, 0x30, 0x34, 0x39,
- 0x2B, 0x32, 0x36, 0x39,
- 0x2B, 0x2E, 0x36, 0x39,
- 0x2B, 0x2E, 0x32, 0x39,
- 0x2B, 0x39, 0x39, 0x39,
- 0x2B, 0x2B, 0x39, 0x39,
- 0x2B, 0x2B, 0x2B, 0x39,
- 0x2B, 0x31, 0x36, 0x3C,
- 0x2B, 0x33, 0x38, 0x3C,
- 0x2B, 0x2F, 0x38, 0x3C,
- 0x2B, 0x2F, 0x34, 0x3C,
- 0x2B, 0x3C, 0x3C, 0x3C,
- 0x2B, 0x2B, 0x3C, 0x3C,
- 0x2B, 0x2B, 0x2B, 0x3C,
- 0x2B, 0x32, 0x38, 0x3F,
- 0x2B, 0x35, 0x3A, 0x3F,
- 0x2B, 0x30, 0x3A, 0x3F,
- 0x2B, 0x30, 0x35, 0x3F,
- 0x2B, 0x3F, 0x3F, 0x3F,
- 0x2B, 0x2B, 0x3F, 0x3F,
- 0x2B, 0x2B, 0x2B, 0x3F,
- 0x2C, 0x2D, 0x2D, 0x2E,
- 0x2C, 0x2D, 0x2E, 0x2F,
- 0x2C, 0x2E, 0x2F, 0x30,
- 0x2C, 0x2D, 0x2F, 0x30,
- 0x2C, 0x2D, 0x2E, 0x30,
- 0x2C, 0x2E, 0x2F, 0x31,
- 0x2C, 0x2E, 0x30, 0x31,
- 0x2C, 0x2D, 0x30, 0x31,
- 0x2C, 0x2D, 0x2F, 0x31,
- 0x2C, 0x2E, 0x30, 0x32,
- 0x2C, 0x2F, 0x31, 0x32,
- 0x2C, 0x2D, 0x31, 0x32,
- 0x2C, 0x2D, 0x2F, 0x32,
- 0x2C, 0x32, 0x32, 0x32,
- 0x2C, 0x2C, 0x32, 0x32,
- 0x2C, 0x2C, 0x2C, 0x32,
- 0x2C, 0x2F, 0x30, 0x33,
- 0x2C, 0x2F, 0x32, 0x33,
- 0x2C, 0x2D, 0x32, 0x33,
- 0x2C, 0x2D, 0x30, 0x33,
- 0x2C, 0x2F, 0x31, 0x34,
- 0x2C, 0x30, 0x32, 0x34,
- 0x2C, 0x2E, 0x32, 0x34,
- 0x2C, 0x2E, 0x30, 0x34,
- 0x2C, 0x34, 0x34, 0x34,
- 0x2C, 0x2C, 0x34, 0x34,
- 0x2C, 0x2C, 0x2C, 0x34,
- 0x2C, 0x30, 0x33, 0x37,
- 0x2C, 0x31, 0x35, 0x37,
- 0x2C, 0x2E, 0x35, 0x37,
- 0x2C, 0x2E, 0x32, 0x37,
- 0x2C, 0x37, 0x37, 0x37,
- 0x2C, 0x2C, 0x37, 0x37,
- 0x2C, 0x2C, 0x2C, 0x37,
- 0x2C, 0x31, 0x35, 0x3A,
- 0x2C, 0x33, 0x37, 0x3A,
- 0x2C, 0x2F, 0x37, 0x3A,
- 0x2C, 0x2F, 0x33, 0x3A,
- 0x2C, 0x3A, 0x3A, 0x3A,
- 0x2C, 0x2C, 0x3A, 0x3A,
- 0x2C, 0x2C, 0x2C, 0x3A,
- 0x2C, 0x32, 0x37, 0x3D,
- 0x2C, 0x34, 0x39, 0x3D,
- 0x2C, 0x30, 0x39, 0x3D,
- 0x2C, 0x30, 0x35, 0x3D,
- 0x2C, 0x3D, 0x3D, 0x3D,
- 0x2C, 0x2C, 0x3D, 0x3D,
- 0x2C, 0x2C, 0x2C, 0x3D,
- 0x2D, 0x2E, 0x2E, 0x2F,
- 0x2D, 0x2E, 0x2F, 0x30,
- 0x2D, 0x2F, 0x30, 0x31,
- 0x2D, 0x2E, 0x30, 0x31,
- 0x2D, 0x2E, 0x2F, 0x31,
- 0x2D, 0x2F, 0x30, 0x32,
- 0x2D, 0x2F, 0x31, 0x32,
- 0x2D, 0x2E, 0x31, 0x32,
- 0x2D, 0x2E, 0x30, 0x32,
- 0x2D, 0x2F, 0x31, 0x33,
- 0x2D, 0x30, 0x32, 0x33,
- 0x2D, 0x2E, 0x32, 0x33,
- 0x2D, 0x2E, 0x30, 0x33,
- 0x2D, 0x33, 0x33, 0x33,
- 0x2D, 0x2D, 0x33, 0x33,
- 0x2D, 0x2D, 0x2D, 0x33,
- 0x2D, 0x30, 0x31, 0x34,
- 0x2D, 0x30, 0x33, 0x34,
- 0x2D, 0x2E, 0x33, 0x34,
- 0x2D, 0x2E, 0x31, 0x34,
- 0x2D, 0x30, 0x32, 0x35,
- 0x2D, 0x31, 0x33, 0x35,
- 0x2D, 0x2F, 0x33, 0x35,
- 0x2D, 0x2F, 0x31, 0x35,
- 0x2D, 0x35, 0x35, 0x35,
- 0x2D, 0x2D, 0x35, 0x35,
- 0x2D, 0x2D, 0x2D, 0x35,
- 0x2D, 0x31, 0x34, 0x38,
- 0x2D, 0x32, 0x36, 0x38,
- 0x2D, 0x2F, 0x36, 0x38,
- 0x2D, 0x2F, 0x33, 0x38,
- 0x2D, 0x38, 0x38, 0x38,
- 0x2D, 0x2D, 0x38, 0x38,
- 0x2D, 0x2D, 0x2D, 0x38,
- 0x2D, 0x32, 0x36, 0x3B,
- 0x2D, 0x34, 0x38, 0x3B,
- 0x2D, 0x30, 0x38, 0x3B,
- 0x2D, 0x30, 0x34, 0x3B,
- 0x2D, 0x3B, 0x3B, 0x3B,
- 0x2D, 0x2D, 0x3B, 0x3B,
- 0x2D, 0x2D, 0x2D, 0x3B,
- 0x2D, 0x33, 0x38, 0x3E,
- 0x2D, 0x35, 0x3A, 0x3E,
- 0x2D, 0x31, 0x3A, 0x3E,
- 0x2D, 0x31, 0x36, 0x3E,
- 0x2D, 0x3E, 0x3E, 0x3E,
- 0x2D, 0x2D, 0x3E, 0x3E,
- 0x2D, 0x2D, 0x2D, 0x3E,
- 0x2E, 0x2F, 0x2F, 0x30,
- 0x2E, 0x2F, 0x30, 0x31,
- 0x2E, 0x30, 0x31, 0x32,
- 0x2E, 0x2F, 0x31, 0x32,
- 0x2E, 0x2F, 0x30, 0x32,
- 0x2E, 0x30, 0x31, 0x33,
- 0x2E, 0x30, 0x32, 0x33,
- 0x2E, 0x2F, 0x32, 0x33,
- 0x2E, 0x2F, 0x31, 0x33,
- 0x2E, 0x30, 0x32, 0x34,
- 0x2E, 0x31, 0x33, 0x34,
- 0x2E, 0x2F, 0x33, 0x34,
- 0x2E, 0x2F, 0x31, 0x34,
- 0x2E, 0x34, 0x34, 0x34,
- 0x2E, 0x2E, 0x34, 0x34,
- 0x2E, 0x2E, 0x2E, 0x34,
- 0x2E, 0x31, 0x32, 0x35,
- 0x2E, 0x31, 0x34, 0x35,
- 0x2E, 0x2F, 0x34, 0x35,
- 0x2E, 0x2F, 0x32, 0x35,
- 0x2E, 0x31, 0x33, 0x36,
- 0x2E, 0x32, 0x34, 0x36,
- 0x2E, 0x30, 0x34, 0x36,
- 0x2E, 0x30, 0x32, 0x36,
- 0x2E, 0x36, 0x36, 0x36,
- 0x2E, 0x2E, 0x36, 0x36,
- 0x2E, 0x2E, 0x2E, 0x36,
- 0x2E, 0x32, 0x35, 0x39,
- 0x2E, 0x33, 0x37, 0x39,
- 0x2E, 0x30, 0x37, 0x39,
- 0x2E, 0x30, 0x34, 0x39,
- 0x2E, 0x39, 0x39, 0x39,
- 0x2E, 0x2E, 0x39, 0x39,
- 0x2E, 0x2E, 0x2E, 0x39,
- 0x2E, 0x33, 0x37, 0x3C,
- 0x2E, 0x35, 0x39, 0x3C,
- 0x2E, 0x31, 0x39, 0x3C,
- 0x2E, 0x31, 0x35, 0x3C,
- 0x2E, 0x3C, 0x3C, 0x3C,
- 0x2E, 0x2E, 0x3C, 0x3C,
- 0x2E, 0x2E, 0x2E, 0x3C,
- 0x2E, 0x34, 0x39, 0x3F,
- 0x2E, 0x36, 0x3B, 0x3F,
- 0x2E, 0x32, 0x3B, 0x3F,
- 0x2E, 0x32, 0x37, 0x3F,
- 0x2E, 0x3F, 0x3F, 0x3F,
- 0x2E, 0x2E, 0x3F, 0x3F,
- 0x2E, 0x2E, 0x2E, 0x3F,
- 0x2F, 0x30, 0x30, 0x31,
- 0x2F, 0x30, 0x31, 0x32,
- 0x2F, 0x31, 0x32, 0x33,
- 0x2F, 0x30, 0x32, 0x33,
- 0x2F, 0x30, 0x31, 0x33,
- 0x2F, 0x31, 0x32, 0x34,
- 0x2F, 0x31, 0x33, 0x34,
- 0x2F, 0x30, 0x33, 0x34,
- 0x2F, 0x30, 0x32, 0x34,
- 0x2F, 0x31, 0x33, 0x35,
- 0x2F, 0x32, 0x34, 0x35,
- 0x2F, 0x30, 0x34, 0x35,
- 0x2F, 0x30, 0x32, 0x35,
- 0x2F, 0x35, 0x35, 0x35,
- 0x2F, 0x2F, 0x35, 0x35,
- 0x2F, 0x2F, 0x2F, 0x35,
- 0x2F, 0x32, 0x33, 0x36,
- 0x2F, 0x32, 0x35, 0x36,
- 0x2F, 0x30, 0x35, 0x36,
- 0x2F, 0x30, 0x33, 0x36,
- 0x2F, 0x32, 0x34, 0x37,
- 0x2F, 0x33, 0x35, 0x37,
- 0x2F, 0x31, 0x35, 0x37,
- 0x2F, 0x31, 0x33, 0x37,
- 0x2F, 0x37, 0x37, 0x37,
- 0x2F, 0x2F, 0x37, 0x37,
- 0x2F, 0x2F, 0x2F, 0x37,
- 0x2F, 0x33, 0x36, 0x3A,
- 0x2F, 0x34, 0x38, 0x3A,
- 0x2F, 0x31, 0x38, 0x3A,
- 0x2F, 0x31, 0x35, 0x3A,
- 0x2F, 0x3A, 0x3A, 0x3A,
- 0x2F, 0x2F, 0x3A, 0x3A,
- 0x2F, 0x2F, 0x2F, 0x3A,
- 0x2F, 0x34, 0x38, 0x3D,
- 0x2F, 0x36, 0x3A, 0x3D,
- 0x2F, 0x32, 0x3A, 0x3D,
- 0x2F, 0x32, 0x36, 0x3D,
- 0x2F, 0x3D, 0x3D, 0x3D,
- 0x2F, 0x2F, 0x3D, 0x3D,
- 0x2F, 0x2F, 0x2F, 0x3D,
- 0x30, 0x31, 0x31, 0x32,
- 0x30, 0x31, 0x32, 0x33,
- 0x30, 0x32, 0x33, 0x34,
- 0x30, 0x31, 0x33, 0x34,
- 0x30, 0x31, 0x32, 0x34,
- 0x30, 0x32, 0x33, 0x35,
- 0x30, 0x32, 0x34, 0x35,
- 0x30, 0x31, 0x34, 0x35,
- 0x30, 0x31, 0x33, 0x35,
- 0x30, 0x32, 0x34, 0x36,
- 0x30, 0x33, 0x35, 0x36,
- 0x30, 0x31, 0x35, 0x36,
- 0x30, 0x31, 0x33, 0x36,
- 0x30, 0x36, 0x36, 0x36,
- 0x30, 0x30, 0x36, 0x36,
- 0x30, 0x30, 0x30, 0x36,
- 0x30, 0x33, 0x34, 0x37,
- 0x30, 0x33, 0x36, 0x37,
- 0x30, 0x31, 0x36, 0x37,
- 0x30, 0x31, 0x34, 0x37,
- 0x30, 0x33, 0x35, 0x38,
- 0x30, 0x34, 0x36, 0x38,
- 0x30, 0x32, 0x36, 0x38,
- 0x30, 0x32, 0x34, 0x38,
- 0x30, 0x38, 0x38, 0x38,
- 0x30, 0x30, 0x38, 0x38,
- 0x30, 0x30, 0x30, 0x38,
- 0x30, 0x34, 0x37, 0x3B,
- 0x30, 0x35, 0x39, 0x3B,
- 0x30, 0x32, 0x39, 0x3B,
- 0x30, 0x32, 0x36, 0x3B,
- 0x30, 0x3B, 0x3B, 0x3B,
- 0x30, 0x30, 0x3B, 0x3B,
- 0x30, 0x30, 0x30, 0x3B,
- 0x30, 0x35, 0x39, 0x3E,
- 0x30, 0x37, 0x3B, 0x3E,
- 0x30, 0x33, 0x3B, 0x3E,
- 0x30, 0x33, 0x37, 0x3E,
- 0x30, 0x3E, 0x3E, 0x3E,
- 0x30, 0x30, 0x3E, 0x3E,
- 0x30, 0x30, 0x30, 0x3E,
- 0x31, 0x32, 0x32, 0x33,
- 0x31, 0x32, 0x33, 0x34,
- 0x31, 0x33, 0x34, 0x35,
- 0x31, 0x32, 0x34, 0x35,
- 0x31, 0x32, 0x33, 0x35,
- 0x31, 0x33, 0x34, 0x36,
- 0x31, 0x33, 0x35, 0x36,
- 0x31, 0x32, 0x35, 0x36,
- 0x31, 0x32, 0x34, 0x36,
- 0x31, 0x33, 0x35, 0x37,
- 0x31, 0x34, 0x36, 0x37,
- 0x31, 0x32, 0x36, 0x37,
- 0x31, 0x32, 0x34, 0x37,
- 0x31, 0x37, 0x37, 0x37,
- 0x31, 0x31, 0x37, 0x37,
- 0x31, 0x31, 0x31, 0x37,
- 0x31, 0x34, 0x35, 0x38,
- 0x31, 0x34, 0x37, 0x38,
- 0x31, 0x32, 0x37, 0x38,
- 0x31, 0x32, 0x35, 0x38,
- 0x31, 0x34, 0x36, 0x39,
- 0x31, 0x35, 0x37, 0x39,
- 0x31, 0x33, 0x37, 0x39,
- 0x31, 0x33, 0x35, 0x39,
- 0x31, 0x39, 0x39, 0x39,
- 0x31, 0x31, 0x39, 0x39,
- 0x31, 0x31, 0x31, 0x39,
- 0x31, 0x35, 0x38, 0x3C,
- 0x31, 0x36, 0x3A, 0x3C,
- 0x31, 0x33, 0x3A, 0x3C,
- 0x31, 0x33, 0x37, 0x3C,
- 0x31, 0x3C, 0x3C, 0x3C,
- 0x31, 0x31, 0x3C, 0x3C,
- 0x31, 0x31, 0x31, 0x3C,
- 0x31, 0x36, 0x3A, 0x3F,
- 0x31, 0x38, 0x3C, 0x3F,
- 0x31, 0x34, 0x3C, 0x3F,
- 0x31, 0x34, 0x38, 0x3F,
- 0x31, 0x3F, 0x3F, 0x3F,
- 0x31, 0x31, 0x3F, 0x3F,
- 0x31, 0x31, 0x31, 0x3F,
- 0x32, 0x33, 0x33, 0x34,
- 0x32, 0x33, 0x34, 0x35,
- 0x32, 0x34, 0x35, 0x36,
- 0x32, 0x33, 0x35, 0x36,
- 0x32, 0x33, 0x34, 0x36,
- 0x32, 0x34, 0x35, 0x37,
- 0x32, 0x34, 0x36, 0x37,
- 0x32, 0x33, 0x36, 0x37,
- 0x32, 0x33, 0x35, 0x37,
- 0x32, 0x34, 0x36, 0x38,
- 0x32, 0x35, 0x37, 0x38,
- 0x32, 0x33, 0x37, 0x38,
- 0x32, 0x33, 0x35, 0x38,
- 0x32, 0x38, 0x38, 0x38,
- 0x32, 0x32, 0x38, 0x38,
- 0x32, 0x32, 0x32, 0x38,
- 0x32, 0x35, 0x36, 0x39,
- 0x32, 0x35, 0x38, 0x39,
- 0x32, 0x33, 0x38, 0x39,
- 0x32, 0x33, 0x36, 0x39,
- 0x32, 0x35, 0x37, 0x3A,
- 0x32, 0x36, 0x38, 0x3A,
- 0x32, 0x34, 0x38, 0x3A,
- 0x32, 0x34, 0x36, 0x3A,
- 0x32, 0x3A, 0x3A, 0x3A,
- 0x32, 0x32, 0x3A, 0x3A,
- 0x32, 0x32, 0x32, 0x3A,
- 0x32, 0x36, 0x39, 0x3D,
- 0x32, 0x37, 0x3B, 0x3D,
- 0x32, 0x34, 0x3B, 0x3D,
- 0x32, 0x34, 0x38, 0x3D,
- 0x32, 0x3D, 0x3D, 0x3D,
- 0x32, 0x32, 0x3D, 0x3D,
- 0x32, 0x32, 0x32, 0x3D,
- 0x33, 0x34, 0x34, 0x35,
- 0x33, 0x34, 0x35, 0x36,
- 0x33, 0x35, 0x36, 0x37,
- 0x33, 0x34, 0x36, 0x37,
- 0x33, 0x34, 0x35, 0x37,
- 0x33, 0x35, 0x36, 0x38,
- 0x33, 0x35, 0x37, 0x38,
- 0x33, 0x34, 0x37, 0x38,
- 0x33, 0x34, 0x36, 0x38,
- 0x33, 0x35, 0x37, 0x39,
- 0x33, 0x36, 0x38, 0x39,
- 0x33, 0x34, 0x38, 0x39,
- 0x33, 0x34, 0x36, 0x39,
- 0x33, 0x39, 0x39, 0x39,
- 0x33, 0x33, 0x39, 0x39,
- 0x33, 0x33, 0x33, 0x39,
- 0x33, 0x36, 0x37, 0x3A,
- 0x33, 0x36, 0x39, 0x3A,
- 0x33, 0x34, 0x39, 0x3A,
- 0x33, 0x34, 0x37, 0x3A,
- 0x33, 0x36, 0x38, 0x3B,
- 0x33, 0x37, 0x39, 0x3B,
- 0x33, 0x35, 0x39, 0x3B,
- 0x33, 0x35, 0x37, 0x3B,
- 0x33, 0x3B, 0x3B, 0x3B,
- 0x33, 0x33, 0x3B, 0x3B,
- 0x33, 0x33, 0x33, 0x3B,
- 0x33, 0x37, 0x3A, 0x3E,
- 0x33, 0x38, 0x3C, 0x3E,
- 0x33, 0x35, 0x3C, 0x3E,
- 0x33, 0x35, 0x39, 0x3E,
- 0x33, 0x3E, 0x3E, 0x3E,
- 0x33, 0x33, 0x3E, 0x3E,
- 0x33, 0x33, 0x33, 0x3E,
- 0x34, 0x35, 0x35, 0x36,
- 0x34, 0x35, 0x36, 0x37,
- 0x34, 0x36, 0x37, 0x38,
- 0x34, 0x35, 0x37, 0x38,
- 0x34, 0x35, 0x36, 0x38,
- 0x34, 0x36, 0x37, 0x39,
- 0x34, 0x36, 0x38, 0x39,
- 0x34, 0x35, 0x38, 0x39,
- 0x34, 0x35, 0x37, 0x39,
- 0x34, 0x36, 0x38, 0x3A,
- 0x34, 0x37, 0x39, 0x3A,
- 0x34, 0x35, 0x39, 0x3A,
- 0x34, 0x35, 0x37, 0x3A,
- 0x34, 0x3A, 0x3A, 0x3A,
- 0x34, 0x34, 0x3A, 0x3A,
- 0x34, 0x34, 0x34, 0x3A,
- 0x34, 0x37, 0x38, 0x3B,
- 0x34, 0x37, 0x3A, 0x3B,
- 0x34, 0x35, 0x3A, 0x3B,
- 0x34, 0x35, 0x38, 0x3B,
- 0x34, 0x37, 0x39, 0x3C,
- 0x34, 0x38, 0x3A, 0x3C,
- 0x34, 0x36, 0x3A, 0x3C,
- 0x34, 0x36, 0x38, 0x3C,
- 0x34, 0x3C, 0x3C, 0x3C,
- 0x34, 0x34, 0x3C, 0x3C,
- 0x34, 0x34, 0x34, 0x3C,
- 0x34, 0x38, 0x3B, 0x3F,
- 0x34, 0x39, 0x3D, 0x3F,
- 0x34, 0x36, 0x3D, 0x3F,
- 0x34, 0x36, 0x3A, 0x3F,
- 0x34, 0x3F, 0x3F, 0x3F,
- 0x34, 0x34, 0x3F, 0x3F,
- 0x34, 0x34, 0x34, 0x3F,
- 0x35, 0x36, 0x36, 0x37,
- 0x35, 0x36, 0x37, 0x38,
- 0x35, 0x37, 0x38, 0x39,
- 0x35, 0x36, 0x38, 0x39,
- 0x35, 0x36, 0x37, 0x39,
- 0x35, 0x37, 0x38, 0x3A,
- 0x35, 0x37, 0x39, 0x3A,
- 0x35, 0x36, 0x39, 0x3A,
- 0x35, 0x36, 0x38, 0x3A,
- 0x35, 0x37, 0x39, 0x3B,
- 0x35, 0x38, 0x3A, 0x3B,
- 0x35, 0x36, 0x3A, 0x3B,
- 0x35, 0x36, 0x38, 0x3B,
- 0x35, 0x3B, 0x3B, 0x3B,
- 0x35, 0x35, 0x3B, 0x3B,
- 0x35, 0x35, 0x35, 0x3B,
- 0x35, 0x38, 0x39, 0x3C,
- 0x35, 0x38, 0x3B, 0x3C,
- 0x35, 0x36, 0x3B, 0x3C,
- 0x35, 0x36, 0x39, 0x3C,
- 0x35, 0x38, 0x3A, 0x3D,
- 0x35, 0x39, 0x3B, 0x3D,
- 0x35, 0x37, 0x3B, 0x3D,
- 0x35, 0x37, 0x39, 0x3D,
- 0x35, 0x3D, 0x3D, 0x3D,
- 0x35, 0x35, 0x3D, 0x3D,
- 0x35, 0x35, 0x35, 0x3D,
- 0x36, 0x37, 0x37, 0x38,
- 0x36, 0x37, 0x38, 0x39,
- 0x36, 0x38, 0x39, 0x3A,
- 0x36, 0x37, 0x39, 0x3A,
- 0x36, 0x37, 0x38, 0x3A,
- 0x36, 0x38, 0x39, 0x3B,
- 0x36, 0x38, 0x3A, 0x3B,
- 0x36, 0x37, 0x3A, 0x3B,
- 0x36, 0x37, 0x39, 0x3B,
- 0x36, 0x38, 0x3A, 0x3C,
- 0x36, 0x39, 0x3B, 0x3C,
- 0x36, 0x37, 0x3B, 0x3C,
- 0x36, 0x37, 0x39, 0x3C,
- 0x36, 0x3C, 0x3C, 0x3C,
- 0x36, 0x36, 0x3C, 0x3C,
- 0x36, 0x36, 0x36, 0x3C,
- 0x36, 0x39, 0x3A, 0x3D,
- 0x36, 0x39, 0x3C, 0x3D,
- 0x36, 0x37, 0x3C, 0x3D,
- 0x36, 0x37, 0x3A, 0x3D,
- 0x36, 0x39, 0x3B, 0x3E,
- 0x36, 0x3A, 0x3C, 0x3E,
- 0x36, 0x38, 0x3C, 0x3E,
- 0x36, 0x38, 0x3A, 0x3E,
- 0x36, 0x3E, 0x3E, 0x3E,
- 0x36, 0x36, 0x3E, 0x3E,
- 0x36, 0x36, 0x36, 0x3E,
- 0x37, 0x38, 0x38, 0x39,
- 0x37, 0x38, 0x39, 0x3A,
- 0x37, 0x39, 0x3A, 0x3B,
- 0x37, 0x38, 0x3A, 0x3B,
- 0x37, 0x38, 0x39, 0x3B,
- 0x37, 0x39, 0x3A, 0x3C,
- 0x37, 0x39, 0x3B, 0x3C,
- 0x37, 0x38, 0x3B, 0x3C,
- 0x37, 0x38, 0x3A, 0x3C,
- 0x37, 0x39, 0x3B, 0x3D,
- 0x37, 0x3A, 0x3C, 0x3D,
- 0x37, 0x38, 0x3C, 0x3D,
- 0x37, 0x38, 0x3A, 0x3D,
- 0x37, 0x3D, 0x3D, 0x3D,
- 0x37, 0x37, 0x3D, 0x3D,
- 0x37, 0x37, 0x37, 0x3D,
- 0x37, 0x3A, 0x3B, 0x3E,
- 0x37, 0x3A, 0x3D, 0x3E,
- 0x37, 0x38, 0x3D, 0x3E,
- 0x37, 0x38, 0x3B, 0x3E,
- 0x37, 0x3A, 0x3C, 0x3F,
- 0x37, 0x3B, 0x3D, 0x3F,
- 0x37, 0x39, 0x3D, 0x3F,
- 0x37, 0x39, 0x3B, 0x3F,
- 0x37, 0x3F, 0x3F, 0x3F,
- 0x37, 0x37, 0x3F, 0x3F,
- 0x37, 0x37, 0x37, 0x3F,
- 0x38, 0x39, 0x39, 0x3A,
- 0x38, 0x39, 0x3A, 0x3B,
- 0x38, 0x3A, 0x3B, 0x3C,
- 0x38, 0x39, 0x3B, 0x3C,
- 0x38, 0x39, 0x3A, 0x3C,
- 0x38, 0x3A, 0x3B, 0x3D,
- 0x38, 0x3A, 0x3C, 0x3D,
- 0x38, 0x39, 0x3C, 0x3D,
- 0x38, 0x39, 0x3B, 0x3D,
- 0x38, 0x3A, 0x3C, 0x3E,
- 0x38, 0x3B, 0x3D, 0x3E,
- 0x38, 0x39, 0x3D, 0x3E,
- 0x38, 0x39, 0x3B, 0x3E,
- 0x38, 0x3E, 0x3E, 0x3E,
- 0x38, 0x38, 0x3E, 0x3E,
- 0x38, 0x38, 0x38, 0x3E,
- 0x38, 0x3B, 0x3C, 0x3F,
- 0x38, 0x3B, 0x3E, 0x3F,
- 0x38, 0x39, 0x3E, 0x3F,
- 0x38, 0x39, 0x3C, 0x3F,
- 0x39, 0x3A, 0x3A, 0x3B,
- 0x39, 0x3A, 0x3B, 0x3C,
- 0x39, 0x3B, 0x3C, 0x3D,
- 0x39, 0x3A, 0x3C, 0x3D,
- 0x39, 0x3A, 0x3B, 0x3D,
- 0x39, 0x3B, 0x3C, 0x3E,
- 0x39, 0x3B, 0x3D, 0x3E,
- 0x39, 0x3A, 0x3D, 0x3E,
- 0x39, 0x3A, 0x3C, 0x3E,
- 0x39, 0x3B, 0x3D, 0x3F,
- 0x39, 0x3C, 0x3E, 0x3F,
- 0x39, 0x3A, 0x3E, 0x3F,
- 0x39, 0x3A, 0x3C, 0x3F,
- 0x39, 0x3F, 0x3F, 0x3F,
- 0x39, 0x39, 0x3F, 0x3F,
- 0x39, 0x39, 0x39, 0x3F,
- 0x3A, 0x3B, 0x3B, 0x3C,
- 0x3A, 0x3B, 0x3C, 0x3D,
- 0x3A, 0x3C, 0x3D, 0x3E,
- 0x3A, 0x3B, 0x3D, 0x3E,
- 0x3A, 0x3B, 0x3C, 0x3E,
- 0x3A, 0x3C, 0x3D, 0x3F,
- 0x3A, 0x3C, 0x3E, 0x3F,
- 0x3A, 0x3B, 0x3E, 0x3F,
- 0x3A, 0x3B, 0x3D, 0x3F,
- 0x3B, 0x3C, 0x3C, 0x3D,
- 0x3B, 0x3C, 0x3D, 0x3E,
- 0x3B, 0x3D, 0x3E, 0x3F,
- 0x3B, 0x3C, 0x3E, 0x3F,
- 0x3B, 0x3C, 0x3D, 0x3F,
- 0x3C, 0x3D, 0x3D, 0x3E,
- 0x3C, 0x3D, 0x3E, 0x3F,
- 0x3D, 0x3E, 0x3E, 0x3F
-};
-
-#endif /* AVCODEC_ULTI_CB_H */
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/utils.c b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/utils.c
index 7fc717f7d..6c0c771de 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/utils.c
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/utils.c
@@ -40,25 +40,6 @@
#include <fcntl.h>
#endif
-const uint8_t ff_reverse[256]={
-0x00,0x80,0x40,0xC0,0x20,0xA0,0x60,0xE0,0x10,0x90,0x50,0xD0,0x30,0xB0,0x70,0xF0,
-0x08,0x88,0x48,0xC8,0x28,0xA8,0x68,0xE8,0x18,0x98,0x58,0xD8,0x38,0xB8,0x78,0xF8,
-0x04,0x84,0x44,0xC4,0x24,0xA4,0x64,0xE4,0x14,0x94,0x54,0xD4,0x34,0xB4,0x74,0xF4,
-0x0C,0x8C,0x4C,0xCC,0x2C,0xAC,0x6C,0xEC,0x1C,0x9C,0x5C,0xDC,0x3C,0xBC,0x7C,0xFC,
-0x02,0x82,0x42,0xC2,0x22,0xA2,0x62,0xE2,0x12,0x92,0x52,0xD2,0x32,0xB2,0x72,0xF2,
-0x0A,0x8A,0x4A,0xCA,0x2A,0xAA,0x6A,0xEA,0x1A,0x9A,0x5A,0xDA,0x3A,0xBA,0x7A,0xFA,
-0x06,0x86,0x46,0xC6,0x26,0xA6,0x66,0xE6,0x16,0x96,0x56,0xD6,0x36,0xB6,0x76,0xF6,
-0x0E,0x8E,0x4E,0xCE,0x2E,0xAE,0x6E,0xEE,0x1E,0x9E,0x5E,0xDE,0x3E,0xBE,0x7E,0xFE,
-0x01,0x81,0x41,0xC1,0x21,0xA1,0x61,0xE1,0x11,0x91,0x51,0xD1,0x31,0xB1,0x71,0xF1,
-0x09,0x89,0x49,0xC9,0x29,0xA9,0x69,0xE9,0x19,0x99,0x59,0xD9,0x39,0xB9,0x79,0xF9,
-0x05,0x85,0x45,0xC5,0x25,0xA5,0x65,0xE5,0x15,0x95,0x55,0xD5,0x35,0xB5,0x75,0xF5,
-0x0D,0x8D,0x4D,0xCD,0x2D,0xAD,0x6D,0xED,0x1D,0x9D,0x5D,0xDD,0x3D,0xBD,0x7D,0xFD,
-0x03,0x83,0x43,0xC3,0x23,0xA3,0x63,0xE3,0x13,0x93,0x53,0xD3,0x33,0xB3,0x73,0xF3,
-0x0B,0x8B,0x4B,0xCB,0x2B,0xAB,0x6B,0xEB,0x1B,0x9B,0x5B,0xDB,0x3B,0xBB,0x7B,0xFB,
-0x07,0x87,0x47,0xC7,0x27,0xA7,0x67,0xE7,0x17,0x97,0x57,0xD7,0x37,0xB7,0x77,0xF7,
-0x0F,0x8F,0x4F,0xCF,0x2F,0xAF,0x6F,0xEF,0x1F,0x9F,0x5F,0xDF,0x3F,0xBF,0x7F,0xFF,
-};
-
//static int volatile entangled_thread_counter=0; /* ffdshow custom comment out */
int (*ff_lockmgr_cb)(void **mutex, enum AVLockOp op);
static void *codec_mutex;
@@ -146,17 +127,19 @@ void avcodec_align_dimensions(AVCodecContext *s, int *width, int *height){
case PIX_FMT_YUYV422:
case PIX_FMT_UYVY422:
case PIX_FMT_YUV422P:
+ case PIX_FMT_YUV440P:
case PIX_FMT_YUV444P:
case PIX_FMT_GRAY8:
case PIX_FMT_GRAY16BE:
case PIX_FMT_GRAY16LE:
case PIX_FMT_YUVJ420P:
case PIX_FMT_YUVJ422P:
+ case PIX_FMT_YUVJ440P:
case PIX_FMT_YUVJ444P:
case PIX_FMT_YUVA420P:
w_align= 16; //FIXME check for non mpeg style codecs and use less alignment
h_align= 16;
- if(s->codec_id == CODEC_ID_MPEG2VIDEO)
+ if(s->codec_id == CODEC_ID_MPEG2VIDEO || s->codec_id == CODEC_ID_MJPEG || s->codec_id == CODEC_ID_AMV)
h_align= 32; // interlaced is rounded up to 2 MBs
break;
case PIX_FMT_YUV411P:
@@ -410,6 +393,16 @@ int avcodec_default_execute(AVCodecContext *c, int (*func)(AVCodecContext *c2, v
return 0;
}
+int avcodec_default_execute2(AVCodecContext *c, int (*func)(AVCodecContext *c2, void *arg2, int jobnr, int threadnr),void *arg, int *ret, int count){
+ int i;
+
+ for(i=0; i<count; i++){
+ int r= func(c, arg, i, 0);
+ if(ret) ret[i]= r;
+ }
+ return 0;
+}
+
enum PixelFormat avcodec_default_get_format(struct AVCodecContext *s, const enum PixelFormat *fmt){
return fmt[0];
}
@@ -702,6 +695,8 @@ void avcodec_default_free_buffers(AVCodecContext *s){
if(s->internal_buffer==NULL) return;
+ if (s->internal_buffer_count)
+ av_log(s, AV_LOG_WARNING, "Found %i unreleased buffers!\n", s->internal_buffer_count);
for(i=0; i<INTERNAL_BUFFER_SIZE; i++){
InternalBuffer *buf= &((InternalBuffer*)s->internal_buffer)[i];
for(j=0; j<4; j++){
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/vc1.h b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/vc1.h
index 2037bdc2f..24921dd5e 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/vc1.h
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/vc1.h
@@ -313,6 +313,8 @@ typedef struct VC1Context{
int parse_only; ///< Context is used within parser
+ int warn_interlaced;
+
// ==> Start patch MPC
int allow_interlaced;
// <== End patch MPC
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/vc1dec.c b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/vc1dec.c
index d0510fc97..1bd6b3cea 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/vc1dec.c
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/vc1dec.c
@@ -3037,8 +3037,7 @@ static av_cold int vc1_decode_init(AVCodecContext *avctx)
}
buf2 = av_mallocz(avctx->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);
- // if(start[0]) /* ffdshow custom code (comment out this line) to support madshi's eac3to http://forum.doom9.org/showthread.php?p=1091626#post1091626*/
- start++; // in WVC1 extradata first byte is its size
+ start = find_next_marker(start, end); // in WVC1 extradata first byte is its size, but can be 0 in mkv
next = start;
for(; next < end; start = next){
next = find_next_marker(start + 4, end);
@@ -3177,6 +3176,8 @@ static int vc1_decode_frame(AVCodecContext *avctx,
buf_size2 = vc1_unescape_buffer(buf, divider - buf, buf2);
// TODO
+ if(!v->warn_interlaced++)
+ av_log(v->s.avctx, AV_LOG_ERROR, "Interlaced WVC1 support is not implemented\n");
av_free(buf2);return -1;
}else{
buf_size2 = vc1_unescape_buffer(buf, buf_size, buf2);
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/vp3.c b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/vp3.c
index 1cb9fdd7a..6e35e21f0 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/vp3.c
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/vp3.c
@@ -181,6 +181,14 @@ typedef struct Vp3DecodeContext {
int coded_fragment_list_index;
int pixel_addresses_initialized;
+ /* track which fragments have already been decoded; called 'fast'
+ * because this data structure avoids having to iterate through every
+ * fragment in coded_fragment_list; once a fragment has been fully
+ * decoded, it is removed from this list */
+ int *fast_fragment_list;
+ int fragment_list_y_head;
+ int fragment_list_c_head;
+
VLC dc_vlc[16];
VLC ac_vlc_1[16];
VLC ac_vlc_2[16];
@@ -731,6 +739,25 @@ static int unpack_superblocks(Vp3DecodeContext *s, GetBitContext *gb)
/* end the list of coded C fragments */
s->last_coded_c_fragment = s->coded_fragment_list_index - 1;
+ for (i = 0; i < s->fragment_count - 1; i++) {
+ s->fast_fragment_list[i] = i + 1;
+ }
+ s->fast_fragment_list[s->fragment_count - 1] = -1;
+
+ if (s->last_coded_y_fragment == -1)
+ s->fragment_list_y_head = -1;
+ else {
+ s->fragment_list_y_head = s->first_coded_y_fragment;
+ s->fast_fragment_list[s->last_coded_y_fragment] = -1;
+ }
+
+ if (s->last_coded_c_fragment == -1)
+ s->fragment_list_c_head = -1;
+ else {
+ s->fragment_list_c_head = s->first_coded_c_fragment;
+ s->fast_fragment_list[s->last_coded_c_fragment] = -1;
+ }
+
return 0;
}
@@ -1037,7 +1064,7 @@ static int unpack_block_qpis(Vp3DecodeContext *s, GetBitContext *gb)
*/
static int unpack_vlcs(Vp3DecodeContext *s, GetBitContext *gb,
VLC *table, int coeff_index,
- int first_fragment, int last_fragment,
+ int y_plane,
int eob_run)
{
int i;
@@ -1046,6 +1073,10 @@ static int unpack_vlcs(Vp3DecodeContext *s, GetBitContext *gb,
DCTELEM coeff = 0;
Vp3Fragment *fragment;
int bits_to_get;
+ int next_fragment;
+ int previous_fragment;
+ int fragment_num;
+ int *list_head;
/* local references to structure members to avoid repeated deferences */
uint8_t *perm= s->scantable.permutated;
@@ -1053,20 +1084,26 @@ static int unpack_vlcs(Vp3DecodeContext *s, GetBitContext *gb,
Vp3Fragment *all_fragments = s->all_fragments;
uint8_t *coeff_counts = s->coeff_counts;
VLC_TYPE (*vlc_table)[2] = table->table;
+ int *fast_fragment_list = s->fast_fragment_list;
- if ((first_fragment >= s->fragment_count) ||
- (last_fragment >= s->fragment_count)) {
-
- av_log(s->avctx, AV_LOG_ERROR, " vp3:unpack_vlcs(): bad fragment number (%d -> %d ?)\n",
- first_fragment, last_fragment);
- return 0;
+ if (y_plane) {
+ next_fragment = s->fragment_list_y_head;
+ list_head = &s->fragment_list_y_head;
+ } else {
+ next_fragment = s->fragment_list_c_head;
+ list_head = &s->fragment_list_c_head;
}
- for (i = first_fragment; i <= last_fragment; i++) {
- int fragment_num = coded_fragment_list[i];
+ i = next_fragment;
+ previous_fragment = -1; /* this indicates that the previous fragment is actually the list head */
+ while (i != -1) {
+ fragment_num = coded_fragment_list[i];
- if (coeff_counts[fragment_num] > coeff_index)
+ if (coeff_counts[fragment_num] > coeff_index) {
+ previous_fragment = i;
+ i = fast_fragment_list[i];
continue;
+ }
fragment = &all_fragments[fragment_num];
if (!eob_run) {
@@ -1099,10 +1136,20 @@ static int unpack_vlcs(Vp3DecodeContext *s, GetBitContext *gb,
s->next_coeff->next=NULL;
fragment->next_coeff= s->next_coeff++;
}
+ /* previous fragment is now this fragment */
+ previous_fragment = i;
} else {
coeff_counts[fragment_num] |= 128;
eob_run--;
+ /* remove this fragment from the list */
+ if (previous_fragment != -1)
+ fast_fragment_list[previous_fragment] = fast_fragment_list[i];
+ else
+ *list_head = fast_fragment_list[i];
+ /* previous fragment remains unchanged */
}
+
+ i = fast_fragment_list[i];
}
return eob_run;
@@ -1124,6 +1171,8 @@ static int unpack_dct_coeffs(Vp3DecodeContext *s, GetBitContext *gb)
int ac_y_table;
int ac_c_table;
int residual_eob_run = 0;
+ VLC *y_tables[64];
+ VLC *c_tables[64];
/* fetch the DC table indexes */
dc_y_table = get_bits(gb, 4);
@@ -1131,14 +1180,14 @@ static int unpack_dct_coeffs(Vp3DecodeContext *s, GetBitContext *gb)
/* unpack the Y plane DC coefficients */
residual_eob_run = unpack_vlcs(s, gb, &s->dc_vlc[dc_y_table], 0,
- s->first_coded_y_fragment, s->last_coded_y_fragment, residual_eob_run);
+ 1, residual_eob_run);
/* reverse prediction of the Y-plane DC coefficients */
reverse_dc_prediction(s, 0, s->fragment_width, s->fragment_height);
/* unpack the C plane DC coefficients */
residual_eob_run = unpack_vlcs(s, gb, &s->dc_vlc[dc_c_table], 0,
- s->first_coded_c_fragment, s->last_coded_c_fragment, residual_eob_run);
+ 0, residual_eob_run);
/* reverse prediction of the C-plane DC coefficients */
if (!(s->avctx->flags & CODEC_FLAG_GRAY))
@@ -1153,40 +1202,33 @@ static int unpack_dct_coeffs(Vp3DecodeContext *s, GetBitContext *gb)
ac_y_table = get_bits(gb, 4);
ac_c_table = get_bits(gb, 4);
- /* unpack the group 1 AC coefficients (coeffs 1-5) */
+ /* build tables of AC VLC tables */
for (i = 1; i <= 5; i++) {
- residual_eob_run = unpack_vlcs(s, gb, &s->ac_vlc_1[ac_y_table], i,
- s->first_coded_y_fragment, s->last_coded_y_fragment, residual_eob_run);
-
- residual_eob_run = unpack_vlcs(s, gb, &s->ac_vlc_1[ac_c_table], i,
- s->first_coded_c_fragment, s->last_coded_c_fragment, residual_eob_run);
+ y_tables[i] = &s->ac_vlc_1[ac_y_table];
+ c_tables[i] = &s->ac_vlc_1[ac_c_table];
}
-
- /* unpack the group 2 AC coefficients (coeffs 6-14) */
for (i = 6; i <= 14; i++) {
- residual_eob_run = unpack_vlcs(s, gb, &s->ac_vlc_2[ac_y_table], i,
- s->first_coded_y_fragment, s->last_coded_y_fragment, residual_eob_run);
-
- residual_eob_run = unpack_vlcs(s, gb, &s->ac_vlc_2[ac_c_table], i,
- s->first_coded_c_fragment, s->last_coded_c_fragment, residual_eob_run);
+ y_tables[i] = &s->ac_vlc_2[ac_y_table];
+ c_tables[i] = &s->ac_vlc_2[ac_c_table];
}
-
- /* unpack the group 3 AC coefficients (coeffs 15-27) */
for (i = 15; i <= 27; i++) {
- residual_eob_run = unpack_vlcs(s, gb, &s->ac_vlc_3[ac_y_table], i,
- s->first_coded_y_fragment, s->last_coded_y_fragment, residual_eob_run);
-
- residual_eob_run = unpack_vlcs(s, gb, &s->ac_vlc_3[ac_c_table], i,
- s->first_coded_c_fragment, s->last_coded_c_fragment, residual_eob_run);
+ y_tables[i] = &s->ac_vlc_3[ac_y_table];
+ c_tables[i] = &s->ac_vlc_3[ac_c_table];
}
-
- /* unpack the group 4 AC coefficients (coeffs 28-63) */
for (i = 28; i <= 63; i++) {
- residual_eob_run = unpack_vlcs(s, gb, &s->ac_vlc_4[ac_y_table], i,
- s->first_coded_y_fragment, s->last_coded_y_fragment, residual_eob_run);
+ y_tables[i] = &s->ac_vlc_4[ac_y_table];
+ c_tables[i] = &s->ac_vlc_4[ac_c_table];
+ }
+
+ /* decode all AC coefficents */
+ for (i = 1; i <= 63; i++) {
+ if (s->fragment_list_y_head != -1)
+ residual_eob_run = unpack_vlcs(s, gb, y_tables[i], i,
+ 1, residual_eob_run);
- residual_eob_run = unpack_vlcs(s, gb, &s->ac_vlc_4[ac_c_table], i,
- s->first_coded_c_fragment, s->last_coded_c_fragment, residual_eob_run);
+ if (s->fragment_list_c_head != -1)
+ residual_eob_run = unpack_vlcs(s, gb, c_tables[i], i,
+ 0, residual_eob_run);
}
return 0;
@@ -1710,9 +1752,10 @@ static av_cold int vp3_decode_init(AVCodecContext *avctx)
s->coeff_counts = av_malloc(s->fragment_count * sizeof(*s->coeff_counts));
s->coeffs = av_malloc(s->fragment_count * sizeof(Coeff) * 65);
s->coded_fragment_list = av_malloc(s->fragment_count * sizeof(int));
+ s->fast_fragment_list = av_malloc(s->fragment_count * sizeof(int));
s->pixel_addresses_initialized = 0;
if (!s->superblock_coding || !s->all_fragments || !s->coeff_counts ||
- !s->coeffs || !s->coded_fragment_list) {
+ !s->coeffs || !s->coded_fragment_list || !s->fast_fragment_list) {
vp3_decode_end(avctx);
return -1;
}
@@ -2046,6 +2089,7 @@ static av_cold int vp3_decode_end(AVCodecContext *avctx)
av_free(s->coeff_counts);
av_free(s->coeffs);
av_free(s->coded_fragment_list);
+ av_free(s->fast_fragment_list);
av_free(s->superblock_fragments);
av_free(s->superblock_macroblocks);
av_free(s->macroblock_fragments);
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/w32thread.c b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/w32thread.c
index 118627713..49cffcedc 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/w32thread.c
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/w32thread.c
@@ -29,10 +29,15 @@ typedef struct ThreadContext{
AVCodecContext *avctx;
HANDLE thread;
HANDLE work_sem;
+ HANDLE job_sem;
HANDLE done_sem;
int (*func)(AVCodecContext *c, void *arg);
+ int (*func2)(AVCodecContext *c, void *arg, int, int);
void *arg;
- int ret;
+ int argsize;
+ int *jobnr;
+ int *ret;
+ int threadnr;
}ThreadContext;
@@ -40,13 +45,22 @@ static unsigned WINAPI attribute_align_arg thread_func(void *v){
ThreadContext *c= v;
for(;;){
+ int ret, jobnr;
//printf("thread_func %X enter wait\n", (int)v); fflush(stdout);
WaitForSingleObject(c->work_sem, INFINITE);
+ // avoid trying to access jobnr if we should quit
+ if (!c->func && !c->func2)
+ break;
+ WaitForSingleObject(c->job_sem, INFINITE);
+ jobnr = (*c->jobnr)++;
+ ReleaseSemaphore(c->job_sem, 1, 0);
//printf("thread_func %X after wait (func=%X)\n", (int)v, (int)c->func); fflush(stdout);
if(c->func)
- c->ret= c->func(c->avctx, c->arg);
+ ret= c->func(c->avctx, (uint8_t *)c->arg + jobnr*c->argsize);
else
- return 0;
+ ret= c->func2(c->avctx, c->arg, jobnr, c->threadnr);
+ if (c->ret)
+ c->ret[jobnr] = ret;
//printf("thread_func %X signal complete\n", (int)v); fflush(stdout);
ReleaseSemaphore(c->done_sem, 1, 0);
}
@@ -65,12 +79,16 @@ void avcodec_thread_free(AVCodecContext *s){
for(i=0; i<s->thread_count; i++){
c[i].func= NULL;
- ReleaseSemaphore(c[i].work_sem, 1, 0);
+ c[i].func2= NULL;
+ }
+ ReleaseSemaphore(c[0].work_sem, s->thread_count, 0);
+ for(i=0; i<s->thread_count; i++){
WaitForSingleObject(c[i].thread, INFINITE);
- if(c[i].work_sem) CloseHandle(c[i].work_sem);
- if(c[i].done_sem) CloseHandle(c[i].done_sem);
if(c[i].thread) CloseHandle(c[i].thread);
}
+ if(c[0].work_sem) CloseHandle(c[0].work_sem);
+ if(c[0].job_sem) CloseHandle(c[0].job_sem);
+ if(c[0].done_sem) CloseHandle(c[0].done_sem);
av_freep(&s->thread_opaque);
}
@@ -78,28 +96,34 @@ void avcodec_thread_free(AVCodecContext *s){
int avcodec_thread_execute(AVCodecContext *s, int (*func)(AVCodecContext *c2, void *arg2),void *arg, int *ret, int count, int size){
ThreadContext *c= s->thread_opaque;
int i;
+ int jobnr = 0;
assert(s == c->avctx);
- assert(count <= s->thread_count);
/* note, we can be certain that this is not called with the same AVCodecContext by different threads at the same time */
- for(i=0; i<count; i++){
- c[i].arg= (char*)arg + i*size;
+ for(i=0; i<s->thread_count; i++){
+ c[i].arg= arg;
+ c[i].argsize= size;
c[i].func= func;
- c[i].ret= 12345;
-
- ReleaseSemaphore(c[i].work_sem, 1, 0);
+ c[i].ret= ret;
+ c[i].jobnr = &jobnr;
}
- for(i=0; i<count; i++){
- WaitForSingleObject(c[i].done_sem, INFINITE);
+ ReleaseSemaphore(c[0].work_sem, count, 0);
+ for(i=0; i<count; i++)
+ WaitForSingleObject(c[0].done_sem, INFINITE);
- c[i].func= NULL;
- if(ret) ret[i]= c[i].ret;
- }
return 0;
}
+int avcodec_thread_execute2(AVCodecContext *s, int (*func)(AVCodecContext *c2, void *arg2, int, int),void *arg, int *ret, int count){
+ ThreadContext *c= s->thread_opaque;
+ int i;
+ for(i=0; i<s->thread_count; i++)
+ c[i].func2 = func;
+ avcodec_thread_execute(s, NULL, arg, ret, count, 0);
+}
+
int avcodec_thread_init(AVCodecContext *s, int thread_count){
int i;
ThreadContext *c;
@@ -110,15 +134,20 @@ int avcodec_thread_init(AVCodecContext *s, int thread_count){
assert(!s->thread_opaque);
c= av_mallocz(sizeof(ThreadContext)*thread_count);
s->thread_opaque= c;
+ if(!(c[0].work_sem = CreateSemaphore(NULL, 0, INT_MAX, NULL)))
+ goto fail;
+ if(!(c[0].job_sem = CreateSemaphore(NULL, 1, 1, NULL)))
+ goto fail;
+ if(!(c[0].done_sem = CreateSemaphore(NULL, 0, INT_MAX, NULL)))
+ goto fail;
for(i=0; i<thread_count; i++){
//printf("init semaphors %d\n", i); fflush(stdout);
c[i].avctx= s;
-
- if(!(c[i].work_sem = CreateSemaphore(NULL, 0, s->thread_count, NULL)))
- goto fail;
- if(!(c[i].done_sem = CreateSemaphore(NULL, 0, s->thread_count, NULL)))
- goto fail;
+ c[i].work_sem = c[0].work_sem;
+ c[i].job_sem = c[0].job_sem;
+ c[i].done_sem = c[0].done_sem;
+ c[i].threadnr = i;
//printf("create thread %d\n", i); fflush(stdout);
c[i].thread = (HANDLE)_beginthreadex(NULL, 0, thread_func, &c[i], 0, &threadid );
@@ -127,6 +156,7 @@ int avcodec_thread_init(AVCodecContext *s, int thread_count){
//printf("init done\n"); fflush(stdout);
s->execute= avcodec_thread_execute;
+ s->execute2= avcodec_thread_execute2;
return 0;
fail:
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/x86/dsputil_mmx.c b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/x86/dsputil_mmx.c
index 86e8e7ac0..d518d9c4e 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/x86/dsputil_mmx.c
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/x86/dsputil_mmx.c
@@ -597,7 +597,7 @@ static void add_bytes_l2_mmx(uint8_t *dst, uint8_t *src1, uint8_t *src2, int w){
}
#if HAVE_7REGS && HAVE_TEN_OPERANDS
-static void add_hfyu_median_prediction_cmov(uint8_t *dst, uint8_t *top, uint8_t *diff, int w, int *left, int *left_top) {
+static void add_hfyu_median_prediction_cmov(uint8_t *dst, const uint8_t *top, const uint8_t *diff, int w, int *left, int *left_top) {
x86_reg w2 = -w;
x86_reg x;
int l = *left & 0xff;
@@ -2350,7 +2350,9 @@ static void float_to_int16_sse2(int16_t *dst, const float *src, long len){
void ff_float_to_int16_interleave6_sse(int16_t *dst, const float **src, int len);
void ff_float_to_int16_interleave6_3dnow(int16_t *dst, const float **src, int len);
void ff_float_to_int16_interleave6_3dn2(int16_t *dst, const float **src, int len);
-void ff_add_hfyu_median_prediction_mmx2(uint8_t *dst, uint8_t *top, uint8_t *diff, int w, int *left, int *left_top);
+void ff_add_hfyu_median_prediction_mmx2(uint8_t *dst, const uint8_t *top, const uint8_t *diff, int w, int *left, int *left_top);
+int ff_add_hfyu_left_prediction_ssse3(uint8_t *dst, const uint8_t *src, int w, int left);
+int ff_add_hfyu_left_prediction_sse4(uint8_t *dst, const uint8_t *src, int w, int left);
void ff_x264_deblock_v_luma_sse2(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0);
void ff_x264_deblock_h_luma_sse2(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0);
void ff_x264_deblock_v8_luma_intra_mmxext(uint8_t *pix, int stride, int alpha, int beta);
@@ -2582,8 +2584,10 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
c->put_h264_chroma_pixels_tab[1]= put_h264_chroma_mc4_mmx;
c->put_no_rnd_vc1_chroma_pixels_tab[0]= put_vc1_chroma_mc8_mmx_nornd;
+#if CONFIG_RV40_DECODER
c->put_rv40_chroma_pixels_tab[0]= put_rv40_chroma_mc8_mmx;
c->put_rv40_chroma_pixels_tab[1]= put_rv40_chroma_mc4_mmx;
+#endif
c->h264_idct_dc_add=
c->h264_idct_add= ff_h264_idct_add_mmx;
@@ -2674,8 +2678,10 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
SET_QPEL_FUNCS(avg_2tap_qpel, 0, 16, mmx2);
SET_QPEL_FUNCS(avg_2tap_qpel, 1, 8, mmx2);
+#if CONFIG_RV40_DECODER
c->avg_rv40_chroma_pixels_tab[0]= avg_rv40_chroma_mc8_mmx2;
c->avg_rv40_chroma_pixels_tab[1]= avg_rv40_chroma_mc4_mmx2;
+#endif
c->avg_no_rnd_vc1_chroma_pixels_tab[0]= avg_vc1_chroma_mc8_mmx2_nornd;
@@ -2709,6 +2715,7 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
c->biweight_h264_pixels_tab[6]= ff_h264_biweight_4x4_mmx2;
c->biweight_h264_pixels_tab[7]= ff_h264_biweight_4x2_mmx2;
+#if CONFIG_HUFFYUV_DECODER
#if HAVE_YASM && ARCH_X86_32
c->add_hfyu_median_prediction = ff_add_hfyu_median_prediction_mmx2;
#endif
@@ -2716,6 +2723,7 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
if( mm_flags&FF_MM_3DNOW )
c->add_hfyu_median_prediction = add_hfyu_median_prediction_cmov;
#endif
+#endif
if (CONFIG_CAVS_DECODER)
ff_cavsdsp_init_mmx2(c, avctx);
@@ -2723,7 +2731,9 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
if (CONFIG_VC1_DECODER)
ff_vc1dsp_init_mmx(c, avctx);
+#if CONFIG_PNG_DECODER
c->add_png_paeth_prediction= add_png_paeth_prediction_mmx2;
+#endif
} else if (mm_flags & FF_MM_3DNOW) {
c->prefetch = prefetch_3dnow;
@@ -2772,14 +2782,16 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
c->avg_h264_chroma_pixels_tab[0]= avg_h264_chroma_mc8_3dnow_rnd;
c->avg_h264_chroma_pixels_tab[1]= avg_h264_chroma_mc4_3dnow;
+#if CONFIG_RV40_DECODER
c->avg_rv40_chroma_pixels_tab[0]= avg_rv40_chroma_mc8_3dnow;
c->avg_rv40_chroma_pixels_tab[1]= avg_rv40_chroma_mc4_3dnow;
+#endif
if (CONFIG_CAVS_DECODER)
ff_cavsdsp_init_3dnow(c, avctx);
}
-#if AV_GCC_VERSION_AT_LEAST(4,2)
+
#define H264_QPEL_FUNCS(x, y, CPU)\
c->put_h264_qpel_pixels_tab[0][x+y*4] = put_h264_qpel16_mc##x##y##_##CPU;\
c->put_h264_qpel_pixels_tab[1][x+y*4] = put_h264_qpel8_mc##x##y##_##CPU;\
@@ -2835,12 +2847,15 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
c->put_h264_chroma_pixels_tab[1]= put_h264_chroma_mc4_ssse3;
c->avg_h264_chroma_pixels_tab[1]= avg_h264_chroma_mc4_ssse3;
c->add_png_paeth_prediction= add_png_paeth_prediction_ssse3;
+#if HAVE_YASM && ARCH_X86_32
+ c->add_hfyu_left_prediction = ff_add_hfyu_left_prediction_ssse3;
+ if (mm_flags & FF_MM_SSE4) // not really sse4, just slow on Conroe
+ c->add_hfyu_left_prediction = ff_add_hfyu_left_prediction_sse4;
+#endif
}
#endif
-/* disable YASM based ASM for 64-bit builds */
-#if ARCH_X86_32
-#if CONFIG_GPL && HAVE_YASM
+#if CONFIG_GPL && HAVE_YASM && ARCH_X86_32
if (mm_flags & FF_MM_MMX2){
#if ARCH_X86_32
c->h264_v_loop_filter_luma_intra = ff_x264_deblock_v_luma_intra_mmxext;
@@ -2859,14 +2874,13 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
}
}
#endif
-#endif /* ARCH_X86_32 */
-
-#endif /* AV_GCC_VERSION_AT_LEAST(4,2) */
/* disable audio related ASM for 64-bit builds */
#if ARCH_X86_32
if(mm_flags & FF_MM_3DNOW){
+#if CONFIG_VORBIS_DECODER
c->vorbis_inverse_coupling = vorbis_inverse_coupling_3dnow;
+#endif
c->vector_fmul = vector_fmul_3dnow;
if(!(avctx->flags & CODEC_FLAG_BITEXACT)){
c->float_to_int16 = float_to_int16_3dnow;
@@ -2881,7 +2895,9 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
}
}
if(mm_flags & FF_MM_SSE){
+#if CONFIG_VORBIS_DECODER
c->vorbis_inverse_coupling = vorbis_inverse_coupling_sse;
+#endif
c->ac3_downmix = ac3_downmix_sse;
c->vector_fmul = vector_fmul_sse;
c->vector_fmul_reverse = vector_fmul_reverse_sse;
@@ -2904,24 +2920,3 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
if (CONFIG_ENCODERS)
dsputilenc_init_mmx(c, avctx);
}
-
-const char* avcodec_get_current_idct_mmx(AVCodecContext *avctx,DSPContext *c)
-{
- if (c->idct_put==ff_idct_xvid_mmx_put)
- return "Xvid (ff_idct_xvid_mmx)";
- if (c->idct_put==ff_idct_xvid_mmx2_put)
- return "Xvid (ff_idct_xvid_mmx2)";
- if (c->idct_put==ff_idct_xvid_sse2_put)
- return "Xvid (ff_idct_xvid_sse2)";
- if (c->idct_put==ff_simple_idct_put_mmx)
- return "Simple MMX (ff_simple_idct_mmx)";
- if (c->idct_put==ff_libmpeg2mmx2_idct_put)
- return "libmpeg2 (ff_libmpeg2mmx2_idct)";
- if (c->idct_put==ff_libmpeg2mmx_idct_put)
- return "libmpeg2 (ff_libmpeg2mmx_idct)";
- if (c->idct_put==ff_vp3_idct_put_sse2)
- return "VP3 (ff_vp3_idct_sse2)";
- if (c->idct_put==ff_vp3_idct_put_mmx)
- return "VP3 (ff_vp3_idct_mmx)";
- return NULL;
-}
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/x86/dsputil_yasm.asm b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/x86/dsputil_yasm.asm
index 9d5e62e57..bb6376c64 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/x86/dsputil_yasm.asm
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/x86/dsputil_yasm.asm
@@ -21,6 +21,13 @@
%include "x86inc.asm"
+SECTION_RODATA
+pb_f: times 16 db 15
+pb_zzzzzzzz77777777: times 8 db -1
+pb_7: times 8 db 7
+pb_zzzz3333zzzzbbbb: db -1,-1,-1,-1,3,3,3,3,-1,-1,-1,-1,11,11,11,11
+pb_zz11zz55zz99zzdd: db -1,-1,1,1,-1,-1,5,5,-1,-1,9,9,-1,-1,13,13
+
section .text align=16
%macro PSWAPD_SSE 2
@@ -92,7 +99,7 @@ FLOAT_TO_INT16_INTERLEAVE6 3dn2
-; void ff_add_hfyu_median_prediction_mmx2(uint8_t *dst, uint8_t *top, uint8_t *diff, int w, int *left, int *left_top)
+; void ff_add_hfyu_median_prediction_mmx2(uint8_t *dst, const uint8_t *top, const uint8_t *diff, int w, int *left, int *left_top)
cglobal add_hfyu_median_prediction_mmx2, 6,6,0, dst, top, diff, w, left, left_top
movq mm0, [topq]
movq mm2, mm0
@@ -150,3 +157,70 @@ cglobal add_hfyu_median_prediction_mmx2, 6,6,0, dst, top, diff, w, left, left_to
movzx r2d, byte [topq-1]
mov [left_topq], r2d
RET
+
+
+%macro ADD_HFYU_LEFT_LOOP 1 ; %1 = is_aligned
+ add srcq, wq
+ add dstq, wq
+ neg wq
+%%.loop:
+ mova m1, [srcq+wq]
+ mova m2, m1
+ psllw m1, 8
+ paddb m1, m2
+ mova m2, m1
+ pshufb m1, m3
+ paddb m1, m2
+ pshufb m0, m5
+ mova m2, m1
+ pshufb m1, m4
+ paddb m1, m2
+%if mmsize == 16
+ mova m2, m1
+ pshufb m1, m6
+ paddb m1, m2
+%endif
+ paddb m0, m1
+%if %1
+ mova [dstq+wq], m0
+%else
+ movq [dstq+wq], m0
+ movhps [dstq+wq+8], m0
+%endif
+ add wq, mmsize
+ jl %%.loop
+ mov eax, mmsize-1
+ sub eax, wd
+ movd m1, eax
+ pshufb m0, m1
+ movd eax, m0
+ RET
+%endmacro
+
+; int ff_add_hfyu_left_prediction(uint8_t *dst, const uint8_t *src, int w, int left)
+INIT_MMX
+cglobal add_hfyu_left_prediction_ssse3, 3,3,7, dst, src, w, left
+.skip_prologue:
+ mova m5, [pb_7 GLOBAL]
+ mova m4, [pb_zzzz3333zzzzbbbb GLOBAL]
+ mova m3, [pb_zz11zz55zz99zzdd GLOBAL]
+ movd m0, leftm
+ psllq m0, 56
+ ADD_HFYU_LEFT_LOOP 1
+
+INIT_XMM
+cglobal add_hfyu_left_prediction_sse4, 3,3,7, dst, src, w, left
+ mova m5, [pb_f GLOBAL]
+ mova m6, [pb_zzzzzzzz77777777 GLOBAL]
+ mova m4, [pb_zzzz3333zzzzbbbb GLOBAL]
+ mova m3, [pb_zz11zz55zz99zzdd GLOBAL]
+ movd m0, leftm
+ pslldq m0, 15
+ test srcq, 15
+ jnz add_hfyu_left_prediction_ssse3.skip_prologue
+ test dstq, 15
+ jnz .unaligned
+ ADD_HFYU_LEFT_LOOP 1
+.unaligned:
+ ADD_HFYU_LEFT_LOOP 0
+
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/x86/fft_mmx.asm b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/x86/fft_mmx.asm
index 6c1b26d40..26bd748ae 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/x86/fft_mmx.asm
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/x86/fft_mmx.asm
@@ -264,6 +264,7 @@ IF%1 mova Z(1), m3
%endmacro
INIT_XMM
+%define mova movaps
%define Z(x) [r0+mmsize*x]
@@ -403,6 +404,7 @@ DEFINE_ARGS z, w, n, o1, o3
%endmacro
INIT_XMM
+%define mova movaps
DECL_PASS pass_sse, PASS_BIG 1
DECL_PASS pass_interleave_sse, PASS_BIG 0
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/x86/mpegvideo_mmx.c b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/x86/mpegvideo_mmx.c
index e611c5d63..f9a8847de 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/x86/mpegvideo_mmx.c
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/x86/mpegvideo_mmx.c
@@ -605,7 +605,6 @@ static void denoise_dct_sse2(MpegEncContext *s, DCTELEM *block){
#define RENAMEl(a) a ## _mmx2
#include "mpegvideo_mmx_template.c"
-#if AV_GCC_VERSION_AT_LEAST(4,2)
#undef HAVE_SSE2
#define HAVE_SSE2 1
#undef RENAME
@@ -623,7 +622,6 @@ static void denoise_dct_sse2(MpegEncContext *s, DCTELEM *block){
#define RENAMEl(a) a ## _sse2
#include "mpegvideo_mmx_template.c"
#endif
-#endif /* AV_GCC_VERSION_AT_LEAST(4,2) */
void MPV_common_init_mmx(MpegEncContext *s)
{
@@ -638,28 +636,21 @@ void MPV_common_init_mmx(MpegEncContext *s)
s->dct_unquantize_mpeg2_intra = dct_unquantize_mpeg2_intra_mmx;
s->dct_unquantize_mpeg2_inter = dct_unquantize_mpeg2_inter_mmx;
-#if AV_GCC_VERSION_AT_LEAST(4,2)
if (mm_flags & FF_MM_SSE2) {
s->denoise_dct= denoise_dct_sse2;
} else {
s->denoise_dct= denoise_dct_mmx;
}
-#else
- s->denoise_dct= denoise_dct_mmx;
-#endif
if(dct_algo==FF_DCT_AUTO || dct_algo==FF_DCT_MMX){
-#if AV_GCC_VERSION_AT_LEAST(4,2)
-#if HAVE_SSSE3
+#if HAVE_SSSE3
if(mm_flags & FF_MM_SSSE3){
s->dct_quantize= dct_quantize_SSSE3;
} else
#endif
if(mm_flags & FF_MM_SSE2){
s->dct_quantize= dct_quantize_SSE2;
- } else
-#endif
- if(mm_flags & FF_MM_MMX2){
+ } else if(mm_flags & FF_MM_MMX2){
s->dct_quantize= dct_quantize_MMX2;
} else {
s->dct_quantize= dct_quantize_MMX;
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/x86/x86inc.asm b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/x86/x86inc.asm
index 52624c3ac..c29ef3ee3 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/x86/x86inc.asm
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavcodec/x86/x86inc.asm
@@ -53,7 +53,7 @@
; in memory) must use an address mode that does fit.
; So all accesses to global variables must use this macro, e.g.
; mov eax, [foo GLOBAL]
-; instead of
+; instead of
; mov eax, [foo]
;
; x86_32 doesn't require PIC.
@@ -84,7 +84,7 @@
; PROLOGUE can also be invoked by adding the same options to cglobal
; e.g.
-; cglobal foo, 2,3, dst, src, tmp
+; cglobal foo, 2,3,0, dst, src, tmp
; declares a function (foo), taking two args (dst and src) and one local variable (tmp)
; TODO Some functions can use some args directly from the stack. If they're the
@@ -221,6 +221,7 @@ DECLARE_REG_TMP_SIZE 0,1,2,3,4,5,6,7
CAT_UNDEF arg_name %+ %%i, d
CAT_UNDEF arg_name %+ %%i, w
CAT_UNDEF arg_name %+ %%i, b
+ CAT_UNDEF arg_name %+ %%i, m
CAT_UNDEF arg_name, %%i
%assign %%i %%i+1
%endrep
@@ -232,6 +233,7 @@ DECLARE_REG_TMP_SIZE 0,1,2,3,4,5,6,7
%xdefine %1d r %+ %%i %+ d
%xdefine %1w r %+ %%i %+ w
%xdefine %1b r %+ %%i %+ b
+ %xdefine %1m r %+ %%i %+ m
CAT_XDEFINE arg_name, %%i, %1
%assign %%i %%i+1
%rotate 1
@@ -436,6 +438,7 @@ DECLARE_REG 6, ebp, ebp, bp, null, [esp + stack_offset + 28]
%ifdef PREFIX
%xdefine %1 _ %+ %1
%endif
+ %xdefine %1.skip_prologue %1 %+ .skip_prologue
%ifidn __OUTPUT_FORMAT__,elf
global %1:function hidden
%else
@@ -597,9 +600,6 @@ INIT_MMX
%endmacro
;Substitutions that reduce instruction size but are functionally equivalent
-%define movdqa movaps
-%define movdqu movups
-
%macro add 2
%ifnum %2
%if %2==128
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavutil/avutil.h b/src/filters/transform/mpcvideodec/ffmpeg/libavutil/avutil.h
index b79b95df6..ea5bf58d2 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavutil/avutil.h
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavutil/avutil.h
@@ -35,7 +35,7 @@
#define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c)
#define LIBAVUTIL_VERSION_MAJOR 50
-#define LIBAVUTIL_VERSION_MINOR 2
+#define LIBAVUTIL_VERSION_MINOR 4
#define LIBAVUTIL_VERSION_MICRO 0
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavutil/common.h b/src/filters/transform/mpcvideodec/ffmpeg/libavutil/common.h
index e9b5e3890..30bb61ac8 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavutil/common.h
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavutil/common.h
@@ -142,6 +142,8 @@
/* misc math functions */
extern const uint8_t ff_log2_tab[256];
+extern const uint8_t av_reverse[256];
+
static inline av_const int av_log2(unsigned int v)
{
int n = 0;
diff --git a/src/filters/transform/mpcvideodec/ffmpeg/libavutil/mathematics.c b/src/filters/transform/mpcvideodec/ffmpeg/libavutil/mathematics.c
index 9263adaad..97aa1cb4c 100644
--- a/src/filters/transform/mpcvideodec/ffmpeg/libavutil/mathematics.c
+++ b/src/filters/transform/mpcvideodec/ffmpeg/libavutil/mathematics.c
@@ -19,7 +19,7 @@
*/
/**
- * @file mathematics.c
+ * @file libavutil/mathematics.c
* miscellaneous math routines and tables
*/
@@ -50,6 +50,25 @@ const uint8_t ff_log2_tab[256]={
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
};
+const uint8_t av_reverse[256]={
+0x00,0x80,0x40,0xC0,0x20,0xA0,0x60,0xE0,0x10,0x90,0x50,0xD0,0x30,0xB0,0x70,0xF0,
+0x08,0x88,0x48,0xC8,0x28,0xA8,0x68,0xE8,0x18,0x98,0x58,0xD8,0x38,0xB8,0x78,0xF8,
+0x04,0x84,0x44,0xC4,0x24,0xA4,0x64,0xE4,0x14,0x94,0x54,0xD4,0x34,0xB4,0x74,0xF4,
+0x0C,0x8C,0x4C,0xCC,0x2C,0xAC,0x6C,0xEC,0x1C,0x9C,0x5C,0xDC,0x3C,0xBC,0x7C,0xFC,
+0x02,0x82,0x42,0xC2,0x22,0xA2,0x62,0xE2,0x12,0x92,0x52,0xD2,0x32,0xB2,0x72,0xF2,
+0x0A,0x8A,0x4A,0xCA,0x2A,0xAA,0x6A,0xEA,0x1A,0x9A,0x5A,0xDA,0x3A,0xBA,0x7A,0xFA,
+0x06,0x86,0x46,0xC6,0x26,0xA6,0x66,0xE6,0x16,0x96,0x56,0xD6,0x36,0xB6,0x76,0xF6,
+0x0E,0x8E,0x4E,0xCE,0x2E,0xAE,0x6E,0xEE,0x1E,0x9E,0x5E,0xDE,0x3E,0xBE,0x7E,0xFE,
+0x01,0x81,0x41,0xC1,0x21,0xA1,0x61,0xE1,0x11,0x91,0x51,0xD1,0x31,0xB1,0x71,0xF1,
+0x09,0x89,0x49,0xC9,0x29,0xA9,0x69,0xE9,0x19,0x99,0x59,0xD9,0x39,0xB9,0x79,0xF9,
+0x05,0x85,0x45,0xC5,0x25,0xA5,0x65,0xE5,0x15,0x95,0x55,0xD5,0x35,0xB5,0x75,0xF5,
+0x0D,0x8D,0x4D,0xCD,0x2D,0xAD,0x6D,0xED,0x1D,0x9D,0x5D,0xDD,0x3D,0xBD,0x7D,0xFD,
+0x03,0x83,0x43,0xC3,0x23,0xA3,0x63,0xE3,0x13,0x93,0x53,0xD3,0x33,0xB3,0x73,0xF3,
+0x0B,0x8B,0x4B,0xCB,0x2B,0xAB,0x6B,0xEB,0x1B,0x9B,0x5B,0xDB,0x3B,0xBB,0x7B,0xFB,
+0x07,0x87,0x47,0xC7,0x27,0xA7,0x67,0xE7,0x17,0x97,0x57,0xD7,0x37,0xB7,0x77,0xF7,
+0x0F,0x8F,0x4F,0xCF,0x2F,0xAF,0x6F,0xEF,0x1F,0x9F,0x5F,0xDF,0x3F,0xBF,0x7F,0xFF,
+};
+
int64_t av_gcd(int64_t a, int64_t b){
if(b) return av_gcd(b, a%b);
else return a;