forked from ccsens_hardware/ttss_sop
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1005 lines
15 KiB
1005 lines
15 KiB
//////////////////////////////////////////////////////////////////////////
|
|
/// COPYRIGHT NOTICE
|
|
/// Copyright (c) 2015, 传控科技
|
|
/// All rights reserved.
|
|
///
|
|
/// @file app_ALGOration.c
|
|
/// @brief app_ALGOration app
|
|
///
|
|
///(本文件实现的功能的详述)
|
|
///
|
|
/// @version 1.1 CCsens technology
|
|
/// @author CC
|
|
/// @date 20190105
|
|
///
|
|
///
|
|
/// 修订说明:最初版本
|
|
/// Modified by:
|
|
/// Modified date:
|
|
/// Version:
|
|
/// Descriptions:
|
|
/// 算法等
|
|
//////////////////////////////////////////////////////////////////////////
|
|
///#include "app_calibration.h"
|
|
|
|
#include "app_algorithm.h"
|
|
#include "app_flow.h"
|
|
#include "app_paraid.h"
|
|
|
|
////#include "app_rfSend.h"
|
|
|
|
#include "../clib/Clib.h"
|
|
#include "../clib/bit.h"
|
|
///
|
|
|
|
#ifdef D_buf_test
|
|
U8 test_buf[];
|
|
U8 test_buf2[660];
|
|
#endif
|
|
|
|
#include "../bsp/bsp_power.h"
|
|
|
|
#if 0
|
|
s1 波形一定要去掉尖峰
|
|
s2 波形通过滤波平滑或基本平滑,并保持单调
|
|
s3 单点管道式算法
|
|
s4 根据特性 必须有过零点或过相对零点
|
|
low=0 low=0
|
|
```````\ /````````````\ /``````
|
|
\ / \ /
|
|
\ low++ / \ low++ /
|
|
0 zero....\.low_zero=low....../..................\.................../........
|
|
\ / \ /
|
|
\ ___/ \ ___/
|
|
\___ / \___ /
|
|
\ /high++ \ /
|
|
\___/ \___/
|
|
high=0
|
|
low
|
|
|
|
/`````````\
|
|
/ \
|
|
__________________/ \______________
|
|
|
|
#endif
|
|
|
|
|
|
//>>>>>>>>>>>>>>>>>>>>>0开机task
|
|
///L2_task_C2_init();
|
|
#if 0
|
|
1 尖峰 中值
|
|
2 求零点
|
|
3 归零及削峰 求值
|
|
4 曲线求数量
|
|
|
|
1 尖峰 中值
|
|
2 上下削峰 求值
|
|
4 曲线求数量
|
|
|
|
求值 纸张
|
|
0 ,0
|
|
sum, 100
|
|
|
|
x*k = Sum
|
|
100k = Sum100
|
|
k=Sum100/100;
|
|
x=Sum/k
|
|
Sum
|
|
x=-------
|
|
k
|
|
|
|
Sum
|
|
x=------------
|
|
Sum100/100
|
|
|
|
Sum*100
|
|
x = ----------
|
|
Sum100
|
|
|
|
U8 L2_task_ALGO_at(void)
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
vU16 L2_line_algo_media(U8 *buf,vU16 len);
|
|
TS_task_ALGO_ ts_task_ALGO;
|
|
void L2_task_ALGO_init(void)
|
|
{
|
|
/// ts_task_ALGO.status = 0;
|
|
L1_task_init(&ts_task_ALGO.task);
|
|
/// ts_task_ALGO.p_buf2 = s_task_GC032A.buf;
|
|
/// ts_task_ALGO.t = 0;
|
|
L3_task_s_go(ts_task_ALGO,D_task_init);
|
|
}
|
|
|
|
//>>>>>>>>>>>>>>>>>>>>>0开机task
|
|
///L2_task_ALGO_init();
|
|
|
|
|
|
///L2_task_ALGO_handle(&ts_task_ALGO);
|
|
|
|
/// 捕获到需要的行采集完成的标志后, 先中值滤波消除尖峰,然后进行整理(平移 阀值),求和
|
|
void L2_task_ALGO_handle(TS_task_ALGO_ *s)
|
|
{
|
|
TTSS_Task_init():
|
|
s->ok = D_clear;
|
|
s->cali_mode = D_clear;
|
|
L2_task_go(D_task_ALGO_wait);
|
|
TTSS_Task_step(D_task_ALGO_wait):
|
|
|
|
TTSS_Task_step(D_task_ALGO_median):
|
|
/// s->usSum = L2_line_algo_media(s_task_GC032A.buf,D_pclk_per_hs_570);
|
|
L2_task_go(D_task_ALGO_updown);
|
|
TTSS_Task_step(D_task_ALGO_updown):
|
|
s->usPaperNum = 0xAAAA;
|
|
if(s->usSum >= D_paper_EE)///摄像头外放或者强光
|
|
{
|
|
|
|
}
|
|
else if(s->usSum > D_paper_MAX)////纸张处于满量程
|
|
{
|
|
s->usPaperSection = D_cam_top;
|
|
}
|
|
else if(s->usSum > D_paper_150at_bottom)///bottom --top
|
|
{///
|
|
s->usPaperSection = D_cam_150at;
|
|
}
|
|
else if(s->usSum > D_paper_00)//// 0---max 纸张发生变化 并且 小于满量程
|
|
{
|
|
s->usPaperSection = D_cam_00;
|
|
//s->usSum
|
|
|
|
}
|
|
else
|
|
{
|
|
s->usPaperSection = D_cam_erro;
|
|
}
|
|
/***
|
|
if(s_task_GC032A.buf[4] < D_F_low)
|
|
{
|
|
TS_paer_value.r123.work_mode = D_ready;
|
|
}else
|
|
{
|
|
TS_paer_value.r123.work_mode = D_clear;
|
|
}
|
|
************/
|
|
|
|
/// 0----0
|
|
/// x -----usSum
|
|
///150----usPaper150
|
|
/// 3000
|
|
|
|
s->usPaperNum = s->usSum*15;
|
|
s->ustMP = s->usPaper150 / 10;
|
|
s->usPaperNum /= s->ustMP;
|
|
///
|
|
|
|
#define D_debug_add_send
|
|
#ifdef D_debug_add_send
|
|
PrintAlgo_D_send_us(s->usSum);PrintAlgo_L0_uart0_uc(0x09);
|
|
PrintAlgo_D_send_us(s->usPaper150);PrintAlgo_L0_uart0_uc(0x09);
|
|
PrintAlgo_D_send_us(s->usPaperNum);
|
|
//PrintCam_L0_uart0_uc(0x0d);/PrintCam_L0_uart0_uc(0x0a);
|
|
#endif
|
|
L2_task_go(D_task_ALGO_wait);
|
|
/// L2_task_go(D_task_ALGO_cali_mode);
|
|
|
|
|
|
/**************
|
|
TTSS_Task_step(D_task_ALGO_cali_mode)
|
|
if(D_ON == s->cali_mode)
|
|
{///PrintFlow_L0_uart0_uc(0x30+s->cali_delay);
|
|
L2_task_go(D_task_ALGO_cali_save);
|
|
}else
|
|
{
|
|
/// ts_task_FLOW.t_stamp_set = 5;// 20s * =
|
|
/// LD_gsensor_power(D_PowerMode_suspend);
|
|
if(D_cam_EE == s->usPaperSection)
|
|
{PrintAlgo_L0_uart0_uc('a');
|
|
LD_gsensor_power(D_PowerMode_low);
|
|
L3_task_s_go(ts_task_FLOW,0);
|
|
|
|
L2_task_go(D_task_ALGO_cali_wait);
|
|
}else
|
|
{
|
|
L2_task_go(D_task_ALGO_cali_end);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TTSS_Task_step(D_task_ALGO_cali_save)
|
|
if(s->cali_delay ++ > 8)
|
|
{///PrintFlow_L0_uart0_uc('c');
|
|
L2_task_go(D_task_ALGO_cali_end);
|
|
}else
|
|
{///延时未溢出
|
|
L2_task_go(D_task_ALGO_sa);
|
|
if(D_cam_150at == s->usPaperSection)
|
|
{
|
|
//PrintFlow_L0_uart0_uc('a');
|
|
if(s->cali_timer ++ > 2)
|
|
{
|
|
s->usPaper150 = s->usSum; ///
|
|
L1_Iap_Write_us(D_paraAdd0_paper150,s->usPaper150);
|
|
L1_Iap_Write_us(D_paraAdd1_paper150,s->usPaper150);
|
|
PrintAlgo_L0_uart0_uc('f');///PrintFlow_str("flash", 5);
|
|
TS_paer_value.r123.cali_timer ++;
|
|
L2_task_go(D_task_ALGO_cali_end);
|
|
}
|
|
}
|
|
}
|
|
TTSS_Task_step(D_task_ALGO_cali_wait)
|
|
/// 只有没有中断的连续多少次的敲击才可以地进入cali 模式
|
|
Lc_delay_ms(1);
|
|
L0_mcu_WKTC(D_WKTC_500MS); //掉电计时器
|
|
L0_mcu_mode_powerdown();//进入休眠状态
|
|
if(BITN_G(DR_who_wakeup, DRB_who_wakeup_action))
|
|
{
|
|
BITN_0(DR_who_wakeup, DRB_who_wakeup_action);
|
|
PrintAlgo_L0_uart0_uc(s->cali_hit+0x30);
|
|
// PrintCam_L0_uart0_uc('#');
|
|
if(s->cali_hit++ > 22)
|
|
{s->cali_hit = 0;
|
|
s->hit_ok = D_ready;
|
|
PrintAlgo_L0_uart0_uc('L');
|
|
s->cali_mode = D_ON;s->cali_timer = s->cali_mode;
|
|
TS_paer_value.r123.cali_mode = 1;
|
|
L2_task_go(D_task_ALGO_sa);
|
|
}
|
|
}else
|
|
{
|
|
s->cali_hit = 0;
|
|
if(s->cali_over ++ > 25)///500ms*25 = 50s
|
|
{
|
|
s->cali_over = 0;
|
|
L2_task_go(D_task_ALGO_cali_end);
|
|
}
|
|
}
|
|
|
|
TTSS_Task_step(D_task_ALGO_cali_end)
|
|
// PrintFlow_str("cali end", 9);//
|
|
// PrintAlgo_L0_uart0_uc('E');
|
|
s->cali_mode = D_clear;
|
|
TS_paer_value.r123.cali_mode = s->cali_mode;
|
|
s->cali_delay = 0;
|
|
/// L3_task_s_go(ts_task_FLOW,D_task_init);
|
|
//
|
|
L2_task_go(D_task_ALGO_wait);
|
|
TTSS_Task_step(D_task_ALGO_sa)
|
|
L3_task_s_go(ts_task_FLOW,D_task_FLOW_wakeup);
|
|
L2_task_go(D_task_ALGO_wait);
|
|
|
|
|
|
*****************/
|
|
TTSS_Task_end();
|
|
}
|
|
|
|
/****************************
|
|
|
|
|
|
TTSS_Task_step(D_task_ALGO_updown)
|
|
L0_uart0_sendArray("paper =", 7);
|
|
D_send_ushex(s->usSum);L0_uart0_uc('-');
|
|
#define D_paper_max 0x0b10
|
|
///0x0b1d 2845
|
|
|
|
|
|
L2_task_go(D_task_ALGO_cal)
|
|
//L1_task_Tdelay(D_Tdelay_10ms);
|
|
TTSS_Task_step(D_task_ALGO_cal)
|
|
#ifdef D_debug_add_send
|
|
// L2_line_send();/// 把数据发送上去供测试使用 s_task_GC032A.buf
|
|
// D_send_us(DR_pclk_n);
|
|
//
|
|
#endif
|
|
s->usSum *= 10; // sum的最大值不能超出
|
|
s->usPaper = s->usSum/s->usSum100;
|
|
s->ok = D_ready;
|
|
L2_task_go(D_task_ALGO_wait);
|
|
|
|
#define D_F_low 30
|
|
#define D_F_high 40
|
|
#define D_F_diff 10 //D_F_high - D_F_low
|
|
cam 输出的一行数据的前一部分
|
|
16
|
|
16
|
|
16
|
|
16
|
|
17
|
|
18
|
|
19
|
|
22
|
|
25
|
|
26
|
|
26
|
|
27
|
|
29
|
|
28
|
|
28
|
|
27
|
|
27
|
|
26
|
|
26
|
|
26
|
|
25
|
|
25
|
|
/// 去尖峰 削波
|
|
/// ______/\___________
|
|
/// / \
|
|
/// / ...............................\--high
|
|
/// / \
|
|
/// / \
|
|
/// / low \---low
|
|
///-16 17-- \
|
|
///
|
|
***************************/
|
|
///#define D_F_low 23
|
|
///#define D_F_high 30
|
|
///#define D_F_diff 5 //D_F_high - D_F_low
|
|
///#define D_F_diff (D_F_high - D_F_low)
|
|
|
|
|
|
vU16 L2_line_algo_media(U8 *buf,vU16 len)
|
|
{
|
|
vU16 i,usV = 0;//,usi = 0;
|
|
U8 cache[3];
|
|
U8 f1;
|
|
for(i = 1;i < len;i ++)
|
|
{
|
|
|
|
cache[2] = cache[1];
|
|
cache[1] = cache[0];
|
|
cache[0] = buf[i];
|
|
f1 = Lc_U8_media3(cache[2],cache[1],cache[0]);
|
|
///--------------------------------------------------
|
|
if(f1 > D_F_low)//>
|
|
{
|
|
if(f1 > D_F_high)//>40
|
|
{
|
|
f1 = D_F_diff;// 10
|
|
}else
|
|
{
|
|
f1 -= D_F_low;// 40 30
|
|
}
|
|
}else
|
|
{// <=low
|
|
f1 = 0;
|
|
}
|
|
///--------------------------------------------------
|
|
/// buf[i] = f1;
|
|
usV += f1;///最大值 570*7 640*10 =6,400 65,535
|
|
|
|
}
|
|
return usV;
|
|
}
|
|
|
|
|
|
|
|
#if 0
|
|
|
|
/// // s->usSum = L2_line_algo_media(test_buf,639);
|
|
if(ts_task_ALGO.usSum_temp > D_line_sum)
|
|
{
|
|
////L3_task_s_go(ts_task_CALIB,D_task_CALIB_wait);
|
|
}
|
|
if(s->usSum_temp != s->usSum)
|
|
{
|
|
s->t++;
|
|
}else
|
|
{
|
|
s->t = 0;
|
|
}
|
|
if(s->t > 5)
|
|
{
|
|
L0_uart0_uc('X');
|
|
}else
|
|
{
|
|
L0_uart0_uc('F');
|
|
}
|
|
D_send_ushex(s->t);L0_uart0_uc(0x09);
|
|
|
|
|
|
TTSS_Task_step(D_task_ALGO_updown);
|
|
/// // s->usSum = L2_line_algo_media(test_buf,639);
|
|
if(ts_task_ALGO.usSum_temp > D_line_sum)
|
|
{
|
|
////L3_task_s_go(ts_task_CALIB,D_task_CALIB_wait);
|
|
}
|
|
if(s->usSum_temp >= s->usSum)
|
|
{
|
|
s->t = s->usSum_temp - s->usSum;
|
|
}else
|
|
{
|
|
s->t = s->usSum - s->usSum_temp;
|
|
}
|
|
/// L0_uart0_uc(0x09);
|
|
L0_uart0_sendArray("paper =", 9);
|
|
D_send_ushex(s->usSum);L0_uart0_uc('-');
|
|
D_send_ushex(s->usSum_temp);L0_uart0_uc('=');
|
|
s->usSum_temp = s->usSum;
|
|
#define D_paper_max 2000
|
|
///0x0b1d 2845
|
|
|
|
if(s->usSum > 0x0b10)
|
|
{
|
|
s->paperMode = D_max;
|
|
}else
|
|
{
|
|
s->paperMode = D_diff;
|
|
}
|
|
|
|
if(s->t > D_paper_max)
|
|
{
|
|
|
|
L0_uart0_uc('X');
|
|
|
|
}else
|
|
{
|
|
L0_uart0_uc('F');
|
|
|
|
|
|
}
|
|
D_send_ushex(s->t);L0_uart0_uc(0x09);
|
|
L2_task_go(D_task_ALGO_cal);
|
|
//L1_task_Tdelay(D_Tdelay_10ms);
|
|
|
|
L2_task_go(D_task_ALGO_updown);
|
|
TTSS_Task_step(D_task_ALGO_updown);
|
|
s->usLong = L2_line_algo_updown(s->p_buf2,639);
|
|
|
|
vU16 L2_line_algo_updown(U8 *p_buf,U8 len)
|
|
{
|
|
vU16 us_i = 0,up_point = 0,down_point = 0;
|
|
down_point = DR_pclk_n;
|
|
for(us_i = 1;us_i < len ;us_i ++)
|
|
{
|
|
if((p_buf[us_i - 1] == 0)&&
|
|
(p_buf[us_i] == 1))//// _/``上升沿
|
|
{
|
|
if(p_buf[us_i + 1] == 0)
|
|
{//_/`\_ 尖峰需要过滤
|
|
gRccUs03 ++;
|
|
}else
|
|
{// ___/````上升沿开始高电平
|
|
up_point = us_i;
|
|
}
|
|
}else if((p_buf[us_i - 1] == 1)&&
|
|
(p_buf[us_i] == 0))//// ``\_ 下降沿
|
|
{
|
|
down_point = gRccUs03;
|
|
}else
|
|
{
|
|
|
|
}
|
|
}
|
|
us_i = down_point - up_point;
|
|
return us_i;
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
#if 0 ///def D_buf_test
|
|
U8 test_buf[]
|
|
={
|
|
19 ,// 0
|
|
19 ,// 1
|
|
19 ,// 2
|
|
20 ,// 3
|
|
20 ,// 4
|
|
20 ,// 5
|
|
20 ,// 6
|
|
20 ,// 7
|
|
20 ,// 8
|
|
20 ,// 9
|
|
19 ,// 10
|
|
119 ,// 11
|
|
19 ,// 12
|
|
19 ,// 13
|
|
19 ,// 14
|
|
19 ,// 15
|
|
19 ,// 16
|
|
20 ,// 17
|
|
20 ,// 18
|
|
20 ,// 19
|
|
20 ,// 20
|
|
20 ,// 21
|
|
20 ,// 22
|
|
20 ,// 23
|
|
20 ,// 24
|
|
20 ,// 25
|
|
19 ,// 26
|
|
19 ,// 27
|
|
19 ,// 28
|
|
119 ,// 29
|
|
19 ,// 30
|
|
19 ,// 31
|
|
19 ,// 32
|
|
19 ,// 33
|
|
19 ,// 34
|
|
19 ,// 35
|
|
19 ,// 36
|
|
19 ,// 37
|
|
19 ,// 38
|
|
19 ,// 39
|
|
19 ,// 40
|
|
20 ,// 41
|
|
20 ,// 42
|
|
19 ,// 43
|
|
19 ,// 44
|
|
19 ,// 45
|
|
19 ,// 46
|
|
20 ,// 47
|
|
20 ,// 48
|
|
20 ,// 49
|
|
19 ,// 50
|
|
19 ,// 51
|
|
19 ,// 52
|
|
19 ,// 53
|
|
19 ,// 54
|
|
20 ,// 55
|
|
20 ,// 56
|
|
20 ,// 57
|
|
19 ,// 58
|
|
19 ,// 59
|
|
19 ,// 60
|
|
20 ,// 61
|
|
20 ,// 62
|
|
20 ,// 63
|
|
20 ,// 64
|
|
20 ,// 65
|
|
20 ,// 66
|
|
20 ,// 67
|
|
20 ,// 68
|
|
20 ,// 69
|
|
120 ,// 70
|
|
19 ,// 71
|
|
19 ,// 72
|
|
19 ,// 73
|
|
20 ,// 74
|
|
20 ,// 75
|
|
20 ,// 76
|
|
20 ,// 77
|
|
20 ,// 78
|
|
20 ,// 79
|
|
20 ,// 80
|
|
20 ,// 81
|
|
20 ,// 82
|
|
20 ,// 83
|
|
20 ,// 84
|
|
20 ,// 85
|
|
20 ,// 86
|
|
20 ,// 87
|
|
20 ,// 88
|
|
20 ,// 89
|
|
20 ,// 90
|
|
20 ,// 91
|
|
20 ,// 92
|
|
121 ,// 93
|
|
20 ,// 94
|
|
20 ,// 95
|
|
20 ,// 96
|
|
20 ,// 97
|
|
20 ,// 98
|
|
21 ,// 99
|
|
21 ,// 100
|
|
21 ,// 101
|
|
22 ,// 102
|
|
24 ,// 103
|
|
26 ,// 104
|
|
28 ,// 105
|
|
30 ,// 106
|
|
32 ,// 107
|
|
35 ,// 108
|
|
38 ,// 109
|
|
40 ,// 110
|
|
42 ,// 111
|
|
44 ,// 112
|
|
146 ,// 113
|
|
50 ,// 114
|
|
51 ,// 115
|
|
52 ,// 116
|
|
52 ,// 117
|
|
53 ,// 118
|
|
53 ,// 119
|
|
54 ,// 120
|
|
54 ,// 121
|
|
55 ,// 122
|
|
55 ,// 123
|
|
55 ,// 124
|
|
55 ,// 125
|
|
55 ,// 126
|
|
56 ,// 127
|
|
55 ,// 128
|
|
55 ,// 129
|
|
55 ,// 130
|
|
56 ,// 131
|
|
55 ,// 132
|
|
155 ,// 133
|
|
54 ,// 134
|
|
53 ,// 135
|
|
53 ,// 136
|
|
52 ,// 137
|
|
52 ,// 138
|
|
52 ,// 139
|
|
51 ,// 140
|
|
49 ,// 141
|
|
45 ,// 142
|
|
43 ,// 143
|
|
41 ,// 144
|
|
39 ,// 145
|
|
38 ,// 146
|
|
36 ,// 147
|
|
34 ,// 148
|
|
31 ,// 149
|
|
129 ,// 150
|
|
28 ,// 151
|
|
28 ,// 152
|
|
27 ,// 153
|
|
27 ,// 154
|
|
27 ,// 155
|
|
27 ,// 156
|
|
27 ,// 157
|
|
27 ,// 158
|
|
26 ,// 159
|
|
26 ,// 160
|
|
26 ,// 161
|
|
25 ,// 162
|
|
25 ,// 163
|
|
24 ,// 164
|
|
25 ,// 165
|
|
25 ,// 166
|
|
25 ,// 167
|
|
25 ,// 168
|
|
25 ,// 169
|
|
24 ,// 170
|
|
24 ,// 171
|
|
24 ,// 172
|
|
23 ,// 173
|
|
23 ,// 174
|
|
22 ,// 175
|
|
23 ,// 176
|
|
22 ,// 177
|
|
22 ,// 178
|
|
22 ,// 179
|
|
22 ,// 180
|
|
22 ,// 181
|
|
22 ,// 182
|
|
22 ,// 183
|
|
21 ,// 184
|
|
21 ,// 185
|
|
21 ,// 186
|
|
21 ,// 187
|
|
21 ,// 188
|
|
22 ,// 189
|
|
21 ,// 190
|
|
21 ,// 191
|
|
21 ,// 192
|
|
21 ,// 193
|
|
21 ,// 194
|
|
21 ,// 195
|
|
21 ,// 196
|
|
21 ,// 197
|
|
21 ,// 198
|
|
121 ,// 199
|
|
21 ,// 200
|
|
21 ,// 201
|
|
21 ,// 202
|
|
21 ,// 203
|
|
21 ,// 204
|
|
21 ,// 205
|
|
21 ,// 206
|
|
21 ,// 207
|
|
21 ,// 208
|
|
21 ,// 209
|
|
20 ,// 210
|
|
20 ,// 211
|
|
20 ,// 212
|
|
20 ,// 213
|
|
20 ,// 214
|
|
20 ,// 215
|
|
21 ,// 216
|
|
21 ,// 217
|
|
21 ,// 218
|
|
20 ,// 219
|
|
21 ,// 220
|
|
21 ,// 221
|
|
20 ,// 222
|
|
120 ,// 223
|
|
20 ,// 224
|
|
20 ,// 225
|
|
20 ,// 226
|
|
20 ,// 227
|
|
20 ,// 228
|
|
20 ,// 229
|
|
20 ,// 230
|
|
20 ,// 231
|
|
20 ,// 232
|
|
19 ,// 233
|
|
19 ,// 234
|
|
19 ,// 235
|
|
19 ,// 236
|
|
20 ,// 237
|
|
21 ,// 238
|
|
21 ,// 239
|
|
21 ,// 240
|
|
20 ,// 241
|
|
20 ,// 242
|
|
20 ,// 243
|
|
20 ,// 244
|
|
20 ,// 245
|
|
20 ,// 246
|
|
20 ,// 247
|
|
20 ,// 248
|
|
20 ,// 249
|
|
20 ,// 250
|
|
21 ,// 251
|
|
21 ,// 252
|
|
21 ,// 253
|
|
21 ,// 254
|
|
21 ,// 255
|
|
20 ,// 256
|
|
20 ,// 257
|
|
20 ,// 258
|
|
20 ,// 259
|
|
20 ,// 260
|
|
20 ,// 261
|
|
20 ,// 262
|
|
20 ,// 263
|
|
20 ,// 264
|
|
20 ,// 265
|
|
19 ,// 266
|
|
19 ,// 267
|
|
19 ,// 268
|
|
19 ,// 269
|
|
19 ,// 270
|
|
19 ,// 271
|
|
19 ,// 272
|
|
19 ,// 273
|
|
19 ,// 274
|
|
19 ,// 275
|
|
19 ,// 276
|
|
19 ,// 277
|
|
19 ,// 278
|
|
19 ,// 279
|
|
19 ,// 280
|
|
19 ,// 281
|
|
19 ,// 282
|
|
20 ,// 283
|
|
20 ,// 284
|
|
20 ,// 285
|
|
20 ,// 286
|
|
119 ,// 287
|
|
19 ,// 288
|
|
19 ,// 289
|
|
19 ,// 290
|
|
19 ,// 291
|
|
19 ,// 292
|
|
19 ,// 293
|
|
19 ,// 294
|
|
19 ,// 295
|
|
19 ,// 296
|
|
19 ,// 297
|
|
19 ,// 298
|
|
19 ,// 299
|
|
19 ,// 300
|
|
19 ,// 301
|
|
19 ,// 302
|
|
19 ,// 303
|
|
19 ,// 304
|
|
19 ,// 305
|
|
19 ,// 306
|
|
19 ,// 307
|
|
49 ,// 308
|
|
19 ,// 309
|
|
20 ,// 310
|
|
19 ,// 311
|
|
19 ,// 312
|
|
19 ,// 313
|
|
19 ,// 314
|
|
19 ,// 315
|
|
20 ,// 316
|
|
19 ,// 317
|
|
19 ,// 318
|
|
19 ,// 319
|
|
19 ,// 320
|
|
19 ,// 321
|
|
19 ,// 322
|
|
19 ,// 323
|
|
19 ,// 324
|
|
19 ,// 325
|
|
19 ,// 326
|
|
19 ,// 327
|
|
19 ,// 328
|
|
19 ,// 329
|
|
20 ,// 330
|
|
20 ,// 331
|
|
20 ,// 332
|
|
19 ,// 333
|
|
20 ,// 334
|
|
20 ,// 335
|
|
20 ,// 336
|
|
20 ,// 337
|
|
20 ,// 338
|
|
19 ,// 339
|
|
19 ,// 340
|
|
19 ,// 341
|
|
19 ,// 342
|
|
19 ,// 343
|
|
19 ,// 344
|
|
19 ,// 345
|
|
19 ,// 346
|
|
19 ,// 347
|
|
20 ,// 348
|
|
20 ,// 349
|
|
20 ,// 350
|
|
20 ,// 351
|
|
20 ,// 352
|
|
20 ,// 353
|
|
20 ,// 354
|
|
20 ,// 355
|
|
19 ,// 356
|
|
19 ,// 357
|
|
19 ,// 358
|
|
19 ,// 359
|
|
19 ,// 360
|
|
19 ,// 361
|
|
19 ,// 362
|
|
19 ,// 363
|
|
19 ,// 364
|
|
19 ,// 365
|
|
19 ,// 366
|
|
19 ,// 367
|
|
19 ,// 368
|
|
19 ,// 369
|
|
19 ,// 370
|
|
19 ,// 371
|
|
19 ,// 372
|
|
19 ,// 373
|
|
19 ,// 374
|
|
19 ,// 375
|
|
19 ,// 376
|
|
19 ,// 377
|
|
19 ,// 378
|
|
19 ,// 379
|
|
19 ,// 380
|
|
19 ,// 381
|
|
19 ,// 382
|
|
19 ,// 383
|
|
19 ,// 384
|
|
19 ,// 385
|
|
19 ,// 386
|
|
19 ,// 387
|
|
20 ,// 388
|
|
20 ,// 389
|
|
19 ,// 390
|
|
19 ,// 391
|
|
19 ,// 392
|
|
19 ,// 393
|
|
19 ,// 394
|
|
19 ,// 395
|
|
19 ,// 396
|
|
19 ,// 397
|
|
19 ,// 398
|
|
19 ,// 399
|
|
19 ,// 400
|
|
19 ,// 401
|
|
19 ,// 402
|
|
19 ,// 403
|
|
19 ,// 404
|
|
19 ,// 405
|
|
19 ,// 406
|
|
19 ,// 407
|
|
19 ,// 408
|
|
19 ,// 409
|
|
19 ,// 410
|
|
20 ,// 411
|
|
19 ,// 412
|
|
19 ,// 413
|
|
19 ,// 414
|
|
19 ,// 415
|
|
19 ,// 416
|
|
19 ,// 417
|
|
19 ,// 418
|
|
19 ,// 419
|
|
19 ,// 420
|
|
19 ,// 421
|
|
19 ,// 422
|
|
19 ,// 423
|
|
19 ,// 424
|
|
19 ,// 425
|
|
19 ,// 426
|
|
19 ,// 427
|
|
19 ,// 428
|
|
19 ,// 429
|
|
19 ,// 430
|
|
19 ,// 431
|
|
19 ,// 432
|
|
19 ,// 433
|
|
19 ,// 434
|
|
19 ,// 435
|
|
19 ,// 436
|
|
20 ,// 437
|
|
19 ,// 438
|
|
19 ,// 439
|
|
19 ,// 440
|
|
19 ,// 441
|
|
19 ,// 442
|
|
19 ,// 443
|
|
19 ,// 444
|
|
19 ,// 445
|
|
19 ,// 446
|
|
19 ,// 447
|
|
19 ,// 448
|
|
19 ,// 449
|
|
19 ,// 450
|
|
19 ,// 451
|
|
19 ,// 452
|
|
19 ,// 453
|
|
19 ,// 454
|
|
19 ,// 455
|
|
19 ,// 456
|
|
19 ,// 457
|
|
19 ,// 458
|
|
19 ,// 459
|
|
19 ,// 460
|
|
19 ,// 461
|
|
19 ,// 462
|
|
19 ,// 463
|
|
19 ,// 464
|
|
19 ,// 465
|
|
19 ,// 466
|
|
19 ,// 467
|
|
19 ,// 468
|
|
19 ,// 469
|
|
19 ,// 470
|
|
19 ,// 471
|
|
19 ,// 472
|
|
19 ,// 473
|
|
19 ,// 474
|
|
19 ,// 475
|
|
19 ,// 476
|
|
19 ,// 477
|
|
19 ,// 478
|
|
19 ,// 479
|
|
19 ,// 480
|
|
19 ,// 481
|
|
19 ,// 482
|
|
19 ,// 483
|
|
19 ,// 484
|
|
19 ,// 485
|
|
19 ,// 486
|
|
19 ,// 487
|
|
19 ,// 488
|
|
19 ,// 489
|
|
19 ,// 490
|
|
19 ,// 491
|
|
19 ,// 492
|
|
19 ,// 493
|
|
19 ,// 494
|
|
19 ,// 495
|
|
19 ,// 496
|
|
19 ,// 497
|
|
18 ,// 498
|
|
18 ,// 499
|
|
18 ,// 500
|
|
19 ,// 501
|
|
19 ,// 502
|
|
19 ,// 503
|
|
19 ,// 504
|
|
19 ,// 505
|
|
19 ,// 506
|
|
19 ,// 507
|
|
19 ,// 508
|
|
19 // 509
|
|
};
|
|
#endif
|
|
|