From 4b217fb1eefac6d802d591b97a3c7ef1e4989e8e Mon Sep 17 00:00:00 2001 From: Mario Voigt Date: Sun, 17 Nov 2019 21:17:11 +0100 Subject: [PATCH] =?UTF-8?q?Dateien=20hochladen=20nach=20=E2=80=9E=E2=80=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1602.c | 649 ++++++++++++++++++++++++++++++++++++++++++++ LCR.lay | Bin 0 -> 266566 bytes led.c | 576 +++++++++++++++++++++++++++++++++++++++ uu1602.hex | 781 +++++++++++++++++++++++++++++++++++++++++++++++++++++ uuLED.hex | 642 +++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 2648 insertions(+) create mode 100644 1602.c create mode 100644 LCR.lay create mode 100644 led.c create mode 100644 uu1602.hex create mode 100644 uuLED.hex diff --git a/1602.c b/1602.c new file mode 100644 index 0000000..9e29a77 --- /dev/null +++ b/1602.c @@ -0,0 +1,649 @@ +//========================================================================== +// LCR表驱动程序 V1.0 +// xjw01 于莆田 2011.10 +//========================================================================== +//========================================================================== +#define uchar unsigned char +#define uint unsigned int +#define ulong unsigned long +#include +#include + +//========================================================================== +// 项目:LCD1602 四线驱动程序 +// 设计要点: +// LCD1602 的运行速度慢,而单片机运行的速度快,因此容易因为速度不 +// 匹配造成调试失败。因此,调试之前应准确测试lcd_delay() 延时函数 +// 准确的延时量,如果不能满足注释中的要求,则应调整循次数。每步操 +// 作所需的延时量,按照数据手册指标指行,同时留下足够的时间余量。 +// 硬件连接: +// 至少需要9条线,电源线2条,7条信号线。信号线详见程序中的接口定义。 +// 清注意对LCD1602比对的调节,否则无显示。 +// 设计:许剑伟,于莆田,2010.12 +//========================================================================== +sbit lcd_RS = P0^6; //数据命令控制位,0命令1数据 +sbit lcd_RW = P0^5; //读写位,0写1读 +sbit lcd_EN = P0^4; //使能位,下降沿触发 +sbit lcd_D4 = P0^3; //数据端口D4 +sbit lcd_D5 = P0^2; //数据端口D5 +sbit lcd_D6 = P0^1; //数据端口D6 +sbit lcd_D7 = P0^0; //数据端口D7 +//========================================================================== +void lcd_delay(int n){ //LCD专用延时函数 + //32MHz钟频下,约循环3000次延迟1毫秒 + int i,j; + if(n<0) { for(i=0;i< 30;i++); return; } //10us + if(n== 0) { for(i=0;i<150;i++); return; } //50us + for(;n;n--){ for (j=0;j<3000;j++); } //n毫秒 +} +//========================================================================== +void lcd_B(char f, uchar c, char t){ //控制四线式接口LCD的7个脚 + //f=0写命令字, f=1写RAM数据, f=2读RAM数据, f=3读RAM数据 + lcd_EN = 0; + lcd_RS = f%2; + lcd_RW = f/2%2; + //移入高四位 + lcd_D4 = c & 16; + lcd_D5 = c & 32; + lcd_D6 = c & 64; + lcd_D7 = c & 128; + lcd_EN = 1; lcd_delay(-1); lcd_EN = 0; //使能脉冲 + if(f==4) { lcd_delay(t); return; } + //移入低四位 + lcd_D4 = c & 1; + lcd_D5 = c & 2; + lcd_D6 = c & 4; + lcd_D7 = c & 8; + lcd_EN = 1; lcd_delay(-1); lcd_EN = 0; //使能脉冲 + lcd_delay(t); //不同的命令,响应时间不同,清零命令需要2ms +} +//========================================================================== +void lcd_init(){ //LCD1602 初始化 + //启动四线模式须势行9个步骤,初始化所须耗时较长,约65ms,时限不可减 + lcd_delay(20); //启动lcd之前须延时大于15ms,直到VDD大于4.5V + lcd_B(4, 0x30, 9); //置8线模式,须延时大于4.1ms + lcd_B(4, 0x30, 5); //置8线模式,须延时大于100us + lcd_B(4, 0x30, 5); //置8线模式,手册中未指定延时 + lcd_B(4, 0x20, 5); //进入四线模式 + lcd_B(0, 0x28, 5); //四线模式双行显示 + lcd_B(0, 0x0C, 5); //打开显示器 + lcd_B(0, 0x80, 5); //RAM指针定位 + lcd_B(0, 0x01, 5); //启动清屏命初始化LCD +} +//========================================================================== +//=========================几个功能常用函数================================= +void lcd_cls() { lcd_B(0, 0x01+0, 2); } //清屏 +void lcd_cur0() { lcd_B(0, 0x0C+0, 0); } //隐藏光标 +void lcd_goto1(uchar x){ lcd_B(0, 0x80+x, 0); } //设置DDRAM地址,第1行x位 +void lcd_goto2(uchar x){ lcd_B(0, 0xC0+x, 0); } //设置DDRAM地址,第2行x位 +void lcd_putc(uchar d) { lcd_B(1, 0x00+d, 0); } //字符输出 +void lcd_puts(uchar *s){ for(; *s; s++) lcd_B(1,*s,0); } //字串输出 + +//========================================================================== +//===============================延时函数=================================== +void delay(uint loop) { uint i; for(i=0;i0;k--) delay(10000); } //长延时,k=100大约对应1秒 + +//========================================================================== +//=================================AD转换=================================== +sfr P1ASF = 0x9D; //将P1置为模拟口寄存器(使能),各位中为1的有效 +sfr ADC_CONTR = 0xBC; //A/D转换控制寄存器 +sfr ADC_res = 0xBD; //A/D转换结果寄存器 +sfr ADC_resl = 0xBE; //A/D转换结果寄存器 + +void set_channel(char channel){ + P1ASF = 1<>8; //设置读取地址的高字节,地址改变才需要设置 + IAP_contr = 0x81; //设置等待时间,1MHz以下取7,2M以下取6,3M取5,6M取4,12M取3,20M取2,24M取1,30M取0,前导1表示许档IAP + IAP_cmd = 1; //读取值1,写取2,擦除取3,擦除时按所在字节整个扇区撺除 + IAP_trig = 0x5A; //先送5A + IAP_trig = 0xA5; //先送5A再送A5立即触发 + saEEP(); //保护 + return IAP_data; +} +void writeEEP(uint k, uchar da){ //写入 + IAP_data = da; //传入数据 + IAP_addrL = k; //设置读取地址的低字节,地址改变才需要设置 + IAP_addrH = k>>8; //设置读取地址的高字节,地址改变才需要设置 + IAP_contr = 0x81; //设置等待时间,1MHz以下取7,2M以下取6,3M取5,6M取4,12M取3,20M取2,24M取1,30M取0,前导1表示许档IAP + IAP_cmd = 2; //读取值1,写取2,擦除取3,擦除时按所在字节整个扇区撺除 + IAP_trig = 0x5A; //先送5A + IAP_trig = 0xA5; //先送5A再送A5立即触发 + saEEP(); //保护 +} +void eraseEEP(uint k){ //擦除 + IAP_addrL = k; //设置读取地址的低字节,地址改变才需要设置 + IAP_addrH = k>>8; //设置读取地址的高字节,地址改变才需要设置 + IAP_contr = 0x81; //设置等待时间,1MHz以下取7,2M以下取6,3M取5,6M取4,12M取3,20M取2,24M取1,30M取0,前导1表示许档IAP + IAP_cmd = 3; //读取值1,写取2,擦除取3,擦除时按所在字节整个扇区撺除 + IAP_trig = 0x5A; //先送5A + IAP_trig = 0xA5; //先送5A再送A5立即触发 + saEEP(); //保护 +} + +xdata struct Ida{ + char zo[3];//三个频率下的零点改正值 + char j1; //相位补偿(3倍档) + char j2; //相位补偿(10倍档) + char J[4]; //相位补偿(V/I变换器) + char R[4]; //下臂电阻修正(20,1k,10k,100k) + char g1; //增益修正(3倍档) + char g2; //增益修正(10倍档) +} cs; + +void cs_RW(char rw){ + uchar i,*p = &cs; + if(rw){ + eraseEEP(0); + for(i=0;ib) f = a; else f = b; + if(qmin) { + a += qmin/2, a -= fmod(a,qmin)-qmin/1000; + b += qmin/2; b -= fmod(b,qmin)-qmin/1000; + } + for(i=1;i= 1000) g/=1000, c++; } //以3位为单位移动小数点,右移 + for(i=0;i> 8; //截断正弦相位累加器,取高8位 + y = x + chuX; //方波相位 + CCAP0H = sinB[x];//正弦DDS输出 + DDS2 = fbB[y]; //方波DDS输出 + ph += phM; //相位累加 +} +void setDDS(uint f){ //参考时钟是c=(fosc/2)/256=32000000/2/256=62500,频率f=c*phM/2^16 + feq = f; + phM=f*65536.0/62500; //phM=f*2^16/62500 + feqX = 62500.0*phM/65536; //实际输出频率 + ph = 0; //高频时,使波形对称 + if(!f) CR=0; else CR=1; +} + +//相位控制函数 +xdata char xw=0; //相位 +void set90(char k){ //设置方波的相位差 + k %= 4; + if(k<0) k += 4; + if(k==0) chuX=0; //移相0度 + if(k==1) chuX=64; //移相90度 + if(k==2) chuX=128; //移相180度 + if(k==3) chuX=192; //移相270度 + xw = k; +} +void set902() { set90(xw+1); } //相位步进 + +//==============量程控制函数==================== +xdata char rng=1; //量程 +void setRng(char k){//切换量程 + if(k==0) Ka=0,Kb=0; //100欧 + if(k==1) Ka=0,Kb=1; //1k欧 + if(k==2) Ka=1,Kb=0; //10k欧 + if(k==3) Ka=1,Kb=1; //100k欧 + rng = k; +} +void setRng2(){ setRng( (rng+1)%4); } //量程步进 + +//==============增益控制函数==================== +char curGain=1; //当前增益索引号 +void setGain(char k){ //设置电路增益 + if(k>3) k=3; + if(k<0) k=0; + if(k==0) K4=0,K6=0; //1倍 + if(k==1) K4=0,K6=1; //3倍 + if(k==2) K4=1,K6=0; //10倍 + if(k==3) K4=1,K6=1; //30倍 + curGain = k; +} +void setGain2(){ setGain((curGain+1)%4); } + + +//==============LCR测量==================== +xdata int Vxy[4]={0,0,0,0}; //Vxy[Vx1,Vy1,Vx2,Vy2] +xdata char Sxw[4]={0,1,0,1}; //保存正确相位 +xdata char Vga[4]={1,1,1,1}; //上下臂增益记录表 +xdata uchar tim=0,tims=0; +xdata char pau=0; //暂停坐标自动旋转 +#define Vfull 9600 +#define gad (9600/30) +uchar mT = 6; //测量速度,mT取值为6或12或24时,可以消除数字噪声,尾数不动,但不利于于取平均 +//==============设置频率==================== +xdata char feqK=1; //频率索引号 +void setF(char k){ + if(k==-1){ //步进 + k = 0; + if(feq==100) k=1; + if(feq==1000) k=2; + if(feq==7813) k=0; + } + feqK = k; + if(k==0) { setDDS(100); K5=0; K8=1; mT=12; } //置为100Hz + if(k==1) { setDDS(1000); K5=0; K8=0; mT=6; } //置为1kHz + if(k==2) { setDDS(7813); K5=1; K8=0; mT=6; } //置为7.8125kHz + TH1 = 47, TL1 = 171; //置为20ms + tims = 0; + tim = 0; + ph = 0; +} +int absMax(int a,int b){ //取两个数绝对值最大者 + if(a<0) a = -a; + if(b<0) b = -b; + if(b>a) a = b; + return a; +} +#define avn 4 //求平无个数 +xdata float vq[3][avn]; //数据缓存,用于求平均 +void LCRcalc(int *v,char *g){ //LCR计算 + code float ga[4] = { 1, 3, 9, 27 }; //增益表 + code float dwR[4] = { 20, 1e3, 1e4, 1e5 }; //各档电阻表 + xdata int g12 = (int)cs.g1+cs.g2; //增益最大补偿 + xdata int j12 = (int)cs.j1+cs.j2; //相位最大补偿 + xdata float JD = 0,cJD, G = 0; //补偿变量 + xdata float a,b,c,e; + char i; + a = +( 1.0*v[2]*v[2] + 1.0*v[3]*v[3] ); + b = -( 1.0*v[0]*v[2] + 1.0*v[1]*v[3] ); + c = -( 1.0*v[2]*v[1] - 1.0*v[0]*v[3] ); + a *= ga[g[0]] / ga[g[2]]; + a /= dwR[rng]*(1+cs.R[rng]/10000.0); //除以下臂电阻阻值 + + //可控增益单元的增益修正、相位补偿量 + if(g[0] == 1) JD += cs.j1, G += cs.g1; + if(g[0] == 2) JD += cs.j2, G += cs.g2; + if(g[0] == 3) JD += j12, G += g12; + if(g[2] == 1) JD -= cs.j1, G -= cs.g1; + if(g[2] == 2) JD -= cs.j2, G -= cs.g2; + if(g[2] == 3) JD -= j12, G -= g12; + JD -= cs.J[rng]; + JD *= feqX/7813/1000; + cJD = 1 - JD*JD/2; + a *= 1+G/10000; //增益补偿 + e = b*cJD - c*JD; //相位补偿 + c = b*JD + c*cJD; //相位补偿 + b = e; + //入队 + for(i=1;i=mT) tims = 0, tim++, c = 1; + if(tim>=4) tim=0; + if(pau) return; + if(c){ //tim进位触发 + c = getAD10(); //读取电压值 + c -= cs.zo[feqK]; + Vxy[tim] = xw<2 ? c : -c; //保存当前电压 + Vga[tim] = curGain; //保存当前增益 + Sxw[tim] += c<0 ? 2 : 0; //相位翻转(预测下次的相位采用值) + Sxw[tim] %= 4; + if(tim==1||tim==3){ //上下臂切换 + //电压模值才能反应运放的输出幅度,所以增益切换判断得用模值 + if(tim==1) K3=1, c = absMax(Vxy[2],Vxy[3]), g=Vga[2]; //切换到下臂 + if(tim==3) K3=0, c = absMax(Vxy[0],Vxy[1]), g=Vga[0]; //切换到上臂 + if(c>Vfull) g--; + else if(c999) c=999; } //计算Q + else c = 999; + lcd_putf(c,0,0); //显示Q +} +//void timerInter(void) interrupt 1 {}//T0中断 + +main(){ + uchar i=0,kn=0,key=0; + uchar dispN=0; //显示扫描索引 + uchar spkN=0; //蜂鸣器发声时长 + uint nn=0; + uchar binLian=0; + + lcd_init(); //初始化LCD + lcd_cur0(); //隐藏光标 + lcd_puts("LCR 2.0"); + lcd_goto2(0); + lcd_puts("XJW Putian,2011"); + delay2(80); //启动延时 + cs_RW(0); //读EEPROM + + TCON=0, TMOD=0x12; //将T0置为自动重装定时器,T1置为定时器 + TH1 = 0, TL1 = 0; + TR1=1; //T1开始计数 + TR0=0; //T0暂停计数 + ET1=1; //T1开中断 + ET0=1; //T1开中断 + EA=1; //开总中断 + PT0=1; //设置优先级 + + + set_channel(0); //设置AD转换通道 + P2M0 = 0xFF; //P2.01234567置为推勉输出 + P1M0 = 0xFC; //P1.234567置为推换口 + P1M1 = 0x03; //P1.0置为高阻抗 + P2 = 0x0F; + + + + PWM_init();//DDS初始化 + set90(2); //初始设置相位 + setRng(1); //初始设置量程 + setGain(1); //初始设置增益 + setF(1); //DDS初始设置为1kHz + + while(1){ + //显示disp + nn++; + //扫描键盘 + key = ~P3; + if(key&&kn<255) kn++; else kn=0; + for(i=0;key;i++) key/=2; key=i; + if(kn==4) spkN=10; else key=0; //当按下一定时间后key才有效。spkN发声时长设置 + if(spkN) spkN--, spk=0; else spk=1; //键盘发声 + //菜单系统 + if(key==8){//菜单键 + lcd_cls(); lcd_puts("Menu: 1 LCR"); + lcd_goto2(0); lcd_puts("3 Test,7 Set"); + menu=0; key=0; + } + if(menu>=1 && menu<=4){ + if(key==7) setRng2(); //量程步进 + if(key==6) setF(-1); //设置频率 + } + if(menu==0){ //显示量程和菜单 + if(key) lcd_cls(); + if(key>=1 && key<=7) menu = key, menu2 = 0; + key = 0; + } + if(menu==1){ //LCR测量(串联) + pau = 0; + if(key==1) binLian = (binLian+1)%2; //串并联切换 + showR(binLian); + } + if(menu==2){ + lcd_goto1(0); + lcd_puts("up:"); lcd_putc(Vga[0]+48); + lcd_puts(" dw:"); lcd_putc(Vga[2]+48); + } + if(menu==3){ //手动调试 + pau = 1; + if(key==1) setGain2();//增益控制 + if(key==2) { }; + if(key==3) K3=~K3; //切换上下臂 + if(key==4) set902(); //相位旋转 + lcd_goto1(0); + lcd_puts(" xw="); lcd_putc(xw+48); //相位索引号 + lcd_puts(" K3="); lcd_putc(K3?49:48); //K3状态 + lcd_puts(" Ga="); lcd_putc(curGain+48); //增益索引号 + lcd_goto2(0); + if(nn%32==0) lcd_int(getAD10(),5); + } + if(menu==7){ //设置零点偏移数 + code char *csR[15] = { + "Z0 : 20", "Z1 : 20","Z2 : 20", + "R1X: 20", "R2X: 1k", "R3X:10k", "R4X:.1M", "G1X:3k3", "G2X:10k", + "R1 : 20", "R2 : 1k", "R3 :10k", "R4 :.1M", "G1 :3k3", "G2 :10k"}; + char *p,bc=1, feqD=1,rngD=1; + static char kc=0, mo=0; + if(menu2==0) p = cs.zo+0, feqD=0, rngD=2; //100Hz零点校准,接入10欧电阻 + if(menu2==1) p = cs.zo+1, feqD=1, rngD=2; //1kHz零点校准,接入10欧电阻 + if(menu2==2) p = cs.zo+2, feqD=2, rngD=2; //7.8kHz零点校准,接入10欧电阻 + if(menu2==3) p = cs.J+0, feqD=2, rngD=0; //VI变换器相位校准,接入20电阻 + if(menu2==4) p = cs.J+1, feqD=2, rngD=1; //VI变换器相位校准,接入1k电阻 + if(menu2==5) p = cs.J+2, feqD=2, rngD=2; //VI变换器相位校准,接入10k电阻 + if(menu2==6) p = cs.J+3, feqD=2, rngD=3; //VI变换器相位校准,接入100k电阻 + if(menu2==7) p = &cs.j1, feqD=2, rngD=1; //运放3倍档相位校准,接入3.3k欧电阻 + if(menu2==8) p = &cs.j2, feqD=2, rngD=1; //运放10倍档相位校准,接入10k欧电阻 + if(menu2==9) p = cs.R+0, bc=2, feqD=1, rngD=0; //VI变换器模值校准,接入20欧 + if(menu2==10) p = cs.R+1, bc=2, feqD=1, rngD=1; //VI变换器模值校准,接入1k欧 + if(menu2==11) p = cs.R+2, bc=2, feqD=1, rngD=2; //VI变换器模值校准,接入10k欧 + if(menu2==12) p = cs.R+3, bc=2, feqD=1, rngD=3; //VI变换器模值校准,接入100k欧 + if(menu2==13) p = &cs.g1, bc=2, feqD=1, rngD=1; //运放3倍增益校准,接入2k欧电阻 + if(menu2==14) p = &cs.g2, bc=2, feqD=1, rngD=1; //运放10倍增益校准,接入10k欧电阻 + if(key==1) *p += bc; //X键增 + if(key==2) *p -= bc; //R键减 + if(key==3) { cs_RW(1); setF(feqK); } //L键保存 + if(key==4) *p = 0; //C键清除 + if(key==5) { if(menu2==0) menu2=14; else menu2--; mo=0; } + if(key==6) { if(menu2==14)menu2=0; else menu2++; mo=0; } + if(key==7) mo = (mo+1)%2; + if(key==4){ //恢复到默认值 + if(++kc==5){ + kc = 0; + cs.j1 = 16, cs.j2 = 18; + cs.g1 = 0, cs.g2 = 0; + cs.zo[0] = 20; + cs.zo[1] = 19; + cs.zo[2] = 14; + cs.J[0] = cs.J[1] = cs.J[2] = 0, cs.J[3] = 20; + cs.R[0] = cs.R[1] = cs.R[2] = cs.R[3] = 0; + } + } + else { if(key) kc=0; } + //显示 + if(mo){ + if(feqD!=feqK) setF(feqD); + if(rngD!=rng) setRng(rngD); + showR(1); + }else{ + lcd_cls(); + lcd_goto1(0); + lcd_puts(csR[menu2]); //输出参数名称 + lcd_goto2(0); + lcd_putf(*p,0,0); + lcd_puts("X:+ R:-"); + } + } + delay(20000); + }//while end +} +//========================================================================== + diff --git a/LCR.lay b/LCR.lay new file mode 100644 index 0000000000000000000000000000000000000000..3d21b2f889008a070c52fedc674e0c061b367277 GIT binary patch literal 266566 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�Ccx`x4INi#ZlX%Dp%PRCPGz0-r397G(nfp$&-C;|d7nKAWlz^Rggh81YDdvqj zY9*^yxNe7Q2#DMqMb>3GfgzJ4DW9}eg4C+H*vXNuLxcqD+XXFWCgo`4HJ3t(hJkRu zk};;oBa4?0f4+bOdt&9`YNpISXiirn(G>4_1QqG134 literal 0 HcmV?d00001 diff --git a/led.c b/led.c new file mode 100644 index 0000000..09005cc --- /dev/null +++ b/led.c @@ -0,0 +1,576 @@ +/************************************* +LCR表驱动程序 V1.0 +xjw01 于莆田 2011.10 +**************************************/ +//==================================== +#define uchar unsigned char +#define uint unsigned int +#define ulong unsigned long +#include +#include + +void delay(uint loop) { uint i; for(i=0;i0;k--) delay(10000); } //长延时,k=100大约对应1秒 + +//========================AD转换============================= +sfr P1ASF = 0x9D; //将P1置为模拟口寄存器(使能),各位中为1的有效 +sfr ADC_CONTR = 0xBC; //A/D转换控制寄存器 +sfr ADC_res = 0xBD; //A/D转换结果寄存器 +sfr ADC_resl = 0xBE; //A/D转换结果寄存器 + +void set_channel(char channel){ + P1ASF = 1<>8; //设置读取地址的高字节,地址改变才需要设置 + IAP_contr = 0x81; //设置等待时间,1MHz以下取7,2M以下取6,3M取5,6M取4,12M取3,20M取2,24M取1,30M取0,前导1表示许档IAP + IAP_cmd = 1; //读取值1,写取2,擦除取3,擦除时按所在字节整个扇区撺除 + IAP_trig = 0x5A; //先送5A + IAP_trig = 0xA5; //先送5A再送A5立即触发 + saEEP(); //保护 + return IAP_data; +} +void writeEEP(uint k, uchar da){ //写入 + IAP_data = da; //传入数据 + IAP_addrL = k; //设置读取地址的低字节,地址改变才需要设置 + IAP_addrH = k>>8; //设置读取地址的高字节,地址改变才需要设置 + IAP_contr = 0x81; //设置等待时间,1MHz以下取7,2M以下取6,3M取5,6M取4,12M取3,20M取2,24M取1,30M取0,前导1表示许档IAP + IAP_cmd = 2; //读取值1,写取2,擦除取3,擦除时按所在字节整个扇区撺除 + IAP_trig = 0x5A; //先送5A + IAP_trig = 0xA5; //先送5A再送A5立即触发 + saEEP(); //保护 +} +void eraseEEP(uint k){ //擦除 + IAP_addrL = k; //设置读取地址的低字节,地址改变才需要设置 + IAP_addrH = k>>8; //设置读取地址的高字节,地址改变才需要设置 + IAP_contr = 0x81; //设置等待时间,1MHz以下取7,2M以下取6,3M取5,6M取4,12M取3,20M取2,24M取1,30M取0,前导1表示许档IAP + IAP_cmd = 3; //读取值1,写取2,擦除取3,擦除时按所在字节整个扇区撺除 + IAP_trig = 0x5A; //先送5A + IAP_trig = 0xA5; //先送5A再送A5立即触发 + saEEP(); //保护 +} + +xdata struct Ida{ + char zo[3];//三个频率下的零点改正值 + char j1; //相位补偿(3倍档) + char j2; //相位补偿(10倍档) + char J[4]; //相位补偿(V/I变换器) + char R[4]; //下臂电阻修正(20,1k,10k,100k) + char g1; //增益修正(3倍档) + char g2; //增益修正(10倍档) +} cs; + +void cs_RW(char rw){ + uchar i,*p = &cs; + if(rw){ + eraseEEP(0); + for(i=0;i=1000) f/=1000, b++; } //以3位为单位移动小数点,把大数转粉0至999,小数点在末字 + for(i=0;i> 8; //截断正弦相位累加器,取高8位 + y = x + chuX; //方波相位 + CCAP0H = sinB[x];//正弦DDS输出 + DDS2 = fbB[y]; //方波DDS输出 + ph += phM; //相位累加 +} +void setDDS(uint f){ //参考时钟是c=(fosc/2)/256=32000000/2/256=62500,频率f=c*phM/2^16 + feq = f; + phM=f*65536.0/62500; //phM=f*2^16/62500 + feqX = 62500.0*phM/65536; //实际输出频率 + ph = 0; //高频时,使波形对称 + if(!f) CR=0; else CR=1; +} + +//相位控制函数 +xdata char xw=0; //相位 +void set90(char k){ //设置方波的相位差 + k %= 4; + if(k<0) k += 4; + if(k==0) chuX=0; //移相0度 + if(k==1) chuX=64; //移相90度 + if(k==2) chuX=128; //移相180度 + if(k==3) chuX=192; //移相270度 + xw = k; +} +void set902() { set90(xw+1); } //相位步进 + +//==============量程控制函数==================== +xdata char rng=1; //量程 +void setRng(char k){//切换量程 + if(k==0) Ka=0,Kb=0; //100欧 + if(k==1) Ka=0,Kb=1; //1k欧 + if(k==2) Ka=1,Kb=0; //10k欧 + if(k==3) Ka=1,Kb=1; //100k欧 + rng = k; +} +void setRng2(){ setRng( (rng+1)%4); } //量程步进 + +//==============增益控制函数==================== +char curGain=1; //当前增益索引号 +void setGain(char k){ //设置电路增益 + if(k>3) k=3; + if(k<0) k=0; + if(k==0) K4=0,K6=0; //1倍 + if(k==1) K4=0,K6=1; //3倍 + if(k==2) K4=1,K6=0; //10倍 + if(k==3) K4=1,K6=1; //30倍 + curGain = k; +} +void setGain2(){ setGain((curGain+1)%4); } + + +//==============LCR测量==================== +xdata int Vxy[4]={0,0,0,0}; //Vxy[Vx1,Vy1,Vx2,Vy2] +xdata char Sxw[4]={0,1,0,1}; //保存正确相位 +xdata char Vga[4]={1,1,1,1}; //上下臂增益记录表 +xdata uchar tim=0,tims=0; +xdata char pau=0; //暂停坐标自动旋转 +#define Vfull 9600 +#define gad (9600/30) +uchar mT = 6; //测量速度 +//==============设置频率==================== +xdata char feqK=1; //频率索引号 +void setF(char k){ + if(k==-1){ //步进 + k = 0; + if(feq==100) k=1; + if(feq==1000) k=2; + if(feq==7813) k=0; + } + if(k==0) { setDDS(100); K5=0; K8=1; mT=15; } //置为100Hz + if(k==1) { setDDS(1000); K5=0; K8=0; mT=6; } //置为1kHz + if(k==2) { setDDS(7813); K5=1; K8=0; mT=6; } //置为7.8125kHz + feqK=k; + TH1 = 47, TL1 = 171; //置为20ms + tims = 0; + tim = 0; + ph = 0; +} +int absMax(int a,int b){ //取两个数绝对值最大者 + if(a<0) a = -a; + if(b<0) b = -b; + if(b>a) a = b; + return a; +} +#define avn 4 //求平无个数 +xdata float vq[3][avn]; //数据缓存,用于求平均 +void LCRcalc(int *v,char *g){ //LCR计算 + code float ga[4] = { 1, 3, 9, 27 }; //增益表 + code float dwR[4] = { 20, 1e3, 1e4, 1e5 }; //各档电阻表 + xdata int g12 = (int)cs.g1+cs.g2; //增益最大补偿 + xdata int j12 = (int)cs.j1+cs.j2; //相位最大补偿 + xdata float JD = 0,cJD, G = 0; //补偿变量 + xdata float a,b,c,e; + char i; + a = +( 1.0*v[2]*v[2] + 1.0*v[3]*v[3] ); + b = -( 1.0*v[0]*v[2] + 1.0*v[1]*v[3] ); + c = -( 1.0*v[2]*v[1] - 1.0*v[0]*v[3] ); + a *= ga[g[0]] / ga[g[2]]; + a /= dwR[rng]*(1+cs.R[rng]/10000.0); //除以下臂电阻阻值 + + //可控增益单元的增益修正、相位补偿量 + if(g[0] == 1) JD += cs.j1, G += cs.g1; + if(g[0] == 2) JD += cs.j2, G += cs.g2; + if(g[0] == 3) JD += j12, G += g12; + if(g[2] == 1) JD -= cs.j1, G -= cs.g1; + if(g[2] == 2) JD -= cs.j2, G -= cs.g2; + if(g[2] == 3) JD -= j12, G -= g12; + JD -= cs.J[rng]; + JD *= feqX/7813/1000; + cJD = 1 - JD*JD/2; + a *= 1+G/10000; //增益补偿 + e = b*cJD - c*JD; //相位补偿 + c = b*JD + c*cJD; //相位补偿 + b = e; + //入队 + for(i=1;i=mT){ //tim进位触发 + tims = 0, tim++; + if(tim>=4) tim=0; + c = getAD10(); //读取电压值 + c -= cs.zo[feqK]; + Vxy[tim] = xw<2 ? c : -c; //保存当前电压 + Vga[tim] = curGain; //保存当前增益 + Sxw[tim] += c<0 ? 2 : 0; //相位翻转(预测下次的相位采用值) + Sxw[tim] %= 4; + if(tim==1||tim==3){ //上下臂切换 + //电压模值才能反应运放的输出幅度,所以增益切换判断得用模值 + if(tim==1) K3=1, c = absMax(Vxy[2],Vxy[3]), g=Vga[2]; //切换到下臂 + if(tim==3) K3=0, c = absMax(Vxy[0],Vxy[1]), g=Vga[0]; //切换到上臂 + if(c>Vfull) g--; + else if(c=1000) { showDig(999 ); } + else if(c>=100 ) { showDig(c ); } + else if(c>=10 ) { showDig(c*10 ); disp[1] += 4; } + else if(c>=1 ) { showDig(c*100 ); disp[2] += 4; } + else { showDig(c*1000); disp[3] += 4; } + } +} +//void timerInter(void) interrupt 1 {}//T0中断 + +void showMsg(uchar a){ //临时跳出信息 + P0 = ~a; + ds0=1, ds1=ds2=ds3=0; + delay2(50); +} +main(){ + uchar i=0,kn=0,key=0; + uchar dispN=0; //显示扫描索引 + uchar spkN=0; //蜂鸣器发声时长 + uint nn=0; + uchar XRQ=1; + char binLian=0; //并联1,串联0 + + delay2(80); //启动延时 + cs_RW(0); //读EEPROM + + TCON=0, TMOD=0x12; //将T0置为自动重装定时器,T1置为定时器 + TH1 = 0, TL1 = 0; + TR1=1; //T1开始计数 + TR0=0; //T0暂停计数 + ET1=1; //T1开中断 + ET0=1; //T1开中断 + EA=1; //开总中断 + PT0=1; //设置优先级 + + + set_channel(0); //设置AD转换通道 + P2M0 = 0xFF; //P2.01234567置为推勉输出 + P1M0 = 0xFC; //P1.234567置为推换口 + P1M1 = 0x03; //P1.0置为高阻抗 + + //请注意启动延时0.5秒方可读取cs_RW + //cs_RW(0); //读取比值基数(调零时已做开机延时,确保电压上升到可读取EEPROW) + + PWM_init();//DDS初始化 + set90(2); //初始设置相位 + setRng(1); //初始设置量程 + setGain(1); //初始设置增益 + setF(1); //DDS初始设置为1kHz + + while(1){ + //显示disp + nn++; + dispN=(++dispN)%4; //扫描器移动 + ds0=ds1=ds2=ds3=0; + if(dispN==0) ds0=1; + if(dispN==1) ds1=1; + if(dispN==2) ds2=1; + if(dispN==3) ds3=1; + P0=~disp[dispN]; //显示 + //扫描键盘 + //键盘响应 + //key = (~P3)&0xfc; + key = ~P3; + if(key&&kn<255) kn++; else kn=0; + for(i=0;key;i++) key/=2; key=i; + if(kn==20) spkN=50; else key=0; //当按下一定时间后,key才有效,否则无效。spkN发声时长设置 + if(spkN) spkN--, spk=0; else spk=1; //键盘发声 + //菜单系统 + if(key==8) { menu=0; key=0; XRQ=-1;} //菜单键 + if(menu>=1&&menu<=4){ + if(key==7) setRng2(); //量程步进 + if(key==6) setF(-1); //设置频率 + } + if(menu==0){ //显示量程和菜单 + showDig(10000); + if(key>=1 && key<=7) menu = key, menu2 = 0; + key = 0; + } + if(menu==1){ //自动LCR测量(串联) + pau = 0; + if(XRQ==-1) XRQ=1, sfdw=1; + if(key==4) { //串并联切换 + if(binLian) { binLian=0; showMsg(122); } //转为串联 + else { binLian=1; showMsg(241); } //转为并联 + } + if(key==1) { if(XRQ==0) sfdw++; else sfdw=1; XRQ = 0; } + if(key==2) { if(XRQ==1) sfdw++; else sfdw=1; XRQ = 1; } + if(key==3) { if(XRQ==2) sfdw++; else sfdw=1; XRQ = 2; } + if(key==5) XRQ = 3; + sfdw %= 2; + showR(XRQ,binLian); + if(binLian && nn%512<50) { for(i=0;i<4;i++) disp[i] |= 4; } + } + if(menu==2){ //显示增益档位 + showDig(Vga[0]*100+Vga[2]+10000); + disp[1]=disp[3]=0; + } + if(menu==3){ //手动调试 + pau = 1; + if(key==1) { setGain2(); showMsg( zk[curGain] );} //增益控制 + if(key==2) { }; + if(key==3) { K3=~K3; showMsg(zk[K3]); } //切换上下臂 + if(key==4) { set902(); showMsg(zk[xw]); } //相位旋转 + if(nn%64==0) { showDig( getAD10()); disp[1]+=4; } + } + if(menu==7){ //设置零点偏移数 + char *p,bc=1, feqD=1,rngD=1; + static char kc=0, mo=0; + if(menu2==0) p = cs.zo+0, feqD=0, rngD=2; //100Hz零点校准,接入10欧电阻 + if(menu2==1) p = cs.zo+1, feqD=1, rngD=2; //1kHz零点校准,接入10欧电阻 + if(menu2==2) p = cs.zo+2, feqD=2, rngD=2; //7.8kHz零点校准,接入10欧电阻 + if(menu2==3) p = cs.J+0, feqD=2, rngD=0; //VI变换器相位校准,接入20电阻 + if(menu2==4) p = cs.J+1, feqD=2, rngD=1; //VI变换器相位校准,接入1k电阻 + if(menu2==5) p = cs.J+2, feqD=2, rngD=2; //VI变换器相位校准,接入10k电阻 + if(menu2==6) p = cs.J+3, feqD=2, rngD=3; //VI变换器相位校准,接入100k电阻 + if(menu2==7) p = &cs.j1, feqD=2, rngD=1; //运放3倍档相位校准,接入3.3k电阻 + if(menu2==8) p = &cs.j2, feqD=2, rngD=1; //运放10倍档相位校准,接入10k电阻 + if(menu2==9) p = cs.R+0, bc=2, feqD=1, rngD=0; //VI变换器模值校准,接入20欧 + if(menu2==10) p = cs.R+1, bc=2, feqD=1, rngD=1; //VI变换器模值校准,接入1k欧 + if(menu2==11) p = cs.R+2, bc=2, feqD=1, rngD=2; //VI变换器模值校准,接入10k欧 + if(menu2==12) p = cs.R+3, bc=2, feqD=1, rngD=3; //VI变换器模值校准,接入100k欧 + if(menu2==13) p = &cs.g1, bc=2, feqD=1, rngD=1; //运放3倍增益校准,接入2k欧电阻 + if(menu2==14) p = &cs.g2, bc=2, feqD=1, rngD=1; //运放10倍增益校准,接入10k欧电阻 + if(key==1) *p += bc; //X键增 + if(key==2) *p -= bc; //R键减 + if(key==3) { cs_RW(1); setF(feqK); } //L键保存 + if(key==4) *p = 0; //C键清除 + if(key==5) { if(menu2==0) menu2=14; else menu2--; mo=0; showMsg(menu2<9?zk[menu2]:zk[menu2-6]+4); } + if(key==6) { if(menu2==14)menu2=0; else menu2++; mo=0; showMsg(menu2<9?zk[menu2]:zk[menu2-6]+4); } + if(key==7) mo = (mo+1)%2; + if(key==4){ //恢复到默认值 + if(++kc==5){ + kc = 0; + cs.j1 = 16, cs.j2 = 18; + cs.g1 = 0, cs.g2 = 0; + cs.zo[0] = 15; + cs.zo[1] = 17; + cs.zo[2] = 15; + cs.J[0] = cs.J[1] = cs.J[2] = 0, cs.J[3] = 20; + cs.R[0] = cs.R[1] = cs.R[2] = cs.R[3] = 0; + } + } + else { if(key) kc=0; } + if(mo){ + if(feqD!=feqK) setF(feqD); + if(rngD!=rng) setRng(rngD); + if(menu2>=3 && menu2<=8) showR(3,1); //显示Q + else showR(1,1); //显示电阻 + }else{ + sfdw = 0; + showDig(abs(*p)); + if(*p<0) disp[3] = 16; + } + } + delay(4000); + }//while end +} + + diff --git a/uu1602.hex b/uu1602.hex new file mode 100644 index 0000000..b3cd915 --- /dev/null +++ b/uu1602.hex @@ -0,0 +1,781 @@ +:102050005A70005A73004C435220322E3000584AB6 +:10206000572050757469616E2C32303131004D65E6 +:102070006E753A202031204C435200332054657352 +:10208000742C37205365740075703A002064773AD9 +:10209000002078773D00204B333D002047613D0014 +:1020A0005A30203A203230005A31203A2032300063 +:1020B0005A32203A203230005231583A2032300021 +:1020C0005232583A20316B005233583A31306B005B +:1020D0005234583A2E314D004731583A336B330061 +:1020E0004732583A31306B005231203A20323000BA +:1020F0005232203A20316B005233203A31306B009B +:102100005234203A2E314D004731203A336B3300A0 +:102110004732203A31306B00583A2B20523A2D008A +:10212000706E756D6F6B4D47202B2020202020FF97 +:10213000FFFFFFFFFFFEFEFDFCFCFBFAF9F8F7F6E0 +:10214000F5F3F2F0EFEDECEAE8E6E5E3E1DEDCDA08 +:10215000D8D6D3D1CECCC9C7C4C2BFBCB9B7B4B12D +:10216000AEABA8A5A29F9C999693908C89868380FC +:102170007D7A7774706D6A6764615E5B5855524F03 +:102180004C494744413E3C393734322F2D2A2826CA +:1021900024221F1D1B1A1816141311100E0D0B0AE2 +:1021A00009080706050404030202010101010101F7 +:1021B0000101010101020203040405060708090ADE +:1021C0000B0D0E1011131416181A1B1D1F22242696 +:1021D000282A2D2F323437393C3E414447494C4F51 +:1021E0005255585B5E6164676A6D7074777A7D8062 +:1021F0008386898C909396999C9FA2A5A8ABAEB13B +:10220000B4B7B9BCBFC2C4C7C9CCCED1D3D6D8DA53 +:10221000DCDEE1E3E5E6E8EAECEDEFF0F2F3F5F61B +:10222000F7F8F9FAFBFCFCFDFEFEFFFFFFFFFF00E5 +:10223000000000000000000000000000000000009E +:10224000000000000000000000000000000000008E +:10225000000000000000000000000000000000007E +:10226000000000000000000000000000000000006E +:10227000000000000000000000000000000000005E +:10228000000000000000000000000000000000004E +:10229000000000000000000000000000000000003E +:1022A000000000000000000000000000000000012D +:1022B000010101010101010101010101010101010E +:1022C00001010101010101010101010101010101FE +:1022D00001010101010101010101010101010101EE +:1022E00001010101010101010101010101010101DE +:1022F00001010101010101010101010101010101CE +:1023000001010101010101010101010101010101BD +:1023100001010101010101010101010101010101AD +:102320000101010101010101010101010101013F5F +:10233000800000404000004110000041D8000041F2 +:10234000A00000447A0000461C400047C35000FF34 +:1023500020A0FF20A8FF20B0FF20B8FF20C0FF2052 +:10236000C8FF20D0FF20D8FF20E0FF20E8FF20F0AA +:0C237000FF20F8FF2100FF2108FF2110D2 +:10294F00410078014100C8008209000082030100A4 +:10295F00820503E8440070447A00008102004100C0 +:10296F00C9004100870181080148007F0000000075 +:10297F000000000044007A000100014400740101CE +:10298F000101410088004100790041007E0081076C +:0B299F000641006F0181000081010073 +:082A51009280D28474FFFFFEA5 +:102A5900C3EE64809480500FE4FCFD0DBD00010CB1 +:102A6900ED641E4C70F522EF4E700EFCFD0DBD009D +:102A7900010CED64964C70F522EF4E6015E4FBFAFB +:102A89000BBB00010ABA0BF8BBB8F5EF1F70EA1EC1 +:022A990080E7D4 +:012A9B002218 +:062872007B057D307F04B0 +:102878007854EFF208EBF2A905C28418E2FF75F06C +:1028880002120E3FAEF0EE24FF9286EFA2E713FF8E +:1028980075F002120E3FAFF0EF24FF9285E9A2E433 +:1028A8009283A2E59282A2E6928133122A51C284CF +:1028B8007854E2B40403088016E9139283E9A2E18C +:1028C8009282A2E29281A2E3122A51C2847855E24E +:0928D800FF3395E0FE122A59229B +:102AE0007F147E00122A597B091228741228721250 +:102AF00028727B057D207F041228787B057D28E4E1 +:102B0000FF1228787B057D0CE4FF1228787B057D79 +:0F2B100080E4FF1228787B057D01E4FF0228781E +:092D84007B027D01E4FF022878C6 +:082D9600E4FB7D0CFF0228782C +:082D0D009000F612105DE4FFD6 +:0A2D1500EF2480FDE4FBFF022878A4 +:0A2D7A00EF24C0FDE4FBFF022878FF +:042D6000E02430FF3C +:092D6400AD07E4FB7F01022878B1 +:102C44007823EBF208EAF208E9F27823E2FB08E2DF +:102C5400FA08E2F9120E61FD6014E4FB7F01122808 +:0F2C6400787825E22401F218E23400F280DC22B5 +:102D1F00E4FDFCC3ED9FEC9E50070DBD00010C8040 +:012D2F00F2B1 +:012D30002280 +:102C9800AB07AA06D3EB9400EA9400400E7F107E9F +:0C2CA80027122D1FEB1B70EC1A80E92294 +:102CB4007401A807088002C333D8FCF59DEF248073 +:092CC400F5BC7F017E00022D1F0A +:10001E0043BC08E5BC30E4FB53BCE7AFBDEF75F065 +:0D002E0004A4ADBE7C002DFFEC35F0FE22D9 +:062B1F0015081508150859 +:102B2500A80808E4F208F2A808F2A808E2C364803D +:102B3500948A501512001EA8080808E22FF218E220 +:102B45003EF2A808E204F280E1A80808E2FE08E2E5 +:012B5500FF80 +:072B5600050805080508222F +:0E2D5200E4F5C5F5C7F5C675C4FF75C3FF22CD +:100003008FC4EEF5C375C78175C50175C65A75C62C +:07001300A5122D52AFC2221D +:102CCD008DC28FC4EEF5C375C78175C50275C65A21 +:062CDD0075C6A5022D5290 +:102CF9008FC4EEF5C375C78175C50375C65A75C608 +:042D0900A5022D52A0 +:1029AB0078217401F2087400F2087489F2EF602840 +:1029BB00E4FFFE122CF9E4FCECFF7E007821E2FB35 +:1029CB0008E2FA08E2F98C82758300120E7AFD1286 +:1029DB002CCD0CECB40FE122E4FCECFF7E001200DA +:1029EB00037821E2FB08E2FA08E2F98C8275830096 +:0929FB00EF120EDB0CECB40FE14D +:012A040022AF +:0516D500782C121069E1 +:1016DA00E4783CF2087403F2087C007DFE7BFF7A12 +:1016EA002179287E007F02120E1978481210A6006E +:1016FA0000000178501210A63F800000E4FFFEFDB2 +:10170A00FC782CE2FB08E2F908E2FA08E2CBF812CC +:10171A000C0C501A783E742DF2782CE2FC08E2FD8B +:10172A0008E2FE08E2FF120C79782C121069E4FF35 +:10173A00FEFDFC7830E2FB08E2F908E2FA08E2CBA7 +:10174A00F8120C0C501A783F742DF27830E2FC082B +:10175A00E2FD08E2FE08E2FF120C79783012106905 +:10176A007830E2FC08E2FD08E2FE08E2FF782CE2AB +:10177A00FB08E2F908E2FA08E2CBF8120C0C600660 +:10178A004004782C80027830E2FC08E2FD08E2FE90 +:10179A0008E2FF784C1210697836E2FC08E2FD088C +:1017AA00E2FE08E2FFEC4D4E4F7003021942782C1C +:1017BA00E2FB08E2F908E2FA08E2CBF8C000C0014D +:1017CA00C002C003E4FBFAF97840C0007836E2FCB4 +:1017DA0008E2FD08E2FE08E2FFD000120B6FD00318 +:1017EA00D002D001D000120975782C121069782C19 +:1017FA00E2FC08E2FD08E2FE08E2FFC004C005C000 +:10180A0006C0077836E2FC08E2FD08E2FE08E2FFBD +:10181A007858121069782CE2FC08E2FD08E2FE080A +:10182A00E2FF122613C004C005C006C007E4FBFA93 +:10183A00797A7844C0007836E2FC08E2FD08E2FED4 +:10184A0008E2FFD000120B6FA804A905AA06AB078D +:10185A00D007D006D005D004120971A804A905AA98 +:10186A0006AB07D007D006D005D004120971782C30 +:10187A001210697830E2FB08E2F908E2FA08E2CBD2 +:10188A00F8C000C001C002C003E4FBFAF97840C006 +:10189A00007836E2FC08E2FD08E2FE08E2FFD0002A +:1018AA00120B6FD003D002D001D000120975783024 +:1018BA001210697830E2FC08E2FD08E2FE08E2FF55 +:1018CA00C004C005C006C0077836E2FC08E2FD087D +:1018DA00E2FE08E2FF78581210697830E2FC08E26A +:1018EA00FD08E2FE08E2FF122613C004C005C00686 +:1018FA00C007E4FBFA797A7844C0007836E2FC083B +:10190A00E2FD08E2FE08E2FFD000120B6FA804A96C +:10191A0005AA06AB07D007D006D005D00412097174 +:10192A00A804A905AA06AB07D007D006D005D0049B +:10193A001209717830121069783A7401F27848E223 +:10194A00FC08E2FD08E2FE08E2FFE47B0AFAF9F885 +:10195A00120FB57848121069783AE204F2E2B40438 +:10196A00DCE4783AF27850E2FC08E2FD08E2FE088C +:10197A00E2FF784CE2FB08E2F908E2FA08E2CBF867 +:10198A00120A66E4FBFA797A7844120C0C60025067 +:10199A00217850E2FC08E2FD08E2FE08E2FFE4FBDF +:1019AA00FA797A7844120B6F7850121069783CE20F +:1019BA0004F2783AE204F2E2B403AAE4783AF2785A +:1019CA0035E2FF783AE2FEC3EF6480F8EE6480986D +:1019DA0050547850E2FC08E2FD08E2FE08E2FF7883 +:1019EA004CE2FB08E2F908E2FA08E2CBF8120A66CE +:1019FA00E4FBFA7980783F120C0C6023402178507E +:101A0A00E2FC08E2FD08E2FE08E2FFE4FBFA797A6A +:101A1A007844120A667850121069783CE214F27817 +:101A2A003AE204F28099783A7401F27850E2FC08BA +:101A3A00E2FD08E2FE08E2FF784CE2FB08E2F90860 +:101A4A00E2FA08E2CBF8120A66C004C005C006C072 +:101A5A00077848E2FC08E2FD08E2FE08E2FFEC1221 +:101A6A000C8AA804A905AA06AB07D007D006D00598 +:101A7A00D004120C0C602D402B7850E2FC08E2FDD9 +:101A8A0008E2FE08E2FFE4FBFA79207841120A66CE +:101A9A007850121069783DE214F2783AE204F2E2E0 +:101AAA0064047087E4783AF2783AE2FFC364809477 +:101ABA00824003021BB3EF7850600FE2FC08E2FD9C +:101ACA0008E2FE08E2FF7830800DE2FC08E2FD0839 +:101ADA00E2FE08E2FF782CE2FB08E2F908E2FA08E3 +:101AEA00E2CBF8120A66120CC878401210697848DC +:101AFA00E2FC08E2FD08E2FE08E2FF7844121069FF +:101B0A00783AE2243EF8E2FF122D64E4783BF27858 +:101B1A0044E2FB08E2F908E2FA08E2CBF8C00078EE +:101B2A0040E2FC08E2FD08E2FE08E2FFD000122AC9 +:101B3A009CEF2430FF122D64783DE2FF783BE2B53A +:101B4A0007057F2E122D647840E2FC08E2FD08E2C8 +:101B5A00FE08E2FF08E2FB08E2F908E2FA08E2CB33 +:101B6A00F8122A9CAC00AD01AE02AF037840121005 +:101B7A00697844E2FC08E2FD08E2FE08E2FFE47B41 +:101B8A000AFAF9F8122A9C7844121069783BE2049E +:101B9A00F2E2C3648094845003021B197834E26031 +:101BAA0008783AE204F2021AB2783CE2FF3395E08E +:101BBA00FE74242FF58274213EF583E493FF022DEF +:011BCA0064B6 +:102BD400C004C005C006C00778301210A60000006B +:102BE40000E47834F27827E27835F27828E2FC08B9 +:102BF400E2FD08E2FE08E2FF7836121069D007D041 +:082C040006D005D0040216D52C +:0A2800007821EEF208EFF208EDF285 +:10280A00E408F2087C007DFE7BFF7A21792AFE7FAC +:10281A0005120E197822E2700218E260367821E277 +:10282A00FA08E2FB7C007D0AFFAE02120EFDED24DF +:10283A0030FF7824E22425F8EFF27C007D0AAF030A +:10284A00AE02120EFD7821EEF208EFF27824E204CD +:10285A00F280C17823E2600F2424F8E2FF122D648B +:07286A007823E214F280EC78 +:012871002244 +:102CE30075D902E4F5F9F5E975FAC075EAC075DA44 +:062CF30053D2BFD2AF2254 +:03003B00022A0591 +:102A0500C0E0C083C082C0D075D000C000C006C081 +:012A150007B9 +:102A1600C2D87809E2FF7802E22FFEEF90212F93C9 +:102A2600F5FAAF06EF90222F9324FF929208E2FE6A +:0C2A360008E2FF780AE22FF218E23EF2FC +:0F2A4200D007D006D000D0D0D082D083D0E032E1 +:1028E1007822EEF208EFF218E2FC08E2FD7805EC3E +:1028F100F208EDF2E4120C8FE4FBFA7980784712CA +:102901000A667B007A2479747847120B6F120CC81F +:102911007803EEF208EFF2FDAC06E4120C8F7B00B7 +:102921007A2479747847120A66E4FBFA7980784749 +:10293100120B6F90007012105DE47809F208F278C2 +:0E29410023E2700218E27003C2DE22D2DE2210 +:102B5D00EF75F004120E3FAFF0C3EF648094805018 +:102B6D000474042FFFEF70037802F2EFB4010578BF +:102B7D00027440F2EFB4020578027480F2EFB403F0 +:0C2B8D0005780274C0F29000C9EFF0223D +:092D8D009000C9E004FF022B5D77 +:102C7300EF7004C2A2C2A1EFB40104C2A2D2A1EFB9 +:102C8300B40204D2A2C2A1EFB40304D2A2D2A1908F +:052C93000087EFF022B4 +:102D3100900087E004FF75F004120E3FAFF0022C03 +:012D4100731E +:102C0C00D3EF6480948340027F03C3EF648094808D +:102C1C005002E4FFEF7004C296C294EFB40104C2F8 +:102C2C0096D294EFB40204D296C294EFB40304D2B9 +:082C3C0096D2947808EFF22211 +:102D42007808E204FF75F004120E3FAFF0022C0C7B +:102779007821EFF2BFFF27E4F27805E2FE08E2FFD5 +:1027890064644E7004782104F2BE0308BFE805783A +:10279900217402F2BE1E07BF8504E47821F2782174 +:1027A900E290006FF0700F7F64FE1228E1C295D2AB +:1027B900A07807740CF27821E2B401107FE87E0357 +:1027C9001228E1C295C2A078077406F27821E2B412 +:1027D90002107F857E1E1228E1D295C2A078077467 +:1027E90006F2758D2F758BABE4900079F090008817 +:0727F900F07809F208F2225A +:0B2B9900E0FEA3E0FFA3E0FCA3E0FDD2 +:102BA400C3EE648094805007C3E49FFFE49EFEC399 +:102BB400EC648094805007C3E49DFDE49CFCD3ED59 +:102BC4009FEE6480F8EC6480984004AE04AF052264 +:0A003E00780CEBF208EAF208E9F290 +:10004800900096E0FF3395E0FEA3E0FD3395E0FCD9 +:10005800EF2DFFEE3C9000CAF0A3EFF090008CE08B +:10006800FF3395E0FEA3E0FD3395E0FCEF2DFFEEB6 +:100078003C9000CCF0A3EFF0A31210750000000034 +:100088009000D612107500000000780CE2FB08E220 +:10009800FA08E2F9900006120F7DFDACF0EC120CA4 +:1000A8008FC004C005C006C007780CE2FB08E2FA5E +:1000B80008E2F9900006120F7DFDACF0EC120C8FEF +:1000C800D003D002D001D000120A66C004C005C017 +:1000D80006C007780CE2FB08E2FA08E2F99000048F +:1000E800120F7DFDACF0EC120C8FC004C005C006E9 +:1000F800C007780CE2FB08E2FA08E2F99000041263 +:100108000F7DFDACF0EC120C8FD003D002D001D0E3 +:1001180000120A66D003D002D001D00012097590EF +:1001280000DA12105D780CE2FB08E2FA08E2F990B6 +:100138000006120F7DFDACF0EC120C8FC004C00558 +:10014800C006C007780CE2FB08E2FA08E2F9900062 +:1001580002120F7DFDACF0EC120C8FD003D002D050 +:1001680001D000120A66C004C005C006C007780C9A +:10017800E2FB08E2FA08E2F9900004120F7DFDACF8 +:10018800F0EC120C8FC004C005C006C007780CE262 +:10019800FB08E2FA08E2F9120F52FDACF0EC120C7F +:1001A8008FD003D002D001D000120A66D003D0024B +:1001B800D001D000120975120C799000DE12105D82 +:1001C800780CE2FB08E2FA08E2F9900002120F7DCF +:1001D800FDACF0EC120C8FC004C005C006C0077857 +:1001E8000CE2FB08E2FA08E2F9900004120F7DFD28 +:1001F800ACF0EC120C8FD003D002D001D000120A60 +:1002080066C004C005C006C007780CE2FB08E2FA25 +:1002180008E2F9900006120F7DFDACF0EC120C8F8D +:10022800C004C005C006C007780CE2FB08E2FA0863 +:10023800E2F9120F52FDACF0EC120C8FD003D00291 +:10024800D001D000120A66A804A905AA06AB07D0F7 +:1002580007D006D005D004120971120C799000E27B +:1002680012105D9000DAE0F8A3E0F9A3E0FAA3E049 +:10027800FBC000C001C002C003780FE2FB08E2FA2D +:1002880008E2F9900002120E7AFF3395E0FEEF784B +:1002980002C333CE33CED8F9242FF58274233EF52A +:1002A8008312104DC000C001C002C003780FE2FBEA +:1002B80008E2FA08E2F9120E61FF3395E0FEEF78E2 +:1002C80002C333CE33CED8F9242FF58274233EF5FA +:1002D8008312103DD003D002D001D000120B6FD092 +:1002E80003D002D001D000120A669000DA12105D25 +:1002F8009000DAE0FCA3E0FDA3E0FEA3E0FFC00469 +:10030800C005C006C007900087E0FF3395E0FE7483 +:10031800922FF58274003EF583E0FC120C947B006A +:100328007A40791C7846120B6FE4FBFA7980783FA3 +:10033800120975C004C005C006C007900087E0FF19 +:100348003395E0FEEF7802C333CE33CED8F9243F9D +:10035800F58274233EF58312104DD007D006D005E0 +:10036800D004120A66A804A905AA06AB07D007D0CC +:1003780006D005D004120B6F9000DA12105D780FCA +:10038800E2FB08E2FA08E2F9120E61B4015E90009D +:10039800CEE0F8A3E0F9A3E0FAA3E0FBC000C001B7 +:1003A800C002C00390008CE0FC120C94D003D00271 +:1003B800D001D0001209759000CE12105D9000D6C1 +:1003C800E0F8A3E0F9A3E0FAA3E0FBC000C001C095 +:1003D80002C003900096E0FC120C94D003D002D027 +:1003E80001D0001209759000D612105D780FE2FB5B +:1003F80008E2FA08E2F9120E61B4025E9000CEE05B +:10040800F8A3E0F9A3E0FAA3E0FBC000C001C00232 +:10041800C00390008DE0FC120C94D003D002D001F0 +:10042800D0001209759000CE12105D9000D6E0F849 +:10043800A3E0F9A3E0FAA3E0FBC000C001C002C03A +:1004480003900097E0FC120C94D003D002D001D0A6 +:10045800001209759000D612105D780FE2FB08E2D1 +:10046800FA08E2F9120E61B403669000CEE0F8A330 +:10047800E0F9A3E0FAA3E0FBC000C001C002C0039A +:100488009000CCE0FCA3E0FDEC120C8FD003D0026E +:10049800D001D0001209759000CE12105D9000D6E0 +:1004A800E0F8A3E0F9A3E0FAA3E0FBC000C001C0B4 +:1004B80002C0039000CAE0FCA3E0FDEC120C8FD050 +:1004C80003D002D001D0001209759000D612105D39 +:1004D800780FE2FB08E2FA08E2F9900002120E7ABD +:1004E800B4016E9000CEE0FCA3E0FDA3E0FEA3E023 +:1004F800FFC004C005C006C00790008CE0FC120CC9 +:1005080094A804A905AA06AB07D007D006D005D041 +:10051800041209719000CE12105D9000D6E0FCA381 +:10052800E0FDA3E0FEA3E0FFC004C005C006C007CD +:10053800900096E0FC120C94A804A905AA06AB0743 +:10054800D007D006D005D0041209719000D6121039 +:100558005D780FE2FB08E2FA08E2F9900002120E59 +:100568007AB4026E9000CEE0FCA3E0FDA3E0FEA307 +:10057800E0FFC004C005C006C00790008DE0FC1273 +:100588000C94A804A905AA06AB07D007D006D00585 +:10059800D0041209719000CE12105D9000D6E0FCD4 +:1005A800A3E0FDA3E0FEA3E0FFC004C005C006C0B1 +:1005B80007900097E0FC120C94A804A905AA06ABC2 +:1005C80007D007D006D005D0041209719000D612C2 +:1005D800105D780FE2FB08E2FA08E2F990000212D7 +:1005E8000E7AB403769000CEE0FCA3E0FDA3E0FE13 +:1005F800A3E0FFC004C005C006C0079000CCE0FC23 +:10060800A3E0FDEC120C8FA804A905AA06AB07D03D +:1006180007D006D005D0041209719000CE12105DE3 +:100628009000D6E0FCA3E0FDA3E0FEA3E0FFC00439 +:10063800C005C006C0079000CAE0FCA3E0FDEC12AC +:100648000C8FA804A905AA06AB07D007D006D005C9 +:10065800D0041209719000D612105D9000CEE0FC13 +:10066800A3E0FDA3E0FEA3E0FFC004C005C006C0F0 +:1006780007900087E0FF3395E0FE748E2FF58274B3 +:10068800003EF583E0FC120C94A804A905AA06AB69 +:1006980007D007D006D005D0041209719000CE12F9 +:1006A800105D9000CEE0F8A3E0F9A3E0FAA3E0FB28 +:1006B800C000C001C002C0037B007A2879F47845E5 +:1006C800900070E0FCA3E0FDA3E0FEA3E0FF120BA6 +:1006D8006FE4FBFA797A7844120B6FD003D002D01A +:1006E80001D000120A669000CE12105D9000CEE094 +:1006F800FCA3E0FDA3E0FEA3E0FFA804A905AA0669 +:10070800FB120A66E4FBFAF97840120B6FA804A9F9 +:1007180005AA06AB07E4FFFE7D807C3F12097190B5 +:1007280000D212105D9000DAE0F8A3E0F9A3E0FA35 +:10073800A3E0FBC000C001C002C0037B007A40797F +:100748001C78469000D6E0FCA3E0FDA3E0FEA3E001 +:10075800FF120B6FE4FBFA7980783F120975D0031A +:10076800D002D001D000120A669000DA12105D9013 +:1007780000CEE0FCA3E0FDA3E0FEA3E0FF9000E2D2 +:10078800E0F8A3E0F9A3E0FAA3E0FB120A66C004CC +:10079800C005C006C0079000D2E0FCA3E0FDA3E0BE +:1007A800FEA3E0FF9000DEE0F8A3E0F9A3E0FAA3DF +:1007B800E0FB120A66D003D002D001D00012097102 +:1007C8009000E612105D9000D2E0FCA3E0FDA3E0EB +:1007D800FEA3E0FF9000E2E0F8A3E0F9A3E0FAA3AB +:1007E800E0FB120A66C004C005C006C0079000CE30 +:1007F800E0FCA3E0FDA3E0FEA3E0FF9000DEE0F84C +:10080800A3E0F9A3E0FAA3E0FB120A66D003D00242 +:10081800D001D0001209759000E212105D9000E638 +:10082800E0FCA3E0FDA3E0FEA3E0FF9000DE1210D1 +:100838005D78127401F27812E2F9C36480948440FE +:1008480003020932E9FF3395E0FEEF7802C333CEA5 +:1008580033CED8F92494F58274003EF583E0FCA3E6 +:10086800E0FDA3E0FEA3E0FFC004C005C006C0078A +:100878007812E2FF3395E0FEEF7802C333CE33CE31 +:10088800D8F9FBAA062498F58274003AF583D007B4 +:10089800D006D005D00412105D74A42BF582740024 +:1008A8003AF583E0FCA3E0FDA3E0FEA3E0FFC0046B +:1008B800C005C006C0077812E2FF3395E0FEEF7866 +:1008C80002C333CE33CED8F9FBAA0624A8F5827426 +:1008D800003AF583D007D006D005D00412105D7415 +:1008E800B42BF58274003AF583E0FCA3E0FDA3E0A5 +:1008F800FEA3E0FFC004C005C006C0077812E2FFEF +:100908003395E0FEEF7802C333CE33CED8F924B85E +:10091800F58274003EF583D007D006D005D00412C6 +:10092800105D7812E204F202083E9000DAE0FCA3BF +:10093800E0FDA3E0FEA3E0FF90009812105D900098 +:10094800DEE0FCA3E0FDA3E0FEA3E0FF9000A81218 +:10095800105D9000E2E0FCA3E0FDA3E0FEA3E0FF51 +:060968009000B802105DD2 +:03001B0002237C41 +:10237C00C0E0C0F0C083C082C0D075D000C000C027 +:0D238C0001C002C003C004C005C006C007A8 +:10239900E4FFFE900079E004F07807E2FDE0C39DD8 +:1023A9004009E4F0900088E004F00F900088E0C351 +:1023B90094044002E4F090007EE06003022514EFEB +:1023C9004E7003022514122B1F90006FE0FD339508 +:1023D900E0FC74892DF58274003CF583E0FD3395AA +:1023E900E0FCC3EF9DFFEE9CFE9000C9E0C3648052 +:1023F90094825006AC06AD078007C3E49FFDE49EB6 +:10240900FC900088E0FB25E0247FF582E43400F5A8 +:1024190083ECF0A3EDF07808E2FD74742BF582E407 +:102429003400F583EDF0C3EE6480948050047D029E +:1024390080027D00900088E0FC247AF582E4340073 +:10244900F583E02DF0747A2CF582E43400F583E00D +:10245900FD75F004120E3FADF0EDF0EC640160057E +:10246900EC6403707B900088E0B4010FD297900070 +:1024790083122B99900076E0780BF2900088E0B4F3 +:10248900030FC29790007F122B99900074E0780B8C +:10249900F2D3EF9480EE648094A54007780BE214A0 +:1024A900F28036C3EF9440EE648094815008780B33 +:1024B900E22403F28023C3EF94C0EE648094835036 +:1024C90008780BE22402F28010C3EF9440EE648096 +:1024D900948B5005780BE204F2780BE2FF122C0C76 +:1024E900900088E0045403247AF582E43400F583EB +:1024F900E0FF122B5D780F7401F2087400F2087482 +:0B25090074F27B017A00797F12003E23 +:10251400D007D006D005D004D003D002D001D0001B +:0B252400D0D0D082D083D0F0D0E032C5 +:041BCB007821EFF29C +:101BCF009000EA121075000000009000EE121075E0 +:101BDF00000000009000F212107500000000E47881 +:101BEF0022F29000EAE0F8A3E0F9A3E0FAA3E0FB09 +:101BFF00C000C001C002C0037822E2FF3395E0FEAF +:101C0F00EF7802C333CE33CED8F92498F58274001F +:101C1F003EF583E0FCA3E0FDA3E0FEA3E0FFE4FBC1 +:101C2F00FA79807840120B6FD003D002D001D00028 +:101C3F001209759000EA12105D9000EEE0F8A3E033 +:101C4F00F9A3E0FAA3E0FBC000C001C002C0037813 +:101C5F0022E2FF3395E0FEEF7802C333CE33CED8C6 +:101C6F00F924A8F58274003EF583E0FCA3E0FDA300 +:101C7F00E0FEA3E0FFE4FBFA79807840120B6FD00F +:101C8F0003D002D001D0001209759000EE12105D42 +:101C9F009000F2E0F8A3E0F9A3E0FAA3E0FBC000A4 +:101CAF00C001C002C0037822E2FF3395E0FEEF7857 +:101CBF0002C333CE33CED8F924B8F58274003EF583 +:101CCF0083E0FCA3E0FDA3E0FEA3E0FFE4FBFA79D1 +:101CDF00807840120B6FD003D002D001D0001209D0 +:101CEF00759000F212105D7822E204F2E264046053 +:101CFF0003021BF17FDA7E0F7DC97C40900070E0FC +:101D0F00F8A3E0F9A3E0FAA3E0FB120A669000FA49 +:101D1F0012105DE4FF122D7A7806E26464700218E7 +:101D2F00E270057F41122D647806E2B4E80A18E2EA +:101D3F00B403057F42122D647806E2B4850A18E2D7 +:101D4F00B41E057F43122D64900087E02431FF12EB +:101D5F002D647821E27003021E879000F2E0FCA34D +:101D6F00E0FDA3E0FEA3E0FFA804A905AA06FB126D +:101D7F000A66C004C005C006C0079000EEE0FCA3D1 +:101D8F00E0FDA3E0FEA3E0FFA804A905AA06FB124D +:101D9F000A66D003D002D001D0001209759000EA74 +:101DAF00E0F8A3E0F9A3E0FAA3E0FB120B6F122D0A +:101DBF000D7BFF7A207950122C449000EEE0F8A3AF +:101DCF00E0F9A3E0FAA3E0FB9000F6E0FCA3E0FD4E +:101DDF00A3E0FEA3E0FF120B6FC004C005C006C056 +:101DEF000778277401F2081210A638D1B717D00759 +:101DFF00D006D005D004122BD49000F2E0F8A3E067 +:101E0F00F9A3E0FAA3E0FBA3E0FCA3E0FDA3E0FE4F +:101E1F00A3E0FF120B6FC004C005C006C0077827F0 +:101E2F007401F2081210A638D1B717D007D006D018 +:101E3F0005D004122BD47F02122D7AE4FFFEFDFC95 +:101E4F009000F2E0F8A3E0F9A3E0FAA3E0FB120C94 +:101E5F000C9000F2E05013FCA3E0FDA3E0FEA3E022 +:101E6F00FF120C799000F6021F3CF8A3E0F9A3E0F3 +:101E7F00FAA3E0FBA3021F8C9000EAE0FCA3E0FDB5 +:101E8F00A3E0FEA3E0FF122D0D7BFF7A2079531202 +:101E9F002C449000F6E0F8A3E0F9A3E0FAA3E0FBEE +:101EAF009000EEE0FCA3E0FDA3E0FEA3E0FF120B29 +:101EBF006FC004C005C006C0079000F6E0F8A3E0AD +:101ECF00F9A3E0FAA3E0FB9000F2E0FCA3E0FDA38E +:101EDF00E0FEA3E0FF120B6F7830121069783474B4 +:101EEF0001F208F2081210A638D1B717D007D006A2 +:101EFF00D005D0041216D57FF4122D647F02122D57 +:101F0F007AE4FFFEFDFC9000F2E0F8A3E0F9A3E015 +:101F1F00FAA3E0FB120C0C9000F6E05053FCA3E088 +:101F2F00FDA3E0FEA3E0FF120C799000F2E0F8A30E +:101F3F00E0F9A3E0FAA3E0FB120B6F9000FAE0F8D0 +:101F4F00A3E0F9A3E0FAA3E0FB120B6FC004C005F6 +:101F5F00C006C00778277404F2081210A62834248C +:101F6F00DCD007D006D005D004122BD47F46804E8C +:101F7F00F8A3E0F9A3E0FAA3E0FB9000F2E0FCA3E2 +:101F8F00E0FDA3E0FEA3E0FF120B6F9000FAE0F874 +:101F9F00A3E0F9A3E0FAA3E0FB120B6FC004C005A6 +:101FAF00C006C00778277402F2081210A6322BCC95 +:101FBF0077D007D006D005D004122BD47F48122D2E +:101FCF00649000EEE0FCA3E0FDA3E0FEA3E0FFECD5 +:101FDF004D4E4F60459000EEE0F8A3E0F9A3E0FA14 +:101FEF00A3E0FBA3E0FCA3E0FDA3E0FEA3E0FF1250 +:101FFF000B6F122D6D9000F212105D7F007EC07D71 +:10200F00797C449000F2E0F8A3E0F9A3E0FAA3E0B2 +:10201F00FB120C0C600E400C80009000F212107539 +:10202F004479C000E47827F2081210A600000000DF +:10203F009000F2E0FCA3E0FDA3E0FEA3E0FF022B83 +:01204F00D4BC +:10119900E47813F208F208F208F208F208F208F209 +:1011A90008F2122AE0122D967BFF7A207956122C2A +:1011B90044E4FF122D7A7BFF7A20795E122C447F5A +:1011C900507E00122C98E4FF1229ABE4F58875894A +:1011D90012F58DF58BD28EC28CD2ABD2A9D2AFD2F9 +:1011E900B9FF122CB47596FF7592FC75910375A021 +:1011F9000F122CE37F02122B5D7F01122C73122C2C +:101209000C7F011227797819E22401F218E23400DF +:10121900F2E5B0F47815F2E2600C18E2C394FF50DD +:1012290005E204F28004E47814F2E47813F2781504 +:10123900E2FF600AC313F27813E204F280F0781334 +:10124900E27815F218E2B404077817740AF28004F8 +:10125900E47815F27817E26007E214F2C2A380027B +:10126900D2A37815E2B40822122D847BFF7A207963 +:101279006E122C44E4FF122D7A7BFF7A20797B12BF +:101289002C44E4900078F07815F2900078E0FFC3E0 +:101299009401401AEFD3940450147815E2B407036B +:1012A900122D317815E2B406057FFF1227799000D7 +:1012B90078E070257815E26003122D847815E2FF35 +:1012C900C394014010EFD39407500A900078EFF0CF +:1012D900E49000C8F0E47815F2900078E0B40119C0 +:1012E900E490007EF07815E2B40107781AE204541C +:1012F90001F2781AE2FF121BCB900078E0640270C9 +:1013090022FF122D157BFF7A207988122C44900038 +:1013190074122D607BFF7A20798C122C4490007610 +:10132900122D60900078E06403706D90007E04F0E7 +:101339007815E2B40103122D427815E2FFB40302D5 +:10134900B297EFB40403122D8DE4FF122D157BFF24 +:101359007A207991122C449000C9122D607BFF7A72 +:10136900207996122C443097047F3180027F301205 +:101379002D647BFF7A20799B122C447808E2243073 +:10138900FF122D64E4FF122D7A7819E2541F7008B8 +:10139900122B1F7D05122800900078E06407600376 +:0313A9000216CB5E +:1013AC00781E04F208F208F29000C8E0FF70167B79 +:1013BC0001781B04F2087400F2087489F2E4781FB7 +:1013CC00F2087402F2EFB40115781B7401F2087480 +:1013DC0000F208748AF2781F7401F20804F2EFB478 +:1013EC000214781B7401F2087400F208748BF27802 +:1013FC001F7402F208F2EFB40315781B7401F208A3 +:10140C007400F208748EF2781F7402F2E408F2EFA2 +:10141C00B40415781B7401F2087400F208748FF28E +:10142C00781F7402F20814F2EFB40514781B7401DF +:10143C00F2087400F2087490F2781F7402F208F249 +:10144C00EFB40615781B7401F2087400F20874915D +:10145C00F2781F7402F20804F2EFB40715781B74CB +:10146C0001F2087400F208748CF2781F7402F2080E +:10147C0014F2EFB40815781B7401F2087400F2082A +:10148C00748DF2781F7402F20814F2EFB409177815 +:10149C001B7401F2087400F2087492F2087402F2E0 +:1014AC000814F2E408F2EFB40A16781B7401F2087F +:1014BC007400F2087493F2087402F20814F208F241 +:1014CC00EFB40B17781B7401F2087400F2087494D3 +:1014DC00F2087402F20814F20804F2EFB40C187853 +:1014EC001B7401F2087400F2087495F2087402F28D +:1014FC000814F2087403F2EFB40D16781B7401F2A1 +:10150C00087400F2087496F2087402F20814F208D7 +:10151C00F2EFB40E16781B7401F2087400F2087422 +:10152C0097F2087402F20814F208F27815E2B4018A +:10153C0012781EE2FF781BE2FB08E2FA08E2F9EFF0 +:10154C00120EA77815E2B40217781BE2FB08E2FA38 +:10155C0008E2F9120E61FF08E2FEC3EF9E120EC9FB +:10156C007815E2B4030D7F011229AB90006FE0FFF8 +:10157C001227797815E2B4040E781BE2FB08E2FA24 +:10158C0008E2F9E4120EC97815E2FFB405159000D3 +:10159C00C8E07005740EF080069000C8E014F0E40A +:1015AC007801F2EFB406159000C8E0B40E04E4F034 +:1015BC0080069000C8E004F0E47801F27815E2B4FB +:1015CC0007117801E204FF75F002120E3FAFF078BC +:1015DC0001EFF27815E2FF6404704E7800E204F239 +:1015EC006405704CF290008C7410F0A37412F0E44B +:1015FC00900096F0A3F09000897414F0A314F0A35B +:10160C00740EF0E4900090F090008FF090008EF04B +:10161C009000917414F0E4900095F0900094F09088 +:10162C000093F0900092F08007EF6004E47800F2F1 +:10163C007801E2602590006FE0FE781FE2FF6E609B +:10164C0003122779900087E0FE7820E2FF6E60039A +:10165C00122C737F01121BCB8065122D84E4FF12B8 +:10166C002D159000C8E075F003A4244FF582E434E6 +:10167C0023F583E493FB740193FA740293F9122C0F +:10168C0044E4FF122D7A781BE2FB08E2FA08E2F937 +:10169C00120E61FC120C94C004C005C006C007E415 +:1016AC007827F2081210A600000000D007D006D050 +:0F16BC0005D004122BD47BFF7A217918122C440D +:0A16CB007F207E4E122D1F02120F29 +:10096E00020D34E86480F8E933E83360110460F076 +:10097E00ED33EC337009E8FCE9FDEAFEEBFF2204EF +:10098E0060DED3EB9FEA9EE99DE8C2E78CF0C2F7EA +:10099E0095F0400CE8CCF8E9CDF9EACEFAEBCFFBB6 +:1009AE00120CFF85D0F05804700320D5B3E8047004 +:1009BE00075002B2D5020D3E92D5EC0460F7E4CC9E +:1009CE00C0E0C398F8603B94186008400DD0E0FB7F +:1009DE00020D16E4FBFAC9FC8028E830E406E4C9EF +:1009EE00FBE4CAFCE830E305E4C9CACBFCE85407D3 +:1009FE006010F8C3E913F9EA13FAEB13FBEC13FCDE +:100A0E00D8F130F52FC3E49CFCEF9BFFEE9AFEED80 +:100A1E0099FDD0E0FBEF4E4D4C701222DB03020D20 +:100A2E003BEC2CFCEF33FFEE33FEED33FDED30E708 +:100A3E00EB020D16EF2BFFEE3AFEED39FDD0E0FB8B +:100A4E0050130BBB0003020D3EED13FDEE13FEEF34 +:080A5E0013FFEC13FC020D165E +:100A6600EC4D6011E8497017ED33EC3304600DE48A +:100A7600FCFFFEFD22E933E8330470F8020D341260 +:100A86000CFF58046009E4CC248150062850090262 +:100A96000D3E284003020D3BC0E0EB4A7044B9808E +:100AA60006D0E0FB020D2AEF4E701CBD8008EBFF5E +:100AB600EAFEE9FD80EBE98DF0A4FEE5F0020B4FBE +:100AC600E9CDF9EAFEEBFFEF89F0A4FCE5F0CE896B +:100AD600F0A42EFFE435F0CD89F0A42DFEE435F028 +:100AE6008067EF4E7005BD80D780C3EF8BF0A4AC56 +:100AF600F0EE8BF0A42CFCE435F0F8EF8AF0A42C91 +:100B0600E5F038FCE433CB8DF0A42CFCE5F03BF8A3 +:100B1600EE8AF0A42CFCE5F038F8E433CF89F0A493 +:100B26002CFCE5F038CF3400CE89F0A42FFFE5F099 +:100B36003EFEE433C98DF0A42EFEE5F039CD8AF0F1 +:100B4600A42FFFE5F03EFEE43DFD33D0E0FB500769 +:100B56000BBB000F020D3EEC2CFCEF33FFEE33FE19 +:060B6600ED33FD020D1647 +:100B6C00020D3EEC5D046005E859047003020D347F +:100B7C00120CFF580460F6EC4860F2EC7004FDFEB9 +:100B8C00FF22C860DB2481C85009C398600250065C +:100B9C00020D3B9850CAF582E9294B4A7005AB828D +:100BAC00020D2A75F0007C1A7880C3EF9BEE9AED4B +:100BBC0099400DC3EF9BFFEE9AFEED99FDE842F0D4 +:100BCC00DC23ACF0D0E0FFD0E0FED0E0FDAB822027 +:100BDC00E7101BEB60BAEC2CFCEF33FFEE33FEEDB1 +:100BEC0033FD020D16E803F830E705C0F075F00090 +:100BFC00EF2FFFEE33FEED33FD40B830E7C280AA95 +:100C0C0074F8CC6480CCC86480C8F582046043C39B +:100C1C00EB9FF5F0EA9E42F0E99D42F0E89C45F02E +:100C2C0060305018E5825FFFE582F42B5582FB5053 +:100C3C00210ABA001D09B90019088016E5825BFB70 +:100C4C00E582F42F5582FF50090EBE00050DBD0044 +:100C5C00010CC3EB9FF5F0EA9E42F0E99D42F0E8EF +:0D0C6C009C45F06007CC4820E701B3EC2266 +:100C7900ED33EC33600A047003BD8004ECB2E7FC89 +:010C89002248 +:100C8A0075F020800E75F010800575F0087D007EE5 +:100C9A00007F003392D530D503121004EC33401094 +:100CAA00EF33FFEE33FEED33FDEC33FCD5F0ED22EE +:0E0CBA00E5F0247EA2D513CC92E7CDCEFF222A +:100CC800EDD2E7CD33EC3392D524814006E4FFFE24 +:100CD800FDFC22FCE4CFCECDCC24E0501174FF8083 +:100CE800EDC3CC13CCCD13CDCE13CECF13CF047020 +:070CF800F030D5DE0210040C +:0D2D6D00ED33EC3360065004EC6480FC2272 +:102613007854121069E4FFFEFDFC7858E2FB08E2EF +:10262300F908E2FA08E2CBF8120C0C70030226E870 +:102633007858E2FC08E2FD08E2FE08E2FF122D6D85 +:1026430078601210697854E2FC08E2FD08E2FE08A3 +:10265300E2FF122D6D785C121069785CE2FC08E2EF +:10266300FD08E2FE08E2FF08E2FB08E2F908E2FAED +:1026730008E2CBF8120C0C700E7854E2FC08E2FD71 +:1026830008E2FE08E2FF22785CE2FC08E2FD08E2D1 +:10269300FE08E2FF08E2FB08E2F908E2FA08E2CBEF +:1026A300F8120C0C503E7858E2FB08E2F908E2FA03 +:1026B30008E2CBF8E8C0E07854E2FC08E2FD08E267 +:1026C300FE08E2FFD0E0F8120B6F7BFE7A00795C24 +:1026D30012252F7858E2FB08E2F908E2FA08E2CB68 +:0A26E300F8020A66E4FFFEFDFC2287 +:100CFF00E9D2E7C933E833F892D5EDD2E7CD33EC3B +:070D0F0033FC5002B2D522B3 +:100D1600EC30E7100FBF000C0EBE00080DBD00043E +:100D26000BEB6014A2D5EB13FCED92E7FD2274FFEA +:100D3600FCFDFEFF22E480F8A2D574FF13FC7D8043 +:030D4600E480EF57 +:10252F0078641210697868EBF208EAF208E9F2743D +:10253F00FFFFFEFDFC7864E2FB08E2F908E2FA080F +:10254F00E2CBF8C312101260387F807E967D187C24 +:10255F004B7864E2FB08E2F908E2FA08E2CBF812E2 +:10256F000C0C6002501B7F807E967D187CCB7864AC +:10257F00E2FB08E2F908E2FA08E2CBF8120C0C5081 +:10258F001F7864E2FC08E2FD08E2FE08E2FF08E2C1 +:10259F00FB08E2FA08E2F9121023E4FFFEFDFC2229 +:1025AF007864E2FC08E2FD08E2FE08E2FF120CC8C4 +:1025BF00786B121069786BE2FC08E2FD08E2FE0806 +:1025CF00E2FFEC120C8A7868E2FB08E2FA08E2F903 +:1025DF00121023786BE2FC08E2FD08E2FE08E2FF2E +:1025EF00EC120C8AECC0E0C9EDC9CAEECACBEFCB36 +:1025FF007864E2FC08E2FD08E2FE08E2FFD0E0F8B2 +:04260F001209712219 +:030000000226EDE8 +:0C26ED00787FE4F6D8FD758108022734E0 +:100D4900E709F608DFFA8046E709F208DFFA803E8C +:100D590088828C83E709F0A3DFFA8032E309F60879 +:100D6900DFFA8078E309F208DFFA807088828C83E1 +:100D7900E309F0A3DFFA806489828A83E0A3F60895 +:100D8900DFFA805889828A83E0A3F208DFFA804C6F +:100D990080D280FA80C680D4806980F28033801046 +:100DA90080A680EA809A80A880DA80E280CA8033AF +:100DB90089828A83ECFAE493A3C8C582C8CCC58327 +:100DC900CCF0A3C8C582C8CCC583CCDFE9DEE780F7 +:100DD9000D89828A83E493A3F608DFF9ECFAA9F076 +:100DE900EDFB2289828A83ECFAE0A3C8C582C8CCCC +:100DF900C583CCF0A3C8C582C8CCC583CCDFEADEE5 +:100E0900E880DB89828A83E493A3F208DFF980CC46 +:100E190088F0EF60010E4E60C388F0ED2402B4043F +:100E29000050B9F582EB2402B4040050AF232345E6 +:060E39008223900D997365 +:100E3F00C2D530F707B2D563F0FF05F030E70CB23B +:100E4F00D5F4048463F0FF05F080018430D502F4FB +:020E5F0004226B +:100E6100BB010689828A83E0225002E722BBFE028F +:090E7100E32289828A83E49322C2 +:100E7A00BB010CE58229F582E5833AF583E022502D +:100E8A0006E92582F8E622BBFE06E92582F8E22277 +:0D0E9A00E58229F582E5833AF583E4932291 +:100EA700BB010989828A83F8E028F022500327F7DB +:100EB70022BBFE05F8E328F3228A838982F8E493AC +:020EC7002822DF +:100EC900BB010689828A83F0225002F722BBFE0108 +:020ED900F32202 +:100EDB00F8BB010DE58229F582E5833AF583E8F04D +:100EEB00225006E92582C8F622BBFE05E92582C8F9 +:020EFB00F222E1 +:100EFD00BC000BBE0029EF8DF084FFADF022E4CCD9 +:100F0D00F875F008EF2FFFEE33FEEC33FCEE9DECA1 +:100F1D00984005FCEE9DFE0FD5F0E9E4CEFD22EDE7 +:100F2D00F8F5F0EE8420D21CFEADF075F008EF2F31 +:100F3D00FFED33FD4007985006D5F0F222C398FD22 +:050F4D000FD5F0EA22BF +:100F5200BB010A89828A83E0F5F0A3E0225006876A +:100F6200F009E71922BBFE07E3F5F009E31922892C +:0B0F7200828A83E493F5F0740193225F +:100F7D00BB0110E58229F582E5833AF583E0F5F0B2 +:100F8D00A3E0225009E92582F886F008E622BBFE8F +:100F9D000AE92582F8E2F5F008E222E5832AF583D5 +:080FAD00E993F5F0A3E993229A +:100FB500E88FF0A4CC8BF0A42CFCE98EF0A42CFCDB +:100FC5008AF0EDA42CFCEA8EF0A4CDA8F08BF0A459 +:100FD5002DCC3825F0FDE98FF0A42CCD35F0FCEBB8 +:100FE5008EF0A4FEA9F0EB8FF0A4CFC5F02ECD397D +:0F0FF500FEE43CFCEAA42DCE35F0FDE43CFC22EA +:102A9C00C2D5E830E70FB2D5E4C39BFBE49AFAE465 +:102AAC0099F9E498F8EC30E717B2D5122AD2121043 +:102ABC00FBE4C39BFBE49AFAE499F9E498F88003ED +:102ACC001210FB30D50DE4C39FFFE49EFEE49DFD88 +:042ADC00E49CFC2258 +:0E100400C3E49FFFE49EFEE49DFDE49CFC22FD +:10101200EB9FF5F0EA9E42F0E99D42F0E89C45F034 +:0110220022AB +:10102300BB010789828A8302105D5005E9F802112A +:0A1033008DBBFE05E9F802106922EA +:10103D00E493FC740193FD740293FE740393FF22F9 +:10104D00E493F8740193F9740293FA740393FB22F9 +:0C105D00ECF0A3EDF0A3EEF0A3EFF02206 +:0C106900ECF208EDF208EEF208EFF222C3 +:10107500A8828583F0D083D08212108C12108C1236 +:10108500108C12108CE473E493A3C583C5F0C5835B +:10109500C8C582C8F0A3C583C5F0C583C8C582C8C5 +:0110A5002228 +:1010A600D083D082E493F208740193F20874029319 +:0910B600F208740393F274047350 +:1026F900021199E493A3F8E493A34003F68001F24D +:1027090008DFF48029E493A3F85407240CC8C333E1 +:10271900C4540F4420C8834004F456800146F6DFB0 +:10272900E4800B010204081020408090294FE47EC8 +:10273900019360BCA3FF543F30E509541FFEE493A5 +:10274900A360010ECF54C025E060A840B8E493A36C +:10275900FAE493A3F8E493A3C8C582C8CAC583CA97 +:10276900F0A3C8C582C8CAC583CADFE9DEE780BE4F +:0129AA00002C +:1010BF0075F008758200EF2FFFEE33FECD33CDCCE8 +:1010CF0033CCC58233C5829BED9AEC99E58298406B +:1010DF000CF582EE9BFEED9AFDEC99FC0FD5F0D648 +:1010EF00E4CEFBE4CDFAE4CCF9A88222B800C1B972 +:1010FF000059BA002DEC8BF084CFCECDFCE5F0CBB0 +:10110F00F97818EF2FFFEE33FEED33FDEC33FCEBE8 +:10111F0033FB10D703994004EB99FB0FD8E5E4F9A3 +:10112F00FA227818EF2FFFEE33FEED33FDEC33FC90 +:10113F00C933C910D7059BE99A4007EC9BFCE99A84 +:10114F00F90FD8E0E4C9FAE4CCFB2275F010EF2FC9 +:10115F00FFEE33FEED33FDCC33CCC833C810D707C9 +:10116F009BEC9AE899400AED9BFDEC9AFCE899F804 +:0E117F000FD5F0DAE4CDFBE4CCFAE4C8F92297 +:0C118D00ECF608EDF608EEF608EFF6228E +:00000001FF diff --git a/uuLED.hex b/uuLED.hex new file mode 100644 index 0000000..03a3f7e --- /dev/null +++ b/uuLED.hex @@ -0,0 +1,642 @@ +:101A4200EB88B3BAD87A7BA8FBFA3BC90212320000 +:101A520000000000F1190BE91B329B6BFFFFFFFF37 +:101A6200FFFFFEFEFDFCFCFBFAF9F8F7F6F5F3F2D8 +:101A7200F0EFEDECEAE8E6E5E3E1DEDCDAD8D6D336 +:101A8200D1CECCC9C7C4C2BFBCB9B7B4B1AEABA882 +:101A9200A5A29F9C999693908C898683807D7A7764 +:101AA20074706D6A6764615E5B5855524F4C49476A +:101AB20044413E3C393734322F2D2A282624221F16 +:101AC2001D1B1A1816141311100E0D0B0A09080704 +:101AD20006050404030202010101010101010101E1 +:101AE2000101020203040405060708090A0B0D0E90 +:101AF2001011131416181A1B1D1F222426282A2D12 +:101B02002F323437393C3E414447494C4F525558A5 +:101B12005B5E6164676A6D7074777A7D80838689A3 +:101B22008C909396999C9FA2A5A8ABAEB1B4B7B97D +:101B3200BCBFC2C4C7C9CCCED1D3D6D8DADCDEE1B1 +:101B4200E3E5E6E8EAECEDEFF0F2F3F5F6F7F8F9A3 +:101B5200FAFBFCFCFDFEFEFFFFFFFFFF00000000A2 +:101B62000000000000000000000000000000000073 +:101B72000000000000000000000000000000000063 +:101B82000000000000000000000000000000000053 +:101B92000000000000000000000000000000000043 +:101BA2000000000000000000000000000000000033 +:101BB2000000000000000000000000000000000023 +:101BC2000000000000000000000000000000000013 +:101BD20000000000000000000000000001010101FF +:101BE20001010101010101010101010101010101E3 +:101BF20001010101010101010101010101010101D3 +:101C020001010101010101010101010101010101C2 +:101C120001010101010101010101010101010101B2 +:101C220001010101010101010101010101010101A2 +:101C32000101010101010101010101010101010192 +:101C42000101010101010101010101010101010182 +:101C52000101010101010101010101013F800000B7 +:101C6200404000004110000041D8000041A00000A7 +:0C1C7200447A0000461C400047C35000AC +:1021C2008605A8FBFA0000008112FF41004501418B +:1021D2000095008210000082030100820C03E84493 +:1021E200003D447A00008102004100960041005403 +:1021F20001810F0148004C00000000000000004473 +:102202000047000100014400410101010141005564 +:10221200004100460041004B00810E0641003C0196 +:09222200810B0181000081010023 +:1024C200E4FDFCC3ED9FEC9E50070DBD00010C80A6 +:0124D200F217 +:0124D30022E6 +:10244D00AB07AA06D3EB9400EA9400400E7F107EF2 +:0C245D00271224C2EB1B70EC1A80E9224D +:102469007401A807088002C333D8FCF59DEF2480C6 +:09247900F5BC7F017E000224C2C3 +:10001E0043BC08E5BC30E4FB53BCE7AFBDEF75F065 +:0D002E0004A4ADBE7C002DFFEC35F0FE22D9 +:062316001508150815086A +:10231C00A80808E4F208F2A808F2A808E2C364804E +:10232C00948A501512001EA8080808E22FF218E231 +:10233C003EF2A808E204F280E1A80808E2FE08E2F6 +:01234C00FF91 +:07234D000508050805082240 +:0E250700E4F5C5F5C7F5C675C4FF75C3FF2220 +:100003008FC4EEF5C375C78175C50175C65A75C62C +:07001300A5122507AFC22270 +:102482008DC28FC4EEF5C375C78175C50275C65A74 +:0624920075C6A502250736 +:1024AE008FC4EEF5C375C78175C50375C65A75C65B +:0424BE00A502250747 +:10222C00782A7401F2087400F2087456F2EF6028F0 +:10223C00E4FFFE1224AEE4FCECFF7E00782AE2FB05 +:10224C0008E2FA08E2F98C82758300120D84FD1203 +:10225C0024820CECB40FE122E4FCECFF7E001200B3 +:10226C0003782AE2FB08E2FA08E2F98C8275830013 +:09227C00EF120DE50CECB40FE1CA +:012285002236 +:092522007F067805E4F208DFFCF5 +:01252B00228D +:1020CD009000BFE0F8A3E0F9A3E0FAA3E0FB120A49 +:0420DD0066120CC8B3 +:0520E1007837120EB675 +:1020E600122522E4783BF2E47B0AFAF9F8C000787C +:1020F60037E2FC08E2FD08E2FE08E2FFD000122209 +:10210600D274422BF582741A3AF583E493FF783B36 +:10211600E22405F8EFF27837E2FC08E2FD08E2FE79 +:1021260008E2FFE47B0AFAF9F81222D27837120E97 +:10213600B67837E2FC08E2FD08E2FE08E2FFEC4D65 +:0D2146004E4F6009783BE204F2E2B4069AC5 +:012153002269 +:101E2500FBE0FCA3E0FDA3E0FEA3E0FF120B6F784F +:0A1E3500317401F2780BE27832F20A +:051E3F00782D120EB623 +:101E4400E47834F208F208F2FFFEFDFC782DE2FBA0 +:101E540008E2F908E2FA08E2CBF8120C0C501A78FE +:101E6400367401F2782DE2FC08E2FD08E2FE08E295 +:101E7400FF120C79782D120EB6E47833F2E4FFFEEB +:101E84007D7A7C44782DE2FB08E2F908E2FA08E264 +:101E9400CBF8120C0C4021782DE2FC08E2FD08E29C +:101EA400FE08E2FFE4FBFA797A7844120B6F782D8E +:101EB400120EB67834E204F27833E204F2E2B403A8 +:101EC400BCE47833F27831E2FF7833E2FEC3EF64A6 +:101ED40080F8EE6480985042E4FFFE7D807C3F7879 +:101EE4002DE2FB08E2F908E2FA08E2CBF8120C0C46 +:101EF4005021782DE2FC08E2FD08E2FE08E2FFE44E +:101F0400FBFA797A7844120A66782D120EB6783480 +:101F1400E214F27833E204F280ABE47833F2E4FFC3 +:101F2400FE7D7A7C44782DE2FB08E2F908E2FA08A7 +:101F3400E2CBF8120C0C5021782DE2FC08E2FD08EB +:101F4400E2FE08E2FFE4FBFA79207841120A66789F +:101F54002D120EB67835E204F27833E204F2E2B4DC +:101F640003BC7F007E407D1C7C46782DE2FB08E2AA +:101F7400F908E2FA08E2CBF8120975120CC812202B +:101F8400E17835E22405F8E22404F27832E26022B2 +:101F94007834E2FF3395E0FE745A2FF582741A3ECA +:101FA400F583E4937805F27836E260067805E22456 +:021FB40004F235 +:011FB6002208 +:1024980075D902E4F5F9F5E975FAC075EAC075DA97 +:0624A80053D2BFD2AF22A7 +:03003B0002228618 +:10228600C0E0C083C082C0D075D000C000C006C008 +:012296000740 +:10229700C2D87810E2FF7802E22FFEEF901A5E9321 +:1022A700F5FAAF06EF901B5E9324FF929208E2FEC9 +:0C22B70008E2FF7811E22FF218E23EF27C +:0F22C300D007D006D000D0D0D082D083D0E03268 +:10215400782BEEF208EFF218E2FC08E2FD780CECC2 +:10216400F208EDF2E4120C8FE4FBFA79807847125E +:102174000A667B007A2479747847120B6F120CC8B4 +:102184007803EEF208EFF2FDAC06E4120C8F7B004C +:102194007A2479747847120A66E4FBFA79807847DE +:1021A400120B6F90003D120EAAE47810F208F27838 +:0E21B4002CE2700218E27003C2DE22D2DE229C +:10235400EF75F004120D49AFF0C3EF648094805020 +:102364000474042FFFEF70037802F2EFB4010578D0 +:10237400027440F2EFB4020578027480F2EFB40301 +:0C23840005780274C0F2900096EFF02281 +:09252C00900096E004FF02235424 +:10240300EF7004C2A2C2A1EFB40104C2A2D2A1EF31 +:10241300B40204D2A2C2A1EFB40304D2A2D2A19007 +:052423000054EFF0225F +:1024E600900054E004FF75F004120D49AFF0022489 +:0124F60003E2 +:1023CB00D3EF6480948340027F03C3EF64809480D7 +:1023DB005002E4FFEF7004C296C294EFB40104C242 +:1023EB0096D294EFB40204D296C294EFB40304D203 +:0823FB0096D294780FEFF22254 +:1024F700780FE204FF75F004120D49AFF00223CB09 +:10204300782AEFF2BFFF27E4F2780CE2FE08E2FF02 +:1020530064644E7004782A04F2BE0308BFE805786E +:102063002A7402F2BE1E07BF8504E4782AF2782A96 +:10207300E2700F7F64FE122154C295D2A0780E74D1 +:102083000FF2782AE2B401107FE87E03122154C2D2 +:1020930095C2A0780E7406F2782AE2B402107F8506 +:1020A3007E1E122154D295C2A0780E7406F2782AAD +:1020B300E290003CF0758D2F758BABE4900046F0F9 +:0A20C300900055F07810F208F222A8 +:0B239000E0FEA3E0FFA3E0FCA3E0FDE3 +:10239B00C3EE648094805007C3E49FFFE49EFEC3AA +:1023AB00EC648094805007C3E49DFDE49CFCD3ED6A +:1023BB009FEE6480F8EC6480984004AE04AF052275 +:0A003E007814EBF208EAF208E9F288 +:10004800900063E0FF3395E0FEA3E0FD3395E0FC0C +:10005800EF2DFFEE3C900097F0A3EFF0900059E0F1 +:10006800FF3395E0FEA3E0FD3395E0FCEF2DFFEEB6 +:100078003C900099F0A3EFF0A3120EC2000000001C +:100088009000A3120EC2000000007814E2FB08E200 +:10009800FA08E2F9900006120E44FDACF0EC120CDE +:1000A8008FC004C005C006C0077814E2FB08E2FA56 +:1000B80008E2F9900006120E44FDACF0EC120C8F29 +:1000C800D003D002D001D000120A66C004C005C017 +:1000D80006C0077814E2FB08E2FA08E2F990000487 +:1000E800120E44FDACF0EC120C8FC004C005C00623 +:1000F800C0077814E2FB08E2FA08E2F9900004125B +:100108000E44FDACF0EC120C8FD003D002D001D01D +:1001180000120A66D003D002D001D00012097590EF +:1001280000A7120EAA7814E2FB08E2FA08E2F99096 +:100138000006120E44FDACF0EC120C8FC004C00592 +:10014800C006C0077814E2FB08E2FA08E2F990005A +:1001580002120E44FDACF0EC120C8FD003D002D08A +:1001680001D000120A66C004C005C006C007781492 +:10017800E2FB08E2FA08E2F9900004120E44FDAC32 +:10018800F0EC120C8FC004C005C006C0077814E25A +:10019800FB08E2FA08E2F9120E19FDACF0EC120CB9 +:1001A8008FD003D002D001D000120A66D003D0024B +:1001B800D001D000120975120C799000AB120EAA6A +:1001C8007814E2FB08E2FA08E2F9900002120E4401 +:1001D800FDACF0EC120C8FC004C005C006C0077857 +:1001E80014E2FB08E2FA08E2F9900004120E44FD5A +:1001F800ACF0EC120C8FD003D002D001D000120A60 +:1002080066C004C005C006C0077814E2FB08E2FA1D +:1002180008E2F9900006120E44FDACF0EC120C8FC7 +:10022800C004C005C006C0077814E2FB08E2FA085B +:10023800E2F9120E19FDACF0EC120C8FD003D002CB +:10024800D001D000120A66A804A905AA06AB07D0F7 +:1002580007D006D005D004120971120C799000AFAE +:10026800120EAA9000A7E0F8A3E0F9A3E0FAA3E031 +:10027800FBC000C001C002C0037817E2FB08E2FA25 +:1002880008E2F9900002120D84FF3395E0FEEF7842 +:1002980002C333CE33CED8F9245EF582741C3EF502 +:1002A80083120E9AC000C001C002C0037817E2FB97 +:1002B80008E2FA08E2F9120D6BFF3395E0FEEF78D9 +:1002C80002C333CE33CED8F9245EF582741C3EF5D2 +:1002D80083120E8AD003D002D001D000120B6FD047 +:1002E80003D002D001D000120A669000A7120EAA0D +:1002F8009000A7E0FCA3E0FDA3E0FEA3E0FFC0049C +:10030800C005C006C007900054E0FF3395E0FE74B6 +:100318005F2FF58274003EF583E0FC120C947B009D +:100328007A40791C7846120B6FE4FBFA7980783FA3 +:10033800120975C004C005C006C007900054E0FF4C +:100348003395E0FEEF7802C333CE33CED8F9246E6E +:10035800F582741C3EF583120E9AD007D006D0059C +:10036800D004120A66A804A905AA06AB07D007D0CC +:1003780006D005D004120B6F9000A7120EAA7817AA +:10038800E2FB08E2FA08E2F9120D6BB4015E900094 +:100398009BE0F8A3E0F9A3E0FAA3E0FBC000C001EA +:1003A800C002C003900059E0FC120C94D003D002A4 +:1003B800D001D00012097590009B120EAA9000A3DC +:1003C800E0F8A3E0F9A3E0FAA3E0FBC000C001C095 +:1003D80002C003900063E0FC120C94D003D002D05A +:1003E80001D0001209759000A3120EAA7817E2FB3B +:1003F80008E2FA08E2F9120D6BB4025E90009BE085 +:10040800F8A3E0F9A3E0FAA3E0FBC000C001C00232 +:10041800C00390005AE0FC120C94D003D002D00123 +:10042800D00012097590009B120EAA9000A3E0F864 +:10043800A3E0F9A3E0FAA3E0FBC000C001C002C03A +:1004480003900064E0FC120C94D003D002D001D0D9 +:10045800001209759000A3120EAA7817E2FB08E2B1 +:10046800FA08E2F9120D6BB4036690009BE0F8A35A +:10047800E0F9A3E0FAA3E0FBC000C001C002C0039A +:10048800900099E0FCA3E0FDEC120C8FD003D002A1 +:10049800D001D00012097590009B120EAA9000A3FB +:1004A800E0F8A3E0F9A3E0FAA3E0FBC000C001C0B4 +:1004B80002C003900097E0FCA3E0FDEC120C8FD083 +:1004C80003D002D001D0001209759000A3120EAA21 +:1004D8007817E2FB08E2FA08E2F9900002120D84AC +:1004E800B4016E90009BE0FCA3E0FDA3E0FEA3E056 +:1004F800FFC004C005C006C007900059E0FC120CFC +:1005080094A804A905AA06AB07D007D006D005D041 +:100518000412097190009B120EAA9000A3E0FCA39C +:10052800E0FDA3E0FEA3E0FFC004C005C006C007CD +:10053800900063E0FC120C94A804A905AA06AB0776 +:10054800D007D006D005D0041209719000A3120E6E +:10055800AA7817E2FB08E2FA08E2F9900002120D05 +:1005680084B4026E90009BE0FCA3E0FDA3E0FEA330 +:10057800E0FFC004C005C006C00790005AE0FC12A6 +:100588000C94A804A905AA06AB07D007D006D00585 +:10059800D00412097190009B120EAA9000A3E0FCEF +:1005A800A3E0FDA3E0FEA3E0FFC004C005C006C0B1 +:1005B80007900064E0FC120C94A804A905AA06ABF5 +:1005C80007D007D006D005D0041209719000A312F5 +:1005D8000EAA7817E2FB08E2FA08E2F99000021284 +:1005E8000D84B4037690009BE0FCA3E0FDA3E0FE3D +:1005F800A3E0FFC004C005C006C007900099E0FC56 +:10060800A3E0FDEC120C8FA804A905AA06AB07D03D +:1006180007D006D005D00412097190009B120EAACB +:100628009000A3E0FCA3E0FDA3E0FEA3E0FFC0046C +:10063800C005C006C007900097E0FCA3E0FDEC12DF +:100648000C8FA804A905AA06AB07D007D006D005C9 +:10065800D0041209719000A3120EAA90009BE0FC2E +:10066800A3E0FDA3E0FEA3E0FFC004C005C006C0F0 +:1006780007900054E0FF3395E0FE745B2FF5827419 +:10068800003EF583E0FC120C94A804A905AA06AB69 +:1006980007D007D006D005D00412097190009B122C +:1006A8000EAA90009BE0F8A3E0F9A3E0FAA3E0FB10 +:1006B800C000C001C002C0037B007A2879F47845E5 +:1006C80090003DE0FCA3E0FDA3E0FEA3E0FF120BD9 +:1006D8006FE4FBFA797A7844120B6FD003D002D01A +:1006E80001D000120A6690009B120EAA90009BE0AF +:1006F800FCA3E0FDA3E0FEA3E0FFA804A905AA0669 +:10070800FB120A66E4FBFAF97840120B6FA804A9F9 +:1007180005AA06AB07E4FFFE7D807C3F12097190B5 +:10072800009F120EAA9000A7E0F8A3E0F9A3E0FA50 +:10073800A3E0FBC000C001C002C0037B007A40797F +:100748001C78469000A3E0FCA3E0FDA3E0FEA3E034 +:10075800FF120B6FE4FBFA7980783F120975D0031A +:10076800D002D001D000120A669000A7120EAA90FB +:10077800009BE0FCA3E0FDA3E0FEA3E0FF9000AF38 +:10078800E0F8A3E0F9A3E0FAA3E0FB120A66C004CC +:10079800C005C006C00790009FE0FCA3E0FDA3E0F1 +:1007A800FEA3E0FF9000ABE0F8A3E0F9A3E0FAA312 +:1007B800E0FB120A66D003D002D001D00012097102 +:1007C8009000B3120EAA90009FE0FCA3E0FDA3E006 +:1007D800FEA3E0FF9000AFE0F8A3E0F9A3E0FAA3DE +:1007E800E0FB120A66C004C005C006C00790009B63 +:1007F800E0FCA3E0FDA3E0FEA3E0FF9000ABE0F87F +:10080800A3E0F9A3E0FAA3E0FB120A66D003D00242 +:10081800D001D0001209759000AF120EAA9000B353 +:10082800E0FCA3E0FDA3E0FEA3E0FF9000AB120E06 +:10083800AA781A7401F2781AE2F9C36480948440A1 +:1008480003020932E9FF3395E0FEEF7802C333CEA5 +:1008580033CED8F92461F58274003EF583E0FCA319 +:10086800E0FDA3E0FEA3E0FFC004C005C006C0078A +:10087800781AE2FF3395E0FEEF7802C333CE33CE29 +:10088800D8F9FBAA062465F58274003AF583D007E7 +:10089800D006D005D004120EAA74712BF58274000C +:1008A8003AF583E0FCA3E0FDA3E0FEA3E0FFC0046B +:1008B800C005C006C007781AE2FF3395E0FEEF785E +:1008C80002C333CE33CED8F9FBAA062475F5827459 +:1008D800003AF583D007D006D005D004120EAA74CA +:1008E800812BF58274003AF583E0FCA3E0FDA3E0D8 +:1008F800FEA3E0FFC004C005C006C007781AE2FFE7 +:100908003395E0FEEF7802C333CE33CED8F9248591 +:10091800F58274003EF583D007D006D005D00412C6 +:100928000EAA781AE204F202083E9000A7E0FCA39F +:10093800E0FDA3E0FEA3E0FF900065120EAA900080 +:10094800ABE0FCA3E0FDA3E0FEA3E0FF900075127E +:100958000EAA9000AFE0FCA3E0FDA3E0FEA3E0FF39 +:06096800900085020EAABA +:03001B00021C7E46 +:101C7E00C0E0C0F0C083C082C0D075D000C000C02C +:0D1C8E0001C002C003C004C005C006C007AD +:101C9B0090004BE06003021E0A900046E004F078CF +:101CAB000EE2FFE0C39F5003021E0AE4F0900055C2 +:101CBB00E004F0E094044002E4F012231690003CA0 +:101CCB00E0FD3395E0FC74562DF58274003CF583F2 +:101CDB00E0FD3395E0FCC3EF9DFFEE9CFE9000967C +:101CEB00E0C3648094825006AC06AD078007C3E462 +:101CFB009FFDE49EFC900055E0FB25E0244CF58213 +:101D0B00E43400F583ECF0A3EDF0780FE2FD7441C1 +:101D1B002BF582E43400F583EDF0C3EE6480948000 +:101D2B0050047D0280027D00900055E0FC2447F5B5 +:101D3B0082E43400F583E02DF074472CF582E43413 +:101D4B0000F583E0FD75F004120D49ADF0EDF0ECFC +:101D5B0064016005EC6403707B900055E0B4010FE7 +:101D6B00D297900050122390900043E07813F2909A +:101D7B000055E0B4030FC29790004C1223909000D3 +:101D8B0041E07813F2D3EF9480EE648094A5400782 +:101D9B007813E214F28036C3EF9440EE64809481A2 +:101DAB0050087813E22403F28023C3EF94C0EE644F +:101DBB0080948350087813E22402F28010C3EF94CE +:101DCB0040EE6480948B50057813E204F27813E2B2 +:101DDB00FF1223CB900055E00454032447F582E413 +:101DEB003400F583E0FF12235478177401F2087462 +:0F1DFB0000F2087441F27B017A00794C12003E2D +:101E0A00D007D006D005D004D003D002D001D0002C +:0B1E1A00D0D0D082D083D0F0D0E032D6 +:0715D700782AEFF208EDF2A3 +:1015DE009000B7120EC2000000009000BB120EC2A7 +:1015EE00000000009000BF120EC200000000E47860 +:1015FE002CF29000B7E0F8A3E0F9A3E0FAA3E0FB29 +:10160E00C000C001C002C003782CE2FF3395E0FE9B +:10161E00EF7802C333CE33CED8F92465F582740049 +:10162E003EF583E0FCA3E0FDA3E0FEA3E0FFE4FBB8 +:10163E00FA79807840120B6FD003D002D001D0001F +:10164E001209759000B7120EAA9000BBE0F8A3E045 +:10165E00F9A3E0FAA3E0FBC000C001C002C003780A +:10166E002CE2FF3395E0FEEF7802C333CE33CED8B3 +:10167E00F92475F58274003EF583E0FCA3E0FDA32A +:10168E00E0FEA3E0FFE4FBFA79807840120B6FD006 +:10169E0003D002D001D0001209759000BB120EAA21 +:1016AE009000BFE0F8A3E0F9A3E0FAA3E0FBC000CE +:1016BE00C001C002C003782CE2FF3395E0FEEF7844 +:1016CE0002C333CE33CED8F92485F58274003EF5AD +:1016DE0083E0FCA3E0FDA3E0FEA3E0FFE4FBFA79C8 +:1016EE00807840120B6FD003D002D001D0001209C7 +:1016FE00759000BF120EAA782CE204F2E264046028 +:10170E00030216009000B7E0FCA3E0FDA3E0FEA3E9 +:10171E00E0FFEC4D4E4F701012252278087473F2D4 +:10172E0078067461F208F2227FDA7E0F7DC97C4062 +:10173E0090003DE0F8A3E0F9A3E0FAA3E0FB120A63 +:10174E00669000C7120EAA782BE2600302182F9043 +:10175E0000B7E0FCA3E0FDA3E0FEA3E0FF9000C312 +:10176E00120EAA782AE270139000C3E0F8A3E0F9F3 +:10177E00A3E0FAA3E09000BF121E25782AE2B4017E +:10178E00139000C3E0F8A3E0F9A3E0FAA3E0900001 +:10179E00BB121E25782AE264026003021946FFFE80 +:1017AE00FDFC9000BFE0F8A3E0F9A3E0FAA3E0FB94 +:1017BE00120C0C50359000BFE0F8A3E0F9A3E0FA4C +:1017CE00A3E0FBA3E0FCA3E0FDA3E0FEA3E0FF1279 +:1017DE000B6F9000C7E0F8A3E0F9A3E0FAA3E0FBDB +:1017EE00120B6F783174040219439000C3E0F8A312 +:1017FE00E0F9A3E0FAA3E0FB9000BFE0FCA3E0FD5C +:10180E00A3E0FEA3E0FF120B6F9000C7E0F8A3E089 +:10181E00F9A3E0FAA3E0FB120B6F78317402021900 +:10182E00439000BFE0FCA3E0FDA3E0FEA3E0FFA811 +:10183E0004A905AA06FB120A66C004C005C006C0AC +:10184E00079000BBE0FCA3E0FDA3E0FEA3E0FFA831 +:10185E0004A905AA06FB120A66D003D002D001D055 +:10186E00001209759000B7E0F8A3E0F9A3E0FAA31F +:10187E00E0FB120B6F9000C3120EAA782AE27012D0 +:10188E009000BFE0F8A3E0F9A3E0FAA3E0FBA312F7 +:10189E001E26782AE2B401149000BBE0F8A3E0F90A +:1018AE00A3E0FAA3E0FB9000C3121E26782AE2649E +:1018BE00026003021946FFFEFDFC9000BFE0F8A394 +:1018CE00E0F9A3E0FAA3E0FB120C0C50369000C333 +:1018DE00E0F8A3E0F9A3E0FAA3E0FB9000BFE0FC80 +:1018EE00A3E0FDA3E0FEA3E0FF120B6F9000C7E0A4 +:1018FE00F8A3E0F9A3E0FAA3E0FB120B6F783174C2 +:10190E000480329000BFE0F8A3E0F9A3E0FAA3E070 +:10191E00FBA3E0FCA3E0FDA3E0FEA3E0FF120B6F30 +:10192E009000C7E0F8A3E0F9A3E0FAA3E0FB120BE6 +:10193E006F78317402121E38782AE2640360030253 +:10194E001A419000BBE0FCA3E0FDA3E0FEA3E0FF84 +:10195E00EC4D4E4F70087F0F7E27FDFC807590007A +:10196E00BBE0F8A3E0F9A3E0FAA3E0FBA3E0FCA33D +:10197E00E0FDA3E0FEA3E0FF120B6F122515900011 +:10198E00BF120EAAE4FFFE7D7A7C449000BFE0F801 +:10199E00A3E0F9A3E0FAA3E0FB120C0C400A7FE7E8 +:1019AE007E037D007C00802BE4FFFE7DC87C429090 +:1019BE0000BFE0F8A3E0F9A3E0FAA3E0FB120C0CE1 +:1019CE0040149000BFE0FCA3E0FDA3E0FEA3E0FF07 +:1019DE00120CC80220E1E4FFFE7D207C419000BF86 +:1019EE00E0F8A3E0F9A3E0FAA3E0FB120C0C400E22 +:1019FE00E4FFFE7D207C411220CD78068031E4FF8D +:101A0E00FE7D807C3F9000BFE0F8A3E0F9A3E0FAF2 +:101A1E00A3E0FB120C0CE4FFFE400B7DC87C4212CF +:101A2E0020CD780780097D7A7C441220CD7808E29B +:031A3E002404F28B +:011A41002282 +:10242800FF3395E0FE74422FF582741A3EF583E47B +:0224380093FF10 +:10243A00EFF4F580D2A7C2A4C2A5C2A67F327E005D +:03244A0002244D1C +:100FC100E4781BF208F208F208F208F208F208F2DB +:100FD1000804F2E408F27F50FE12244DE4FF1222CD +:100FE1002CE4F588758912F58DF58BD28EC28CD2E1 +:100FF100ABD2A9D2AFD2B9FF1224697596FF75920F +:10100100FC7591031224987F021223547F0112244C +:10101100031223CB7F011220437821E22401F2182D +:10102100E23400F2781EE204F25403F2C2A4C2A533 +:10103100C2A6C2A7E2FF7002D2A7EFB40102D2A6F4 +:10104100EFB40202D2A5EFB40302D2A474052FF8C3 +:10105100E2F4F580E5B0F4781DF2E2600C18E2C329 +:1010610094FF5005E204F28004E4781CF2E4781B5A +:10107100F2781DE2600AC313F2781BE204F280F1F8 +:10108100781BE2781DF218E2B41407781F7432F26B +:101091008004E4781DF2781FE26007E214F2C2A333 +:1010A1008002D2A3781DE2B4080BE4900045F0F26F +:1010B100782274FFF2900045E0FFC39401401AEFDB +:1010C100D394045014781DE2B407031224E6781D6A +:1010D100E2B406057FFF122043900045E070267FB1 +:1010E100107E27FDFC1220E1781DE2FFC394014030 +:1010F10010EFD39407500A900045EFF0E49000956B +:10110100F0E4781DF2900045E0640160030211E013 +:1011110090004BF07822E2B4FF067401F2780BF2F2 +:10112100781DE2B404157823E26006E4F27F7A8048 +:101131000778237401F27FF112243A781DE2FFB49B +:1011410001137822E2780B7005E204F28003740146 +:10115100F2E47822F2EFB402157822E2780BB401BE +:1011610005E204F280037401F278227401F2781D21 +:10117100E2B403157822E2780BB40205E204F280AE +:10118100037401F278227402F2781DE2B405057845 +:10119100227403F2780BE2FF75F002120D49AFF0F1 +:1011A100780BEFF27822E2FF08E2FD1215D77823DF +:1011B100E2602C7820E25401FE08E2C39432EE94FE +:1011C10000501CE4781BF2781BE2FFC39404500F1B +:1011D10074052FF8E24404F2781BE204F280E890EF +:1011E1000045E0B40234900041E0FF3395E0FE7C1D +:1011F100007D64120E07900043E0FD3395E0FCEFA3 +:101201002DFFEE3CCF2410CF3427FE3395E0FDFCBB +:101211001220E1E47808F27806F2900045E06403D8 +:10122100704E90004B04F0781DE2B401091224F7CE +:10123100780FE2122428781DE2B4030EB297A29728 +:10124100E433901A4293FF12243A781DE2B4040A5F +:1012510012252C900096E01224287821E2543F7048 +:101261000F122316E4FCFD1220E17806E22404F2B9 +:0B127100900045E0640760030215CD0B +:10127C00782704F208F208F2900095E0FF70167BD4 +:10128C0001782404F2087400F2087456F2E4782809 +:10129C00F2087402F2EFB4011578247401F20874A8 +:1012AC0000F2087457F278287401F20804F2EFB4D3 +:1012BC00021478247401F2087400F2087458F2785D +:1012CC00287402F208F2EFB4031578247401F208C2 +:1012DC007400F208745BF278287402F2E408F2EFFE +:1012EC00B4041578247401F2087400F208745CF2EA +:1012FC0078287402F20814F2EFB4051478247401FF +:10130C00F2087400F208745DF278287402F208F2A4 +:10131C00EFB4061578247401F2087400F208745EB8 +:10132C00F278287402F20804F2EFB40715782474EA +:10133C0001F2087400F2087459F278287402F20869 +:10134C0014F2EFB4081578247401F2087400F20852 +:10135C00745AF278287402F20814F2EFB409177870 +:10136C00247401F2087400F208745FF2087402F23B +:10137C000814F2E408F2EFB40A1678247401F208A7 +:10138C007400F2087460F2087402F20814F208F2A5 +:10139C00EFB40B1778247401F2087400F20874612E +:1013AC00F2087402F20814F20804F2EFB40C187884 +:1013BC00247401F2087400F2087462F2087402F2E8 +:1013CC000814F2087403F2EFB40D1678247401F2C9 +:1013DC00087400F2087463F2087402F20814F2083C +:1013EC00F2EFB40E1678247401F2087400F208744B +:1013FC0064F2087402F20814F208F2781DE2B401E7 +:10140C00127827E2FF7824E2FB08E2FA08E2F9EF0F +:10141C00120DB1781DE2B402177824E2FB08E2FA4F +:10142C0008E2F9120D6BFF08E2FEC3EF9E120DD31A +:10143C00781DE2B4030D7F0112222C90003CE0FFDA +:10144C00122043781DE2B4040E7824E2FB08E2FA81 +:10145C0008E2F9E4120DD3781DE2640570359000B2 +:10146C0095E07005740EF08006900095E014F0E4A1 +:10147C007801F2900095E0FFC394095008EF901AA0 +:10148C004293FF800B900095E0901A3C932404FF4C +:10149C0012243A781DE264067035900095E0B40E83 +:1014AC0004E4F08006900095E004F0E47801F290FA +:1014BC000095E0FFC394095008EF901A4293FF8007 +:1014CC000B900095E0901A3C932404FF12243A7878 +:1014DC001DE2FFB407117801E204FE75F002120D53 +:1014EC0049AEF07801EEF2EF6404704F7800E2043C +:1014FC00F26405704FF29000597410F0A37412F05E +:10150C00E4900063F0A3F0900056740FF0A37411F4 +:10151C00F0A3740FF0E490005DF090005CF090008C +:10152C005BF090005E7414F0E4900062F090006147 +:10153C00F0900060F090005FF08009781DE260048C +:10154C00E47800F27801E2603D90003CE0FE7828FF +:10155C00E2FF6E6003122043900054E0FE7829E213 +:10156C00FF6E6003122403900095E0FFC3940340C8 +:10157C000CEFD3940850067D017F0380047D017F1E +:10158C00011215D7803BE4780BF27824E2FB08E2D9 +:10159C00FA08E2F9120D6BFF3395E0FE1224D4EE3B +:1015AC003395E0FDFC1220E17824E2FB08E2FA0816 +:1015BC00E2F9120D6BC364809480500578087410A6 +:0115CC00F22C +:0A15CD007FA07E0F1224C202101A44 +:10096E00020D34E86480F8E933E83360110460F076 +:10097E00ED33EC337009E8FCE9FDEAFEEBFF2204EF +:10098E0060DED3EB9FEA9EE99DE8C2E78CF0C2F7EA +:10099E0095F0400CE8CCF8E9CDF9EACEFAEBCFFBB6 +:1009AE00120CFF85D0F05804700320D5B3E8047004 +:1009BE00075002B2D5020D3E92D5EC0460F7E4CC9E +:1009CE00C0E0C398F8603B94186008400DD0E0FB7F +:1009DE00020D16E4FBFAC9FC8028E830E406E4C9EF +:1009EE00FBE4CAFCE830E305E4C9CACBFCE85407D3 +:1009FE006010F8C3E913F9EA13FAEB13FBEC13FCDE +:100A0E00D8F130F52FC3E49CFCEF9BFFEE9AFEED80 +:100A1E0099FDD0E0FBEF4E4D4C701222DB03020D20 +:100A2E003BEC2CFCEF33FFEE33FEED33FDED30E708 +:100A3E00EB020D16EF2BFFEE3AFEED39FDD0E0FB8B +:100A4E0050130BBB0003020D3EED13FDEE13FEEF34 +:080A5E0013FFEC13FC020D165E +:100A6600EC4D6011E8497017ED33EC3304600DE48A +:100A7600FCFFFEFD22E933E8330470F8020D341260 +:100A86000CFF58046009E4CC248150062850090262 +:100A96000D3E284003020D3BC0E0EB4A7044B9808E +:100AA60006D0E0FB020D2AEF4E701CBD8008EBFF5E +:100AB600EAFEE9FD80EBE98DF0A4FEE5F0020B4FBE +:100AC600E9CDF9EAFEEBFFEF89F0A4FCE5F0CE896B +:100AD600F0A42EFFE435F0CD89F0A42DFEE435F028 +:100AE6008067EF4E7005BD80D780C3EF8BF0A4AC56 +:100AF600F0EE8BF0A42CFCE435F0F8EF8AF0A42C91 +:100B0600E5F038FCE433CB8DF0A42CFCE5F03BF8A3 +:100B1600EE8AF0A42CFCE5F038F8E433CF89F0A493 +:100B26002CFCE5F038CF3400CE89F0A42FFFE5F099 +:100B36003EFEE433C98DF0A42EFEE5F039CD8AF0F1 +:100B4600A42FFFE5F03EFEE43DFD33D0E0FB500769 +:100B56000BBB000F020D3EEC2CFCEF33FFEE33FE19 +:060B6600ED33FD020D1647 +:100B6C00020D3EEC5D046005E859047003020D347F +:100B7C00120CFF580460F6EC4860F2EC7004FDFEB9 +:100B8C00FF22C860DB2481C85009C398600250065C +:100B9C00020D3B9850CAF582E9294B4A7005AB828D +:100BAC00020D2A75F0007C1A7880C3EF9BEE9AED4B +:100BBC0099400DC3EF9BFFEE9AFEED99FDE842F0D4 +:100BCC00DC23ACF0D0E0FFD0E0FED0E0FDAB822027 +:100BDC00E7101BEB60BAEC2CFCEF33FFEE33FEEDB1 +:100BEC0033FD020D16E803F830E705C0F075F00090 +:100BFC00EF2FFFEE33FEED33FD40B830E7C280AA95 +:100C0C0074F8CC6480CCC86480C8F582046043C39B +:100C1C00EB9FF5F0EA9E42F0E99D42F0E89C45F02E +:100C2C0060305018E5825FFFE582F42B5582FB5053 +:100C3C00210ABA001D09B90019088016E5825BFB70 +:100C4C00E582F42F5582FF50090EBE00050DBD0044 +:100C5C00010CC3EB9FF5F0EA9E42F0E99D42F0E8EF +:0D0C6C009C45F06007CC4820E701B3EC2266 +:100C7900ED33EC33600A047003BD8004ECB2E7FC89 +:010C89002248 +:100C8A0075F020800E75F010800575F0087D007EE5 +:100C9A00007F003392D530D503120E7CEC3340101E +:100CAA00EF33FFEE33FEED33FDEC33FCD5F0ED22EE +:0E0CBA00E5F0247EA2D513CC92E7CDCEFF222A +:100CC800EDD2E7CD33EC3392D524814006E4FFFE24 +:100CD800FDFC22FCE4CFCECDCC24E0501174FF8083 +:100CE800EDC3CC13CCCD13CDCE13CECF13CF047020 +:070CF800F030D5DE020E7C96 +:0D251500ED33EC3360065004EC6480FC22D2 +:100CFF00E9D2E7C933E833F892D5EDD2E7CD33EC3B +:070D0F0033FC5002B2D522B3 +:100D1600EC30E7100FBF000C0EBE00080DBD00043E +:100D26000BEB6014A2D5EB13FCED92E7FD2274FFEA +:100D3600FCFDFEFF22E480F8A2D574FF13FC7D8043 +:030D4600E480EF57 +:03000000021FB725 +:0C1FB700787FE4F6D8FD758108021FFE5B +:100D4900C2D530F707B2D563F0FF05F030E70CB232 +:100D5900D5F4048463F0FF05F080018430D502F4F2 +:020D6900042262 +:100D6B00BB010689828A83E0225002E722BBFE0286 +:090D7B00E32289828A83E49322B9 +:100D8400BB010CE58229F582E5833AF583E0225024 +:100D940006E92582F8E622BBFE06E92582F8E2226E +:0D0DA400E58229F582E5833AF583E4932288 +:100DB100BB010989828A83F8E028F022500327F7D2 +:100DC10022BBFE05F8E328F3228A838982F8E493A3 +:020DD1002822D6 +:100DD300BB010689828A83F0225002F722BBFE01FF +:020DE300F322F9 +:100DE500F8BB010DE58229F582E5833AF583E8F044 +:100DF500225006E92582C8F622BBFE05E92582C8F0 +:020E0500F222D7 +:100E0700EF8DF0A4A8F0CF8CF0A428CE8DF0A42EFF +:020E1700FE22B9 +:100E1900BB010A89828A83E0F5F0A3E022500687A4 +:100E2900F009E71922BBFE07E3F5F009E319228966 +:0B0E3900828A83E493F5F07401932299 +:100E4400BB0110E58229F582E5833AF583E0F5F0EC +:100E5400A3E0225009E92582F886F008E622BBFEC9 +:100E64000AE92582F8E2F5F008E222E5832AF5830F +:080E7400E993F5F0A3E99322D4 +:1022D200C2D5E830E70FB2D5E4C39BFBE49AFAE437 +:1022E20099F9E498F8EC30E717B2D5122308120FE7 +:1022F2002FE4C39BFBE49AFAE499F9E498F880038B +:10230200120F2F30D50DE4C39FFFE49EFEE49DFD26 +:04231200E49CFC2229 +:0E0E7C00C3E49FFFE49EFEE49DFDE49CFC2287 +:100E8A00E493FC740193FD740293FE740393FF22AE +:100E9A00E493F8740193F9740293FA740393FB22AE +:0C0EAA00ECF0A3EDF0A3EEF0A3EFF022BB +:0C0EB600ECF208EDF208EEF208EFF22278 +:100EC200A8828583F0D083D082120ED9120ED91255 +:100ED2000ED9120ED9E473E493A3C583C5F0C5837A +:100EE200C8C582C8F0A3C583C5F0C583C8C582C87A +:010EF20022DD +:1024D400C3EE6480948040028007C3E49FFFE49EBF +:0224E400FE22D6 +:101FC300020FC1E493A3F8E493A34003F68001F264 +:101FD30008DFF48029E493A3F85407240CC8C3331F +:101FE300C4540F4420C8834004F456800146F6DFEE +:101FF300E4800B01020408102040809021C2E47E9B +:10200300019360BCA3FF543F30E509541FFEE493E2 +:10201300A360010ECF54C025E060A840B8E493A3A9 +:10202300FAE493A3F8E493A3C8C582C8CAC583CAD4 +:10203300F0A3C8C582C8CAC583CADFE9DEE780BE8C +:01222B0000B2 +:100EF30075F008758200EF2FFFEE33FECD33CDCCB6 +:100F030033CCC58233C5829BED9AEC99E582984038 +:100F13000CF582EE9BFEED9AFDEC99FC0FD5F0D615 +:100F2300E4CEFBE4CDFAE4CCF9A88222B800C1B93F +:100F33000059BA002DEC8BF084CFCECDFCE5F0CB7D +:100F4300F97818EF2FFFEE33FEED33FDEC33FCEBB6 +:100F530033FB10D703994004EB99FB0FD8E5E4F971 +:100F6300FA227818EF2FFFEE33FEED33FDEC33FC5E +:100F7300C933C910D7059BE99A4007EC9BFCE99A52 +:100F8300F90FD8E0E4C9FAE4CCFB2275F010EF2F97 +:100F9300FFEE33FEED33FDCC33CCC833C810D70797 +:100FA3009BEC9AE899400AED9BFDEC9AFCE899F8D2 +:0E0FB3000FD5F0DAE4CDFBE4CCFAE4C8F92265 +:00000001FF