avcodec/vp6: use ff_vp3dsp_[hv]_loop_filter_12
authorPeter Ross <pross@xvid.org>
Sun, 13 Jan 2019 04:15:29 +0000 (15:15 +1100)
committerPeter Ross <pross@xvid.org>
Sat, 26 Jan 2019 12:49:04 +0000 (23:49 +1100)
Partially fixes: https://trac.ffmpeg.org/ticket/1282

Signed-off-by: Peter Ross <pross@xvid.org>
libavcodec/vp56.c
libavcodec/vp56.h
libavcodec/vp56dsp.c
tests/ref/fate/vp61
tests/ref/fate/vp6f

index 27b4b8b..e9e8d5d 100644 (file)
@@ -33,6 +33,8 @@
 
 void ff_vp56_init_dequant(VP56Context *s, int quantizer)
 {
+    if (s->quantizer != quantizer)
+        ff_vp3dsp_set_bounding_values(s->bounding_values_array, ff_vp56_filter_threshold[quantizer]);
     s->quantizer = quantizer;
     s->dequant_dc = ff_vp56_dc_dequant[quantizer] << 2;
     s->dequant_ac = ff_vp56_ac_dequant[quantizer] << 2;
@@ -320,9 +322,17 @@ static void vp56_add_predictors_dc(VP56Context *s, VP56Frame ref_frame)
 static void vp56_deblock_filter(VP56Context *s, uint8_t *yuv,
                                 ptrdiff_t stride, int dx, int dy)
 {
+    if (s->avctx->codec->id == AV_CODEC_ID_VP5) {
     int t = ff_vp56_filter_threshold[s->quantizer];
     if (dx)  s->vp56dsp.edge_filter_hor(yuv +         10-dx , stride, t);
     if (dy)  s->vp56dsp.edge_filter_ver(yuv + stride*(10-dy), stride, t);
+    } else {
+        int * bounding_values = s->bounding_values_array + 127;
+        if (dx)
+            ff_vp3dsp_h_loop_filter_12(yuv +         10-dx, stride, bounding_values);
+        if (dy)
+            ff_vp3dsp_v_loop_filter_12(yuv + stride*(10-dy), stride, bounding_values);
+    }
 }
 
 static void vp56_mc(VP56Context *s, int b, int plane, uint8_t *src,
index 70e1d38..9b30368 100644 (file)
@@ -170,6 +170,7 @@ struct vp56_context {
     int filter_mode;
     int max_vector_length;
     int sample_variance_threshold;
+    DECLARE_ALIGNED(8, int, bounding_values_array)[256];
 
     uint8_t coeff_ctx[4][64];              /* used in vp5 only */
     uint8_t coeff_ctx_last[4];             /* used in vp5 only */
index 9f299dc..e8d93d6 100644 (file)
@@ -72,27 +72,8 @@ av_cold void ff_vp5dsp_init(VP56DSPContext *s)
 #endif /* CONFIG_VP5_DECODER */
 
 #if CONFIG_VP6_DECODER
-static int vp6_adjust(int v, int t)
-{
-    int V = v, s = v >> 31;
-    V ^= s;
-    V -= s;
-    if (V-t-1 >= (unsigned)(t-1))
-        return v;
-    V = 2*t - V;
-    V += s;
-    V ^= s;
-    return V;
-}
-
-VP56_EDGE_FILTER(vp6, hor, 1, stride)
-VP56_EDGE_FILTER(vp6, ver, stride, 1)
-
 av_cold void ff_vp6dsp_init(VP56DSPContext *s)
 {
-    s->edge_filter_hor = vp6_edge_filter_hor;
-    s->edge_filter_ver = vp6_edge_filter_ver;
-
     s->vp6_filter_diag4 = ff_vp6_filter_diag4_c;
 
     if (ARCH_ARM)
index a5a813e..13146c4 100644 (file)
 0,          2,          2,        1,    18816, 0x1eec8b7d
 0,          3,          3,        1,    18816, 0x3817859f
 0,          4,          4,        1,    18816, 0x8f487c41
-0,          5,          5,        1,    18816, 0xe1097136
-0,          6,          6,        1,    18816, 0x494161dd
-0,          7,          7,        1,    18816, 0x40c85514
-0,          8,          8,        1,    18816, 0xd1854b86
-0,          9,          9,        1,    18816, 0xdd563ad4
-0,         10,         10,        1,    18816, 0x00122fac
-0,         11,         11,        1,    18816, 0x0a6f19f4
-0,         12,         12,        1,    18816, 0x74fe0e01
-0,         13,         13,        1,    18816, 0x576e00bf
-0,         14,         14,        1,    18816, 0xcb84f7e1
-0,         15,         15,        1,    18816, 0x7f85ebf3
-0,         16,         16,        1,    18816, 0xc6c2e22b
-0,         17,         17,        1,    18816, 0x9b22cd80
-0,         18,         18,        1,    18816, 0x512fc164
-0,         19,         19,        1,    18816, 0x5c2aaf7b
-0,         20,         20,        1,    18816, 0x98a5a700
-0,         21,         21,        1,    18816, 0xccf19d74
-0,         22,         22,        1,    18816, 0x15d08d90
-0,         23,         23,        1,    18816, 0xe04f7b1b
-0,         24,         24,        1,    18816, 0x251564f6
-0,         25,         25,        1,    18816, 0x81bf5498
-0,         26,         26,        1,    18816, 0xd94f4861
-0,         27,         27,        1,    18816, 0xcb623dd3
-0,         28,         28,        1,    18816, 0x359f29ac
-0,         29,         29,        1,    18816, 0x932a1e14
-0,         30,         30,        1,    18816, 0x99e109e1
-0,         31,         31,        1,    18816, 0xafcf0391
-0,         32,         32,        1,    18816, 0x278cfdd3
-0,         33,         33,        1,    18816, 0x64a2f73e
-0,         34,         34,        1,    18816, 0x1777e80e
-0,         35,         35,        1,    18816, 0x8effdb17
-0,         36,         36,        1,    18816, 0x564bcdc9
-0,         37,         37,        1,    18816, 0xe83ac8c5
-0,         38,         38,        1,    18816, 0xaa53c337
-0,         39,         39,        1,    18816, 0xcb7bb62d
-0,         40,         40,        1,    18816, 0x435ba9e5
-0,         41,         41,        1,    18816, 0x5d759c00
-0,         42,         42,        1,    18816, 0x3411941b
-0,         43,         43,        1,    18816, 0x643d8eb3
-0,         44,         44,        1,    18816, 0x9c9a8a3f
-0,         45,         45,        1,    18816, 0xe44a7baa
-0,         46,         46,        1,    18816, 0xec457166
-0,         47,         47,        1,    18816, 0x9d84619e
-0,         48,         48,        1,    18816, 0x799b5f1f
-0,         49,         49,        1,    18816, 0x9b2a5b68
-0,         50,         50,        1,    18816, 0xa235544f
-0,         51,         51,        1,    18816, 0x725747c2
-0,         52,         52,        1,    18816, 0xe3573fb5
-0,         53,         53,        1,    18816, 0x31cb36ae
-0,         54,         54,        1,    18816, 0x6bc4350f
-0,         55,         55,        1,    18816, 0x2da53498
-0,         56,         56,        1,    18816, 0x29f127a4
-0,         57,         57,        1,    18816, 0x2dfc1eb0
-0,         58,         58,        1,    18816, 0xc9ea175d
-0,         59,         59,        1,    18816, 0xd73613a0
-0,         60,         60,        1,    18816, 0x24870eee
-0,         61,         61,        1,    18816, 0x5bf20853
-0,         62,         62,        1,    18816, 0x7778f73c
-0,         63,         63,        1,    18816, 0x7072f297
-0,         64,         64,        1,    18816, 0xd974ee82
-0,         65,         65,        1,    18816, 0xb090eec9
-0,         66,         66,        1,    18816, 0x6844f019
-0,         67,         67,        1,    18816, 0x935be67d
-0,         68,         68,        1,    18816, 0x2da5da98
-0,         69,         69,        1,    18816, 0x1cf2d8af
-0,         70,         70,        1,    18816, 0x64e3d7eb
-0,         71,         71,        1,    18816, 0x7450d12a
-0,         72,         72,        1,    18816, 0xe8cbcb7f
-0,         73,         73,        1,    18816, 0x8ebbc0df
-0,         74,         74,        1,    18816, 0x0bc5bc33
-0,         75,         75,        1,    18816, 0x3b09b8e3
-0,         76,         76,        1,    18816, 0xc5c2b619
-0,         77,         77,        1,    18816, 0xbd42af2a
-0,         78,         78,        1,    18816, 0x58daad01
-0,         79,         79,        1,    18816, 0x7ef3a780
-0,         80,         80,        1,    18816, 0x235b9df6
-0,         81,         81,        1,    18816, 0x6e918fa7
-0,         82,         82,        1,    18816, 0x06268f84
-0,         83,         83,        1,    18816, 0x279390ed
-0,         84,         84,        1,    18816, 0xfac0870f
-0,         85,         85,        1,    18816, 0x548a7e7a
-0,         86,         86,        1,    18816, 0xe8d17493
-0,         87,         87,        1,    18816, 0x5c4471d0
-0,         88,         88,        1,    18816, 0x94c17d3a
-0,         89,         89,        1,    18816, 0xa8867fc8
-0,         90,         90,        1,    18816, 0x096374c3
-0,         91,         91,        1,    18816, 0x7f9e6c9e
-0,         92,         92,        1,    18816, 0x70ab5c16
-0,         93,         93,        1,    18816, 0xb8a45ba1
-0,         94,         94,        1,    18816, 0xd19d6014
-0,         95,         95,        1,    18816, 0x5f425aa4
-0,         96,         96,        1,    18816, 0x394c4f3d
-0,         97,         97,        1,    18816, 0x07e74fc6
-0,         98,         98,        1,    18816, 0x8dec527b
-0,         99,         99,        1,    18816, 0xcf2e4b76
-0,        100,        100,        1,    18816, 0x74d744c1
-0,        101,        101,        1,    18816, 0xf22e39dd
-0,        102,        102,        1,    18816, 0x1ba334a1
-0,        103,        103,        1,    18816, 0x326d2a2b
-0,        104,        104,        1,    18816, 0x3edc26a0
-0,        105,        105,        1,    18816, 0x81a127e2
-0,        106,        106,        1,    18816, 0xc9f92698
-0,        107,        107,        1,    18816, 0x4ca320d5
-0,        108,        108,        1,    18816, 0xdea41b02
-0,        109,        109,        1,    18816, 0xff4810e5
-0,        110,        110,        1,    18816, 0x18b2118c
-0,        111,        111,        1,    18816, 0xb6cd15ed
-0,        112,        112,        1,    18816, 0xfa9b0d36
-0,        113,        113,        1,    18816, 0x0d19000b
-0,        114,        114,        1,    18816, 0x3bbdfdc4
-0,        115,        115,        1,    18816, 0x72bdfcae
-0,        116,        116,        1,    18816, 0x854ef9f7
-0,        117,        117,        1,    18816, 0x9195f5dc
-0,        118,        118,        1,    18816, 0x2452e545
-0,        119,        119,        1,    18816, 0x6b76e03d
+0,          5,          5,        1,    18816, 0x4ce87138
+0,          6,          6,        1,    18816, 0x499361dd
+0,          7,          7,        1,    18816, 0xd26c5518
+0,          8,          8,        1,    18816, 0xfb1a4b88
+0,          9,          9,        1,    18816, 0x4ac63ac7
+0,         10,         10,        1,    18816, 0x39642fad
+0,         11,         11,        1,    18816, 0x4dd219f6
+0,         12,         12,        1,    18816, 0x6c500df7
+0,         13,         13,        1,    18816, 0x700e00b4
+0,         14,         14,        1,    18816, 0xbebaf7e0
+0,         15,         15,        1,    18816, 0x22c1ebf6
+0,         16,         16,        1,    18816, 0x723fe229
+0,         17,         17,        1,    18816, 0x9b22cd91
+0,         18,         18,        1,    18816, 0x45ddc17a
+0,         19,         19,        1,    18816, 0x9b33af88
+0,         20,         20,        1,    18816, 0xf9d1a70d
+0,         21,         21,        1,    18816, 0x9bfd9d84
+0,         22,         22,        1,    18816, 0x27048da1
+0,         23,         23,        1,    18816, 0x0e497b2d
+0,         24,         24,        1,    18816, 0x508264fd
+0,         25,         25,        1,    18816, 0xf6985495
+0,         26,         26,        1,    18816, 0xa5014869
+0,         27,         27,        1,    18816, 0x426e3de4
+0,         28,         28,        1,    18816, 0xd72129b9
+0,         29,         29,        1,    18816, 0x12e51e1c
+0,         30,         30,        1,    18816, 0x754109eb
+0,         31,         31,        1,    18816, 0x2fb5039e
+0,         32,         32,        1,    18816, 0x9407fdea
+0,         33,         33,        1,    18816, 0x59f2f752
+0,         34,         34,        1,    18816, 0xb448e831
+0,         35,         35,        1,    18816, 0xf31fdb2e
+0,         36,         36,        1,    18816, 0x6bedcdec
+0,         37,         37,        1,    18816, 0xbbfec8e6
+0,         38,         38,        1,    18816, 0x104ac345
+0,         39,         39,        1,    18816, 0xd387b629
+0,         40,         40,        1,    18816, 0x4187a9e7
+0,         41,         41,        1,    18816, 0x1c649c17
+0,         42,         42,        1,    18816, 0xcc869431
+0,         43,         43,        1,    18816, 0x8bc78ed1
+0,         44,         44,        1,    18816, 0x34de8a5f
+0,         45,         45,        1,    18816, 0x42727bd0
+0,         46,         46,        1,    18816, 0x6e9c7192
+0,         47,         47,        1,    18816, 0xd93761c1
+0,         48,         48,        1,    18816, 0x69455f50
+0,         49,         49,        1,    18816, 0xa35d5b8b
+0,         50,         50,        1,    18816, 0xe6635469
+0,         51,         51,        1,    18816, 0x285d47f9
+0,         52,         52,        1,    18816, 0xdb0a3fdf
+0,         53,         53,        1,    18816, 0x608336d0
+0,         54,         54,        1,    18816, 0x39e9353f
+0,         55,         55,        1,    18816, 0xad2034bd
+0,         56,         56,        1,    18816, 0xa0f527e7
+0,         57,         57,        1,    18816, 0x5ed71ef1
+0,         58,         58,        1,    18816, 0xd2df1798
+0,         59,         59,        1,    18816, 0x932513d3
+0,         60,         60,        1,    18816, 0xab600f1b
+0,         61,         61,        1,    18816, 0x665d087e
+0,         62,         62,        1,    18816, 0x8d71f765
+0,         63,         63,        1,    18816, 0xfc80f2ae
+0,         64,         64,        1,    18816, 0x885bee81
+0,         65,         65,        1,    18816, 0x6c4feec9
+0,         66,         66,        1,    18816, 0x5010f017
+0,         67,         67,        1,    18816, 0x63d5e683
+0,         68,         68,        1,    18816, 0x216ddab5
+0,         69,         69,        1,    18816, 0xb758d8c2
+0,         70,         70,        1,    18816, 0xeae4d7e5
+0,         71,         71,        1,    18816, 0x2553d137
+0,         72,         72,        1,    18816, 0xced6cb97
+0,         73,         73,        1,    18816, 0xd332c103
+0,         74,         74,        1,    18816, 0xe84bbc67
+0,         75,         75,        1,    18816, 0x21f7b90d
+0,         76,         76,        1,    18816, 0xbd88b648
+0,         77,         77,        1,    18816, 0xe7b8af59
+0,         78,         78,        1,    18816, 0x30f5ad3d
+0,         79,         79,        1,    18816, 0x79bfa7bb
+0,         80,         80,        1,    18816, 0xd5919e34
+0,         81,         81,        1,    18816, 0x43758fda
+0,         82,         82,        1,    18816, 0x93ff8fcc
+0,         83,         83,        1,    18816, 0xa444913f
+0,         84,         84,        1,    18816, 0xc41d878b
+0,         85,         85,        1,    18816, 0x526d7f09
+0,         86,         86,        1,    18816, 0x40307528
+0,         87,         87,        1,    18816, 0xf63d725c
+0,         88,         88,        1,    18816, 0x45587ddb
+0,         89,         89,        1,    18816, 0x37018069
+0,         90,         90,        1,    18816, 0x69567572
+0,         91,         91,        1,    18816, 0xa8086d54
+0,         92,         92,        1,    18816, 0x2ab65ccc
+0,         93,         93,        1,    18816, 0xa5475c5d
+0,         94,         94,        1,    18816, 0x87dc60e2
+0,         95,         95,        1,    18816, 0x54295b5d
+0,         96,         96,        1,    18816, 0xce424fe9
+0,         97,         97,        1,    18816, 0x99e0506d
+0,         98,         98,        1,    18816, 0x6ac55324
+0,         99,         99,        1,    18816, 0xa60f4c1a
+0,        100,        100,        1,    18816, 0x7eba456e
+0,        101,        101,        1,    18816, 0xab703a88
+0,        102,        102,        1,    18816, 0xb8263539
+0,        103,        103,        1,    18816, 0x829e2abb
+0,        104,        104,        1,    18816, 0x2e9f2736
+0,        105,        105,        1,    18816, 0x7a3d2885
+0,        106,        106,        1,    18816, 0x8023274f
+0,        107,        107,        1,    18816, 0x39bf2196
+0,        108,        108,        1,    18816, 0x21cf1bcb
+0,        109,        109,        1,    18816, 0x016911b9
+0,        110,        110,        1,    18816, 0x2a791237
+0,        111,        111,        1,    18816, 0x093f16a7
+0,        112,        112,        1,    18816, 0x07a90df3
+0,        113,        113,        1,    18816, 0x8de800ca
+0,        114,        114,        1,    18816, 0xe379fe68
+0,        115,        115,        1,    18816, 0x267afd69
+0,        116,        116,        1,    18816, 0x5b29fac1
+0,        117,        117,        1,    18816, 0x3606f6b6
+0,        118,        118,        1,    18816, 0xcbdce61e
+0,        119,        119,        1,    18816, 0x28ffe113
index 2da2edd..c76e077 100644 (file)
 #dimensions 0: 112x80
 #sar 0: 0/1
 0,          0,          0,        1,    13440, 0x7cb0a22f
-0,          1,          1,        1,    13440, 0xcb06a6b6
-0,          2,          2,        1,    13440, 0x812ea5c9
-0,          3,          3,        1,    13440, 0xc378b303
-0,          4,          4,        1,    13440, 0x0528ba5f
-0,          5,          5,        1,    13440, 0x5d97e8fe
-0,          6,          6,        1,    13440, 0x05d914df
-0,          7,          7,        1,    13440, 0xfdf804c6
-0,          8,          8,        1,    13440, 0x9db5fcb8
-0,          9,          9,        1,    13440, 0xd33db2ab
-0,         10,         10,        1,    13440, 0x6c147a86
-0,         11,         11,        1,    13440, 0x300f577d
-0,         12,         12,        1,    13440, 0x4f4443c8
-0,         13,         13,        1,    13440, 0x6ed84c79
-0,         14,         14,        1,    13440, 0xa0dc5e2a
-0,         15,         15,        1,    13440, 0x4ab092d4
-0,         16,         16,        1,    13440, 0x39c9cb60
-0,         17,         17,        1,    13440, 0x46c2da59
-0,         18,         18,        1,    13440, 0x0eed0e66
-0,         19,         19,        1,    13440, 0xa4a43403
-0,         20,         20,        1,    13440, 0x323939cd
-0,         21,         21,        1,    13440, 0x6b393cc0
-0,         22,         22,        1,    13440, 0x59da35b8
-0,         23,         23,        1,    13440, 0x4511224f
-0,         24,         24,        1,    13440, 0xe96cbbbf
-0,         25,         25,        1,    13440, 0x15dc9608
-0,         26,         26,        1,    13440, 0xde056e0a
-0,         27,         27,        1,    13440, 0xfde76d13
-0,         28,         28,        1,    13440, 0xd9bf6b4e
-0,         29,         29,        1,    13440, 0x0a3c85bd
-0,         30,         30,        1,    13440, 0x6edfc17f
-0,         31,         31,        1,    13440, 0xf4561c94
-0,         32,         32,        1,    13440, 0x2fdf776f
-0,         33,         33,        1,    13440, 0xb7c7cd69
-0,         34,         34,        1,    13440, 0x5247ef0d
-0,         35,         35,        1,    13440, 0xeec31762
-0,         36,         36,        1,    13440, 0x486097dd
-0,         37,         37,        1,    13440, 0x9bcf2934
-0,         38,         38,        1,    13440, 0x4a5dea6a
-0,         39,         39,        1,    13440, 0x35997d87
-0,         40,         40,        1,    13440, 0xa4bf415b
-0,         41,         41,        1,    13440, 0x677229fa
-0,         42,         42,        1,    13440, 0xbe5229bb
-0,         43,         43,        1,    13440, 0x8d012e0a
-0,         44,         44,        1,    13440, 0x74ec49b5
-0,         45,         45,        1,    13440, 0xa6f595d0
-0,         46,         46,        1,    13440, 0x23b59ba7
-0,         47,         47,        1,    13440, 0xc471baab
-0,         48,         48,        1,    13440, 0x8d6ebaee
-0,         49,         49,        1,    13440, 0x6338c1c1
-0,         50,         50,        1,    13440, 0x0d93a811
-0,         51,         51,        1,    13440, 0x260e901e
-0,         52,         52,        1,    13440, 0xad05919b
-0,         53,         53,        1,    13440, 0x04d1921d
-0,         54,         54,        1,    13440, 0xac00a249
-0,         55,         55,        1,    13440, 0xcb667031
-0,         56,         56,        1,    13440, 0x3f4236a1
-0,         57,         57,        1,    13440, 0xf38e029b
-0,         58,         58,        1,    13440, 0x3d5ae06e
-0,         59,         59,        1,    13440, 0x9b30ae5e
+0,          1,          1,        1,    13440, 0xe38fa6b7
+0,          2,          2,        1,    13440, 0xe003a5c6
+0,          3,          3,        1,    13440, 0xe502b2f6
+0,          4,          4,        1,    13440, 0xb731ba56
+0,          5,          5,        1,    13440, 0x8168e8f5
+0,          6,          6,        1,    13440, 0x776d14fb
+0,          7,          7,        1,    13440, 0xb5d0049c
+0,          8,          8,        1,    13440, 0x3434fc98
+0,          9,          9,        1,    13440, 0xd219b282
+0,         10,         10,        1,    13440, 0xd2027a7c
+0,         11,         11,        1,    13440, 0xd50b5799
+0,         12,         12,        1,    13440, 0x091543c4
+0,         13,         13,        1,    13440, 0x26374c6b
+0,         14,         14,        1,    13440, 0x5b4f5e1e
+0,         15,         15,        1,    13440, 0x55ba92da
+0,         16,         16,        1,    13440, 0x1ff5cb4d
+0,         17,         17,        1,    13440, 0x0ccbda45
+0,         18,         18,        1,    13440, 0x5ff80e6a
+0,         19,         19,        1,    13440, 0x09df3417
+0,         20,         20,        1,    13440, 0xfbed3a0f
+0,         21,         21,        1,    13440, 0xd65c3c7f
+0,         22,         22,        1,    13440, 0xc8173576
+0,         23,         23,        1,    13440, 0xd5e521f8
+0,         24,         24,        1,    13440, 0xe440bb55
+0,         25,         25,        1,    13440, 0xcbeb95c8
+0,         26,         26,        1,    13440, 0x8cd66dba
+0,         27,         27,        1,    13440, 0x5f356cbc
+0,         28,         28,        1,    13440, 0x54e16ad7
+0,         29,         29,        1,    13440, 0x17ed8566
+0,         30,         30,        1,    13440, 0x1aa1c121
+0,         31,         31,        1,    13440, 0x64e31cac
+0,         32,         32,        1,    13440, 0x869677a4
+0,         33,         33,        1,    13440, 0x7df6cdba
+0,         34,         34,        1,    13440, 0x23f3ef45
+0,         35,         35,        1,    13440, 0x176217b4
+0,         36,         36,        1,    13440, 0x493897cb
+0,         37,         37,        1,    13440, 0x0591296d
+0,         38,         38,        1,    13440, 0xb58aeae8
+0,         39,         39,        1,    13440, 0x38fd7e58
+0,         40,         40,        1,    13440, 0x200c424c
+0,         41,         41,        1,    13440, 0x2ee42b14
+0,         42,         42,        1,    13440, 0xdcba2ae5
+0,         43,         43,        1,    13440, 0xbb102f41
+0,         44,         44,        1,    13440, 0x034d4b06
+0,         45,         45,        1,    13440, 0x62d99722
+0,         46,         46,        1,    13440, 0x174d9ce4
+0,         47,         47,        1,    13440, 0xf676bbc8
+0,         48,         48,        1,    13440, 0xe2e5bbef
+0,         49,         49,        1,    13440, 0x6ef0c2af
+0,         50,         50,        1,    13440, 0x8d08a917
+0,         51,         51,        1,    13440, 0x030d90e8
+0,         52,         52,        1,    13440, 0x4d6f9232
+0,         53,         53,        1,    13440, 0xb7a792f6
+0,         54,         54,        1,    13440, 0xa0daa330
+0,         55,         55,        1,    13440, 0xe9f870a3
+0,         56,         56,        1,    13440, 0xed4f36cb
+0,         57,         57,        1,    13440, 0x8a6f02c3
+0,         58,         58,        1,    13440, 0x663ee03d
+0,         59,         59,        1,    13440, 0x2571adef
 0,         60,         60,        1,    13440, 0x7533ad99
-0,         61,         61,        1,    13440, 0x29c7c2d7
-0,         62,         62,        1,    13440, 0x1aaae414
-0,         63,         63,        1,    13440, 0xd9b1fc03
-0,         64,         64,        1,    13440, 0xcd2b0549
-0,         65,         65,        1,    13440, 0x6852223c
-0,         66,         66,        1,    13440, 0xaa765ce6
-0,         67,         67,        1,    13440, 0x022169d5
-0,         68,         68,        1,    13440, 0x0e478e90
-0,         69,         69,        1,    13440, 0xc2a08d9b
-0,         70,         70,        1,    13440, 0xe16a75f1
-0,         71,         71,        1,    13440, 0x3b218252
-0,         72,         72,        1,    13440, 0x5e27b3c8
-0,         73,         73,        1,    13440, 0x27a0eaf9
-0,         74,         74,        1,    13440, 0xe002ff74
-0,         75,         75,        1,    13440, 0x8585f024
-0,         76,         76,        1,    13440, 0x5a74cfe6
-0,         77,         77,        1,    13440, 0xb10ec139
-0,         78,         78,        1,    13440, 0xe9e1de94
-0,         79,         79,        1,    13440, 0x5a29fa1c
-0,         80,         80,        1,    13440, 0x75dce5f8
-0,         81,         81,        1,    13440, 0xbceaee2c
-0,         82,         82,        1,    13440, 0xf9dc00f9
-0,         83,         83,        1,    13440, 0x4b6549f4
-0,         84,         84,        1,    13440, 0x0f2097dc
-0,         85,         85,        1,    13440, 0x844d97df
-0,         86,         86,        1,    13440, 0xee47764b
-0,         87,         87,        1,    13440, 0x647938d6
-0,         88,         88,        1,    13440, 0xf4de156a
-0,         89,         89,        1,    13440, 0x53cd02e8
-0,         90,         90,        1,    13440, 0x6f39bedb
-0,         91,         91,        1,    13440, 0x3192aa64
-0,         92,         92,        1,    13440, 0xb38591cd
-0,         93,         93,        1,    13440, 0xd4407a1b
-0,         94,         94,        1,    13440, 0x3f6f69f4
-0,         95,         95,        1,    13440, 0x62cb5c21
-0,         96,         96,        1,    13440, 0x592472ea
-0,         97,         97,        1,    13440, 0xf7748d1d
-0,         98,         98,        1,    13440, 0x88ada886
-0,         99,         99,        1,    13440, 0xdc92ebc6
-0,        100,        100,        1,    13440, 0x97700e4f
-0,        101,        101,        1,    13440, 0x77f21f6e
-0,        102,        102,        1,    13440, 0x0c9f4a72
-0,        103,        103,        1,    13440, 0xd3b44b28
-0,        104,        104,        1,    13440, 0x3a023773
-0,        105,        105,        1,    13440, 0xf3c72faf
-0,        106,        106,        1,    13440, 0x2f144498
-0,        107,        107,        1,    13440, 0x96ac81db
-0,        108,        108,        1,    13440, 0xef07bb83
-0,        109,        109,        1,    13440, 0xf220e3e7
-0,        110,        110,        1,    13440, 0x2e7201dc
-0,        111,        111,        1,    13440, 0x56da16de
-0,        112,        112,        1,    13440, 0xc9ec24ed
-0,        113,        113,        1,    13440, 0x951d31d7
-0,        114,        114,        1,    13440, 0xb4e363c3
-0,        115,        115,        1,    13440, 0x4aae996d
-0,        116,        116,        1,    13440, 0xbbe0b6f6
+0,         61,         61,        1,    13440, 0xe3aec2d4
+0,         62,         62,        1,    13440, 0x3368e416
+0,         63,         63,        1,    13440, 0xe2ecfbf5
+0,         64,         64,        1,    13440, 0x45010538
+0,         65,         65,        1,    13440, 0xc075222c
+0,         66,         66,        1,    13440, 0x5bf45cc4
+0,         67,         67,        1,    13440, 0xa06869b5
+0,         68,         68,        1,    13440, 0x1ff98e6f
+0,         69,         69,        1,    13440, 0x11c88d84
+0,         70,         70,        1,    13440, 0x95c275e8
+0,         71,         71,        1,    13440, 0x81a68285
+0,         72,         72,        1,    13440, 0xb903b402
+0,         73,         73,        1,    13440, 0xa9d2eb1c
+0,         74,         74,        1,    13440, 0x2c48ff65
+0,         75,         75,        1,    13440, 0xc024eff6
+0,         76,         76,        1,    13440, 0x41bacff0
+0,         77,         77,        1,    13440, 0x2cf9c144
+0,         78,         78,        1,    13440, 0x9e67de72
+0,         79,         79,        1,    13440, 0x3e74fa36
+0,         80,         80,        1,    13440, 0x9b9be609
+0,         81,         81,        1,    13440, 0x594eee16
+0,         82,         82,        1,    13440, 0x8a7c00d7
+0,         83,         83,        1,    13440, 0x56104a2a
+0,         84,         84,        1,    13440, 0xd94d97cc
+0,         85,         85,        1,    13440, 0x95d09887
+0,         86,         86,        1,    13440, 0xe02a769b
+0,         87,         87,        1,    13440, 0x847839d0
+0,         88,         88,        1,    13440, 0x47441606
+0,         89,         89,        1,    13440, 0x19b10373
+0,         90,         90,        1,    13440, 0x3ddfbf15
+0,         91,         91,        1,    13440, 0xf4fdab37
+0,         92,         92,        1,    13440, 0xfe9a92ad
+0,         93,         93,        1,    13440, 0xaa387bfb
+0,         94,         94,        1,    13440, 0xe57a6c85
+0,         95,         95,        1,    13440, 0x68ef5f30
+0,         96,         96,        1,    13440, 0x481d76f7
+0,         97,         97,        1,    13440, 0x5b0e9192
+0,         98,         98,        1,    13440, 0xebc1ac80
+0,         99,         99,        1,    13440, 0x13bfef3e
+0,        100,        100,        1,    13440, 0xb7b01291
+0,        101,        101,        1,    13440, 0xc8c72419
+0,        102,        102,        1,    13440, 0x9dca4f32
+0,        103,        103,        1,    13440, 0x67635158
+0,        104,        104,        1,    13440, 0x6c773e0d
+0,        105,        105,        1,    13440, 0x6c2f3777
+0,        106,        106,        1,    13440, 0x19574d97
+0,        107,        107,        1,    13440, 0xd9f48cc1
+0,        108,        108,        1,    13440, 0xd19dc87c
+0,        109,        109,        1,    13440, 0xa23cf2ab
+0,        110,        110,        1,    13440, 0x3f7611b6
+0,        111,        111,        1,    13440, 0x183d2723
+0,        112,        112,        1,    13440, 0xf79b3534
+0,        113,        113,        1,    13440, 0xcbba4280
+0,        114,        114,        1,    13440, 0x03777586
+0,        115,        115,        1,    13440, 0xea1aac72
+0,        116,        116,        1,    13440, 0xad27cae0
 0,        117,        117,        1,    13440, 0xa237e05d
 0,        118,        118,        1,    13440, 0xb683f189
-0,        119,        119,        1,    13440, 0xb8e7d3d3
-0,        120,        120,        1,    13440, 0x549daea3
-0,        121,        121,        1,    13440, 0x56158687
-0,        122,        122,        1,    13440, 0x25c6833f
-0,        123,        123,        1,    13440, 0x79618577
-0,        124,        124,        1,    13440, 0x4e77916c
-0,        125,        125,        1,    13440, 0x79bb946a
-0,        126,        126,        1,    13440, 0x28a69cc7
-0,        127,        127,        1,    13440, 0xcc03a6bb
-0,        128,        128,        1,    13440, 0x12e7ac2f
-0,        129,        129,        1,    13440, 0x66b099bc
-0,        130,        130,        1,    13440, 0xb218574c
-0,        131,        131,        1,    13440, 0xc55a172a
-0,        132,        132,        1,    13440, 0xefa9d1ca
-0,        133,        133,        1,    13440, 0xaedbb577
-0,        134,        134,        1,    13440, 0x279ca23c
-0,        135,        135,        1,    13440, 0x12a88c7b
-0,        136,        136,        1,    13440, 0xc3c46ae3
-0,        137,        137,        1,    13440, 0x41954bf2
-0,        138,        138,        1,    13440, 0xe19e1137
-0,        139,        139,        1,    13440, 0xd5c5fa3e
-0,        140,        140,        1,    13440, 0xe391f3a4
-0,        141,        141,        1,    13440, 0x6463f7e2
-0,        142,        142,        1,    13440, 0x4ad80409
-0,        143,        143,        1,    13440, 0x2de72edb
-0,        144,        144,        1,    13440, 0x120030f4
-0,        145,        145,        1,    13440, 0xc8f0f93a
-0,        146,        146,        1,    13440, 0x32e8f304
-0,        147,        147,        1,    13440, 0x86d62275
-0,        148,        148,        1,    13440, 0x98df3eec
-0,        149,        149,        1,    13440, 0x664d4d42
-0,        150,        150,        1,    13440, 0x3888f447
-0,        151,        151,        1,    13440, 0x959aa236
-0,        152,        152,        1,    13440, 0xebee9e20
-0,        153,        153,        1,    13440, 0xd1a197fb
-0,        154,        154,        1,    13440, 0x0e47b9f0
-0,        155,        155,        1,    13440, 0xe359e545
-0,        156,        156,        1,    13440, 0x02cae3c1
-0,        157,        157,        1,    13440, 0x7218c409
-0,        158,        158,        1,    13440, 0x0805b6b7
-0,        159,        159,        1,    13440, 0x13ae816f
-0,        160,        160,        1,    13440, 0x1cda5d9b
-0,        161,        161,        1,    13440, 0x125b509f
-0,        162,        162,        1,    13440, 0xb63500cf
-0,        163,        163,        1,    13440, 0x1229bc6a
-0,        164,        164,        1,    13440, 0x04e0ab7d
-0,        165,        165,        1,    13440, 0xee90aa6b
-0,        166,        166,        1,    13440, 0xe712cee3
-0,        167,        167,        1,    13440, 0xbdb1e8a4
-0,        168,        168,        1,    13440, 0xb651fc4b
-0,        169,        169,        1,    13440, 0xd1ba297a
-0,        170,        170,        1,    13440, 0xa64065df
-0,        171,        171,        1,    13440, 0x6865a618
-0,        172,        172,        1,    13440, 0x1922f326
-0,        173,        173,        1,    13440, 0xd2111537
+0,        119,        119,        1,    13440, 0x2058d3cd
+0,        120,        120,        1,    13440, 0x715dae96
+0,        121,        121,        1,    13440, 0xd8f88677
+0,        122,        122,        1,    13440, 0x45818329
+0,        123,        123,        1,    13440, 0x69ad852f
+0,        124,        124,        1,    13440, 0x56369125
+0,        125,        125,        1,    13440, 0xdfde941b
+0,        126,        126,        1,    13440, 0xf1209c90
+0,        127,        127,        1,    13440, 0x82e6a6aa
+0,        128,        128,        1,    13440, 0xb0ceabd1
+0,        129,        129,        1,    13440, 0x05f899a6
+0,        130,        130,        1,    13440, 0x9ef95758
+0,        131,        131,        1,    13440, 0x63e716d9
+0,        132,        132,        1,    13440, 0x7cb0d149
+0,        133,        133,        1,    13440, 0x3585b4f1
+0,        134,        134,        1,    13440, 0x623ea1fc
+0,        135,        135,        1,    13440, 0x762b8c32
+0,        136,        136,        1,    13440, 0xc1b96add
+0,        137,        137,        1,    13440, 0x95e24baf
+0,        138,        138,        1,    13440, 0x74631106
+0,        139,        139,        1,    13440, 0x78b5fa14
+0,        140,        140,        1,    13440, 0x5f33f34a
+0,        141,        141,        1,    13440, 0x7e6ff799
+0,        142,        142,        1,    13440, 0x9f8303b0
+0,        143,        143,        1,    13440, 0x7c3d2eb9
+0,        144,        144,        1,    13440, 0x3c0530d2
+0,        145,        145,        1,    13440, 0xe7ecf960
+0,        146,        146,        1,    13440, 0x82c3f316
+0,        147,        147,        1,    13440, 0x008922b4
+0,        148,        148,        1,    13440, 0x0d263f5f
+0,        149,        149,        1,    13440, 0x57dc4dd0
+0,        150,        150,        1,    13440, 0xbcbbf4f1
+0,        151,        151,        1,    13440, 0x62e9a335
+0,        152,        152,        1,    13440, 0x65699f37
+0,        153,        153,        1,    13440, 0xe4b69939
+0,        154,        154,        1,    13440, 0xbd4ebb6c
+0,        155,        155,        1,    13440, 0xb7d6e71e
+0,        156,        156,        1,    13440, 0xfc0ae5b6
+0,        157,        157,        1,    13440, 0xe55ec65c
+0,        158,        158,        1,    13440, 0x2095b8fc
+0,        159,        159,        1,    13440, 0x479c8408
+0,        160,        160,        1,    13440, 0x2981604c
+0,        161,        161,        1,    13440, 0xa4e55397
+0,        162,        162,        1,    13440, 0x0bc703f8
+0,        163,        163,        1,    13440, 0xd43bbf89
+0,        164,        164,        1,    13440, 0xdcd6aeca
+0,        165,        165,        1,    13440, 0x07b1ad84
+0,        166,        166,        1,    13440, 0xfb17d20b
+0,        167,        167,        1,    13440, 0x0c4aebd9
+0,        168,        168,        1,    13440, 0x826effc4
+0,        169,        169,        1,    13440, 0x4ccf2ca4
+0,        170,        170,        1,    13440, 0xe4f968f3
+0,        171,        171,        1,    13440, 0xe1b4a93a
+0,        172,        172,        1,    13440, 0x8597f65e
+0,        173,        173,        1,    13440, 0xb4f7184f