From 63be61e225fe9dab2ebb6436c520fda8536dce10 Mon Sep 17 00:00:00 2001 From: con-f-use Date: Fri, 19 Aug 2016 00:13:41 +0200 Subject: [PATCH] Modularize esp8266 components --- .gitmodules | 3 + embedded8266/LICENSE | 32 +- embedded8266/Makefile | 80 +-- embedded8266/ccconfig.h | 2 +- embedded8266/common/commonservices.c | 629 ------------------ embedded8266/common/commonservices.h | 30 - embedded8266/common/esp8266_rom.h | 92 --- embedded8266/common/flash_rewriter.c | 285 -------- embedded8266/common/flash_rewriter.h | 20 - embedded8266/common/http.c | 625 ----------------- embedded8266/common/http.h | 99 --- embedded8266/common/http_custom.c | 176 ----- embedded8266/common/mfs.c | 97 --- embedded8266/common/mfs.h | 55 -- embedded8266/common/mystuff.c | 213 ------ embedded8266/common/mystuff.h | 60 -- embedded8266/driver/uart.c | 225 ------- embedded8266/esp82xx | 1 + embedded8266/image.elf | Bin 495436 -> 0 bytes embedded8266/image.elf-0x00000.bin | Bin 37024 -> 0 bytes embedded8266/image.elf-0x40000.bin | Bin 197967 -> 0 bytes embedded8266/include/driver/uart.h | 101 --- embedded8266/include/driver/uart_register.h | 128 ---- embedded8266/include/stdint.h | 3 - embedded8266/include/string.h | 1 - embedded8266/include/user_config.h | 1 - embedded8266/makeconf.inc | 37 -- embedded8266/user.cfg | 22 + embedded8266/{driver => user}/adc.c | 2 +- embedded8266/{include/driver => user}/adc.h | 0 embedded8266/user/hpatimer.c | 2 +- .../{include => user}/pin_mux_register.h | 0 embedded8266/user/user_main.c | 4 +- embedded8266/web/Makefile | 24 +- embedded8266/web/execute_reflash.c | 275 +------- embedded8266/web/md5.c | 297 +-------- embedded8266/web/md5.h | 46 +- embedded8266/web/mfsmaker.c | 147 +--- embedded8266/web/page/index.html | 12 +- embedded8266/web/page/jquery-2.1.4.min.js.gz | Bin 29379 -> 45 bytes embedded8266/web/page/menuinterface.js | 28 +- embedded8266/web/pushtodev.c | 237 +------ 42 files changed, 65 insertions(+), 4026 deletions(-) create mode 100644 .gitmodules mode change 100644 => 120000 embedded8266/LICENSE delete mode 100644 embedded8266/common/commonservices.c delete mode 100644 embedded8266/common/commonservices.h delete mode 100644 embedded8266/common/esp8266_rom.h delete mode 100644 embedded8266/common/flash_rewriter.c delete mode 100644 embedded8266/common/flash_rewriter.h delete mode 100644 embedded8266/common/http.c delete mode 100644 embedded8266/common/http.h delete mode 100644 embedded8266/common/http_custom.c delete mode 100644 embedded8266/common/mfs.c delete mode 100644 embedded8266/common/mfs.h delete mode 100644 embedded8266/common/mystuff.c delete mode 100644 embedded8266/common/mystuff.h delete mode 100644 embedded8266/driver/uart.c create mode 160000 embedded8266/esp82xx delete mode 100755 embedded8266/image.elf delete mode 100644 embedded8266/image.elf-0x00000.bin delete mode 100644 embedded8266/image.elf-0x40000.bin delete mode 100644 embedded8266/include/driver/uart.h delete mode 100644 embedded8266/include/driver/uart_register.h delete mode 100644 embedded8266/include/stdint.h delete mode 100644 embedded8266/include/string.h delete mode 100644 embedded8266/include/user_config.h delete mode 100644 embedded8266/makeconf.inc create mode 100644 embedded8266/user.cfg rename embedded8266/{driver => user}/adc.c (99%) rename embedded8266/{include/driver => user}/adc.h (100%) rename embedded8266/{include => user}/pin_mux_register.h (100%) mode change 100644 => 120000 embedded8266/web/Makefile mode change 100644 => 120000 embedded8266/web/execute_reflash.c mode change 100644 => 120000 embedded8266/web/md5.c mode change 100644 => 120000 embedded8266/web/md5.h mode change 100644 => 120000 embedded8266/web/mfsmaker.c mode change 100644 => 120000 embedded8266/web/page/jquery-2.1.4.min.js.gz mode change 100644 => 120000 embedded8266/web/pushtodev.c diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..ae1c161 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "embedded8266/esp82xx"] + path = embedded8266/esp82xx + url = git@github.com:cnlohr/esp82xx.git diff --git a/embedded8266/LICENSE b/embedded8266/LICENSE deleted file mode 100644 index ca83dc1..0000000 --- a/embedded8266/LICENSE +++ /dev/null @@ -1,31 +0,0 @@ -*Note if you use the ESP8266 port, you are bound to this license as well as -the regular ColorChord license.* (Yes, I'm aware one is a BSD-based license -and the other is a MIT-based license, but this is not really a problem for -the ESP8266 as long as you follow the ColorChord license and only use it on -the ESP8266) - - -ESPRSSIF MIT License - -Copyright (c) 2015 -Portions Copyright (c) 2015 Charles Lohr - -Permission is hereby granted for use on ESPRESSIF SYSTEMS ESP8266 only, -in which case, it is free of charge, to any person obtaining a copy of this -software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - diff --git a/embedded8266/LICENSE b/embedded8266/LICENSE new file mode 120000 index 0000000..334c29a --- /dev/null +++ b/embedded8266/LICENSE @@ -0,0 +1 @@ +esp82xx/LICENSE \ No newline at end of file diff --git a/embedded8266/Makefile b/embedded8266/Makefile index eddbf21..9292050 100644 --- a/embedded8266/Makefile +++ b/embedded8266/Makefile @@ -1,79 +1,13 @@ -include makeconf.inc # Look here for user configuration +include user.cfg +include esp82xx/common.mf +include esp82xx/main.mf -.PHONY : all clean cleanall netburn burnweb burn -uniq = $(if $1,$(firstword $1) $(call uniq,$(filter-out $(firstword $1),$1))) - -TARGET = image.elf -FW_FILE1 = $(TARGET)-0x00000.bin -FW_FILE2 = $(TARGET)-0x40000.bin - -SRCS = \ - driver/uart.c \ - common/mystuff.c \ - common/flash_rewriter.c \ - common/http.c \ - common/http_custom.c \ - common/mfs.c \ - user/ws2812_i2s.c \ +SRCS += user/ws2812_i2s.c \ user/hpatimer.c \ - user/custom_commands.c \ - driver/adc.c \ + user/adc.c \ ../embeddedcommon/DFT32.c \ ../embeddedcommon/embeddednf.c \ - ../embeddedcommon/embeddedout.c \ - user/user_main.c \ - common/commonservices.c + ../embeddedcommon/embeddedout.c -LIBS = main lwip ssl upgrade net80211 wpa net80211 phy lwip pp crypto -INCL = $(SDK)/include myclib include . +LDFLAGS_CORE += -Wl,-Map,output.map -CFLAGS = -mlongcalls -Os $(addprefix -I,$(INCL) $(call uniq, $(patsubst %/,%,$(dir $(SRCS))))) $(OPTS) - -LDFLAGS_CORE = -nostdlib -L$(XTLIB) -L$(XTGCCLIB) \ - $(addprefix $(SDK)/lib/lib,$(addsuffix .a,$(LIBS))) \ - $(XTGCCLIB) -T $(SDK)/ld/eagle.app.v6.ld -Wl,-Map,output.map -# -flto -Wl,--relax -Wl,--gc-sections - -LINKFLAGS = $(LDFLAGS_CORE) -B$(XTLIB) - -##########################################################################RULES - -all : $(FW_FILE1) $(FW_FILE2) - -$(FW_FILE1) $(FW_FILE2) : $(TARGET) - @echo "FW $@" - export PATH="$(FOLDERPREFIX):$$PATH"; $(ESPTOOL_PY) elf2image $(TARGET) - -$(TARGET) : $(SRCS) - $(CC) $(CFLAGS) $^ $(LINKFLAGS) -o $@ - -ifeq ($(CHIP), 8285) -burn : $(FW_FILE1) $(FW_FILE2) - ($(ESPTOOL_PY) --port $(PORT) write_flash -fs 8m -fm dout 0x00000 $(FW_FILE1) 0x40000 $(FW_FILE2))||(true) -else ifeq ($(CHIP), 8266) -burn : $(FW_FILE1) $(FW_FILE2) - ($(ESPTOOL_PY) --port $(PORT) write_flash 0x00000 $(FW_FILE1) 0x40000 $(FW_FILE2))||(true) -else - $(error Error: Unknown chip '$(CHIP)') -endif - -burnweb : - @cd web && $(MAKE) $(MFLAGS) $(MAKEOVERRIDES) page.mpfs - ($(ESPTOOL_PY) --port $(PORT) write_flash 0x10000 web/page.mpfs)||(true) -#If you have space, MFS should live at 0x100000. It can also live at -#0x10000. But, then it is limited to 180kB. You might need to do this if -# you have a 512kB ESP variant. - -netburn : $(FW_FILE1) $(FW_FILE2) - @cd web && $(MAKE) $(MFLAGS) $(MAKEOVERRIDES) execute_reflash - web/execute_reflash $(IP) $(FW_FILE1) $(FW_FILE2) - -netweb : - @cd web && $(MAKE) $(MFLAGS) $(MAKEOVERRIDES) push - -clean : - $(RM) $(patsubst %.c,%.o,$(SRCS)) $(TARGET) - -purge : clean - @cd web && $(MAKE) $(MFLAGS) $(MAKEOVERRIDES) clean - $(RM) $(FW_FILE1) $(FW_FILE2) diff --git a/embedded8266/ccconfig.h b/embedded8266/ccconfig.h index 31a4a64..b3a09e5 100644 --- a/embedded8266/ccconfig.h +++ b/embedded8266/ccconfig.h @@ -1,7 +1,7 @@ #ifndef _CCCONFIG_H #define _CCCONFIG_H -#include "c_types.h" +#include #define HPABUFFSIZE 512 diff --git a/embedded8266/common/commonservices.c b/embedded8266/common/commonservices.c deleted file mode 100644 index 70adc5a..0000000 --- a/embedded8266/common/commonservices.c +++ /dev/null @@ -1,629 +0,0 @@ -//Copyright 2015 <>< Charles Lohr Under the MIT/x11 License, NewBSD License or -// ColorChord License. You Choose. - -#include "commonservices.h" -#include "mem.h" -#include "c_types.h" -#include "user_interface.h" -#include "ets_sys.h" -#include "osapi.h" -#include "espconn.h" -#include "mystuff.h" -#include "ip_addr.h" -#include "http.h" -#include "spi_flash.h" -#include "esp8266_rom.h" -#include -#include "flash_rewriter.h" - -static struct espconn *pUdpServer; -static struct espconn *pHTTPServer; -struct espconn *pespconn; -uint16_t g_gpiooutputmask = 0; - -int ets_str2macaddr(void *, void *); - -static int need_to_switch_back_to_soft_ap = 0; //0 = no, 1 = will need to. 2 = do it now. -#define MAX_STATIONS 20 -struct totalscan_t -{ - char name[32]; - char mac[18]; //string - int8_t rssi; - uint8_t channel; - uint8_t encryption; -} totalscan[MAX_STATIONS]; -int scanplace = 0; -static void ICACHE_FLASH_ATTR scandone(void *arg, STATUS status) -{ - scaninfo *c = arg; - struct bss_info *inf; - - if( need_to_switch_back_to_soft_ap == 1 ) - need_to_switch_back_to_soft_ap = 2; - - printf("!%p\n",c->pbss); - - if (!c->pbss) { - scanplace = -1; - return; - } -// printf("!%s\n",inf->ssid); - STAILQ_FOREACH(inf, c->pbss, next) { - printf( "%s\n", inf->ssid ); - ets_memcpy( totalscan[scanplace].name, inf->ssid, 32 ); - ets_sprintf( totalscan[scanplace].mac, MACSTR, MAC2STR( inf->bssid ) ); - //ets_memcpy( totalscan[scanplace].mac, "not implemented", 16 ); - totalscan[scanplace].rssi = inf->rssi; - totalscan[scanplace].channel = inf->channel; - totalscan[scanplace].encryption = inf->authmode; - inf = (struct bss_info *) &inf->next; - scanplace++; - if( scanplace == MAX_STATIONS ) break; - } -} - - - -int ICACHE_FLASH_ATTR issue_command(char * buffer, int retsize, char *pusrdata, unsigned short len) -{ - char * buffend = buffer; - pusrdata[len] = 0; - - switch( pusrdata[0] ) - { - case 'e': case 'E': //Echo - if( retsize > len ) - { - ets_memcpy( buffend, pusrdata, len ); - return len; - } - else - { - return -1; - } - case 'f': case 'F': //Flashing commands (F_) - { - flashchip->chip_size = 0x01000000; - const char * colon = (const char *) ets_strstr( (char*)&pusrdata[2], "\t" ); - int nr = my_atoi( &pusrdata[2] ); - - switch (pusrdata[1]) - { - case 'e': case 'E': //(FE#\n) <- # = sector. - { - if( nr < 16 ) - { - buffend += ets_sprintf(buffend, "!FE%d\r\n", nr ); - break; - } - - EnterCritical(); - spi_flash_erase_sector( nr ); //SPI_FLASH_SEC_SIZE 4096 - ExitCritical(); - - buffend += ets_sprintf(buffend, "FE%d\r\n", nr ); - break; - } - - case 'b': case 'B': //(FB#\n) <- # = block. - { - if( nr < 1 ) //Not allowed to erase boot sector. - { - buffend += ets_sprintf(buffend, "!FB%d\r\n", nr ); - break; - } - - EnterCritical(); - SPIEraseBlock( nr ); - ExitCritical(); - - buffend += ets_sprintf(buffend, "FB%d\r\n", nr ); - break; - } - - case 'm': case 'M': //Execute the flash re-writer - { - int r = (*GlobalRewriteFlash)( &pusrdata[2], len-2 ); - buffend += ets_sprintf( buffend, "!FM%d\r\n", r ); - break; - } - case 'w': case 'W': //Flash Write (FW#\n) <- # = byte pos. Reads until end-of-packet. - if( colon ) - { - colon++; - const char * colon2 = (const char *) ets_strstr( (char*)colon, "\t" ); - if( colon2 && nr >= 65536) - { - colon2++; - int datlen = (int)len - (colon2 - pusrdata); - ets_memcpy( buffer, colon2, datlen ); - - EnterCritical(); - spi_flash_write( nr, (uint32*)buffer, (datlen/4)*4 ); - ExitCritical(); - - #ifdef VERIFY_FLASH_WRITE - #define VFW_SIZE 128 - printf( "FW%d\r\n", nr ); - int jj; - uint8_t __attribute__ ((aligned (32))) buf[VFW_SIZE]; - for(jj=0; jjdatlen ? datlen%VFW_SIZE : VFW_SIZE ) != 0 ) goto failw; - } - #endif - - buffend += ets_sprintf(buffend, "FW%d\r\n", nr ); - break; - } - } - failw: - buffend += ets_sprintf(buffend, "!FW\r\n" ); - break; - case 'x': case 'X': //Flash Write Hex (FX#\t#\tDATTAAAAA) <- a = byte pos. b = length (in hex-pairs). Generally used for web-browser. - if( colon ) - { - int i; - int siz = 0; - colon++; - char * colon2 = (char *) ets_strstr( (char*)colon, "\t" ); - if( colon2 ) - { - *colon2 = 0; - siz = my_atoi( colon ); - } - //nr = place to write. - //siz = size to write. - //colon2 = data start. - if( colon2 && nr >= 524288) - { - colon2++; - int datlen = ((int)len - (colon2 - pusrdata))/2; - if( datlen > siz ) datlen = siz; - - for( i = 0; i < datlen; i++ ) - { - int8_t r1 = fromhex1( *(colon2++) ); - int8_t r2 = fromhex1( *(colon2++) ); - if( r1 == -1 || r2 == -1 ) goto failfx; - buffend[i] = (r1 << 4) | r2; - } - - //ets_memcpy( buffer, colon2, datlen ); - - EnterCritical(); - spi_flash_write( nr, (uint32*)buffend, (datlen/4)*4 ); - ExitCritical(); - - #ifdef VERIFY_FLASH_WRITE - // uint8_t __attribute__ ((aligned (32))) buf[1300]; - // spi_flash_read( nr, (uint32*)buf, (datlen/4)*4 ); - // if( ets_memcmp( buf, buffer, (datlen/4)*4 ) != 0 ) break; - // Rather do it in chunks, to avoid allocationg huge buf - #define VFW_SIZE 128 - printf( "FW%d\r\n", nr ); - int jj; - uint8_t __attribute__ ((aligned (32))) buf[VFW_SIZE]; - for(jj=0; jjdatlen ? datlen%VFW_SIZE : VFW_SIZE ) != 0 ) goto failfx; - } - #endif - - buffend += ets_sprintf(buffend, "FX%d\t%d\r\n", nr, siz ); - break; - } - } -failfx: - buffend += ets_sprintf(buffend, "!FX\r\n" ); - break; - case 'r': case 'R': //Flash Read (FR#\n) <- # = sector. - if( colon ) - { - colon++; - int datlen = my_atoi( colon ); - datlen = (datlen/4)*4; //Must be multiple of 4 bytes - if( datlen <= 1280 ) - { - buffend += ets_sprintf(buffend, "FR%08d\t%04d\t", nr, datlen ); //Caution: This string must be a multiple of 4 bytes. - spi_flash_read( nr, (uint32*)buffend, datlen ); - buffend += datlen; - break; - } - } - buffend += ets_sprintf(buffend, "!FR\r\n" ); - break; - } - - flashchip->chip_size = 0x00080000; - return buffend - buffer; - } - case 'i': case 'I': //Respond with device info. - { - buffend += ets_sprintf(buffend, "I" ); - int i; - for( i = 0; i < 2 ;i++ ) - { - struct ip_info ipi; - wifi_get_ip_info( i, &ipi ); - buffend += ets_sprintf(buffend, "\t"IPSTR, IP2STR(&ipi.ip) ); - } - buffend += ets_sprintf(buffend, "\r\n" ); - return buffend - buffer; - } - case 'w': case 'W': // (W1:SSID:PASSWORD) (To connect) or (W2) to be own base station. ...or WI, to get info... or WS to scan. - { - int c1l = 0; - int c2l = 0; - char * colon = (char *) ets_strstr( (char*)&pusrdata[2], "\t" ); - char * colon2 = (colon)?((char *)ets_strstr( (char*)(colon+1), "\t" )):0; - char * colon3 = (colon2)?((char *)ets_strstr( (char*)(colon2+1), "\t" )):0; - char * colon4 = (colon3)?((char *)ets_strstr( (char*)(colon3+1), "\t" )):0; - char * extra = colon2; - - char mac[6] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; - int bssid_set = 0; - if( colon ) { *colon = 0; colon++; } - if( colon2 ) { *colon2 = 0; colon2++; } - if( colon3 ) { *colon3 = 0; colon3++; } - if( colon4 ) { *colon4 = 0; colon4++; } - - if( colon ) { c1l = ets_strlen( colon ); } - if( colon2 ) { c2l = ets_strlen( colon2 ); } - if( colon3 ) - { - bssid_set = ets_str2macaddr( mac, colon3 )?1:0; - if( ( mac[0] == 0x00 || mac[0] == 0xff ) && - ( mac[1] == 0x00 || mac[1] == 0xff ) && - ( mac[2] == 0x00 || mac[2] == 0xff ) && - ( mac[3] == 0x00 || mac[3] == 0xff ) && - ( mac[4] == 0x00 || mac[4] == 0xff ) && - ( mac[5] == 0x00 || mac[5] == 0xff ) ) bssid_set = 0; - } - - if( extra ) - { - for( ; *extra; extra++ ) - { - if( *extra < 32 ) - { - *extra = 0; - break; - } - } - } - - switch (pusrdata[1]) - { - case '1': //Station mode - case '2': //AP Mode - if( colon && colon2 && ets_strlen( colon ) > 1 ) - { - if( c1l > 31 ) c1l = 31; - if( c2l > 63 ) c2l = 63; - - printf( "Switching to: \"%s\"/\"%s\" (%d/%d). BSSID_SET: %d [%c]\n", colon, colon2, c1l, c2l, bssid_set, pusrdata[1] ); - - if( pusrdata[1] == '1' ) - { - struct station_config stationConf; - wifi_station_get_config(&stationConf); - - os_memcpy(&stationConf.ssid, colon, c1l); - os_memcpy(&stationConf.password, colon2, c2l); - - stationConf.ssid[c1l] = 0; - stationConf.password[c2l] = 0; - stationConf.bssid_set = bssid_set; - os_memcpy( stationConf.bssid, mac, 6 ); - - printf( "-->'%s'\n",stationConf.ssid); - printf( "-->'%s'\n",stationConf.password); - - EnterCritical(); -// wifi_station_set_config(&stationConf); - wifi_set_opmode( 1 ); - wifi_station_set_config(&stationConf); - wifi_station_connect(); - ExitCritical(); - -// wifi_station_get_config( &stationConf ); - - - buffend += ets_sprintf( buffend, "W1\r\n" ); - printf( "Switching.\n" ); - } - else - { - struct softap_config config; - char macaddr[6]; - wifi_softap_get_config( &config ); - - wifi_get_macaddr(SOFTAP_IF, macaddr); - - os_memcpy( &config.ssid, colon, c1l ); - os_memcpy( &config.password, colon2, c2l ); - config.ssid_len = c1l; -#if 0 //We don't support encryption. - config.ssid[c1l] = 0; - config.password[c2l] = 0; - - config.authmode = 0; - if( colon3 ) - { - int k; - for( k = 0; enctypes[k]; k++ ) - { - if( strcmp( colon3, enctypes[k] ) == 0 ) - config.authmode = k; - } - } - -#endif - - int chan = (colon4)?my_atoi(colon4):config.channel; - if( chan == 0 || chan > 13 ) chan = 1; - config.channel = chan; - -// printf( "Mode now. %s %s %d %d %d %d %d\n", config.ssid, config.password, config.ssid_len, config.channel, config.authmode, config.max_connection ); -// printf( "Mode Set. %d\n", wifi_get_opmode() ); - - EnterCritical(); - wifi_softap_set_config(&config); - wifi_set_opmode( 2 ); - ExitCritical(); - printf( "Switching SoftAP: %d %d.\n", chan, config.authmode ); - - buffend += ets_sprintf( buffend, "W2\r\n" ); - } - } - break; - case 'I': - { - char macmap[15]; - int mode = wifi_get_opmode(); - - buffend += ets_sprintf( buffend, "WI%d", mode ); - - if( mode == 2 ) - { - uint8_t mac[6]; - struct softap_config ap; - wifi_softap_get_config( &ap ); - wifi_get_macaddr( 1, mac ); - ets_sprintf( macmap, MACSTR, MAC2STR( mac ) ); - buffend += ets_sprintf( buffend, "\t%s\t%s\t%s\t%d", ap.ssid, ap.password, macmap, ap.channel ); - } - else - { - struct station_config sc; - ets_memset( &sc, 0, sizeof( sc ) ); - wifi_station_get_config( &sc ); - if( sc.bssid_set ) - ets_sprintf( macmap, MACSTR, MAC2STR( sc.bssid ) ); - else - macmap[0] = 0; - buffend += ets_sprintf( buffend, "\t%s\t%s\t%s\t%d", sc.ssid, sc.password, macmap, wifi_get_channel() ); - } - } - break; - case 'X': case 'x': - { - int rssi = wifi_station_get_rssi(); - if( rssi >= 0 ) - { - buffend += ets_sprintf( buffend, "WX-" ); - } - else - { - buffend += ets_sprintf( buffend, "WX%d", wifi_station_get_rssi() ); - } - break; - } - case 'S': case 's': - { - int i, r; - struct scan_config sc; - - scanplace = 0; - - sc.ssid = 0; - sc.bssid = 0; - sc.channel = 0; - sc.show_hidden = 1; - EnterCritical(); - if( wifi_get_opmode() == SOFTAP_MODE ) - { - wifi_set_opmode_current( STATION_MODE ); - need_to_switch_back_to_soft_ap = 1; - } - - r = wifi_station_scan(&sc, scandone ); - ExitCritical(); - - buffend += ets_sprintf( buffend, "WS%d\n", r ); - uart0_sendStr(buffer); - - break; - } - break; - case 'R': case 'r': - { - int i, r; - - buffend += ets_sprintf( buffend, "WR%d\n", scanplace ); - - for( i = 0; i < scanplace && buffend - buffer < retsize - 64; i++ ) - { - buffend += ets_sprintf( buffend, "#%s\t%s\t%d\t%d\t%s\n", - totalscan[i].name, totalscan[i].mac, totalscan[i].rssi, totalscan[i].channel, enctypes[totalscan[i].encryption] ); - } - - break; - } - break; - } - return buffend - buffer; - } - case 'G': case 'g': - { - static const uint32_t AFMapper[16] = { - 0, PERIPHS_IO_MUX_U0TXD_U, 0, PERIPHS_IO_MUX_U0RXD_U, - 0, 0, 1, 1, - 1, 1, 1, 1, - PERIPHS_IO_MUX_MTDI_U, PERIPHS_IO_MUX_MTCK_U, PERIPHS_IO_MUX_MTMS_U, PERIPHS_IO_MUX_MTDO_U }; - - int nr = my_atoi( &pusrdata[2] ); - - - if( AFMapper[nr] == 1 ) - { - buffend += ets_sprintf( buffend, "!G%c%d\n", pusrdata[1], nr ); - return buffend - buffer; - } - else if( AFMapper[nr] ) - { - PIN_FUNC_SELECT( AFMapper[nr], 3); //Select AF pin to be GPIO. - } - - switch( pusrdata[1] ) - { - case '0': - case '1': - GPIO_OUTPUT_SET(GPIO_ID_PIN(nr), pusrdata[1]-'0' ); - buffend += ets_sprintf( buffend, "G%c%d", pusrdata[1], nr ); - g_gpiooutputmask |= (1< 0 ) - { - //YUCK! Since SDK 1.4.0, we have to do this ridiculous thing to respond to senders. - struct espconn * rc = (struct espconn *)arg; - remot_info * ri = 0; - espconn_get_connection_info( rc, &ri, 0); - ets_memcpy( rc->proto.udp->remote_ip, ri->remote_ip, 4 ); - rc->proto.udp->remote_port = ri->remote_port; - espconn_sendto( rc, retbuf, r ); - } -} - -void ICACHE_FLASH_ATTR CSPreInit() -{ - int opmode = wifi_get_opmode(); - printf( "Opmode: %d\n", opmode ); - if( opmode == 1 ) - { - struct station_config sc; - wifi_station_get_config(&sc); - printf( "Station mode: \"%s\":\"%s\" (bssid_set:%d)\n", sc.ssid, sc.password, sc.bssid_set ); - if( sc.ssid[0] == 0 && !sc.bssid_set ) - { - wifi_set_opmode( 2 ); - opmode = 2; - } - else - { - wifi_station_connect(); - } - } - if( opmode == 2 ) - { - struct softap_config sc; - wifi_softap_get_config(&sc); - printf( "SoftAP mode: \"%s\":\"%s\"\n", sc.ssid, sc.password ); - } -} - -void ICACHE_FLASH_ATTR CSInit() -{ - pUdpServer = (struct espconn *)os_zalloc(sizeof(struct espconn)); - ets_memset( pUdpServer, 0, sizeof( struct espconn ) ); - pUdpServer->type = ESPCONN_UDP; - pUdpServer->proto.udp = (esp_udp *)os_zalloc(sizeof(esp_udp)); - pUdpServer->proto.udp->local_port = 7878; - espconn_regist_recvcb(pUdpServer, issue_command_udp); - espconn_create( pUdpServer ); - - pHTTPServer = (struct espconn *)os_zalloc(sizeof(struct espconn)); - ets_memset( pHTTPServer, 0, sizeof( struct espconn ) ); - espconn_create( pHTTPServer ); - pHTTPServer->type = ESPCONN_TCP; - pHTTPServer->state = ESPCONN_NONE; - pHTTPServer->proto.tcp = (esp_tcp *)os_zalloc(sizeof(esp_tcp)); - pHTTPServer->proto.tcp->local_port = 80; - espconn_regist_connectcb(pHTTPServer, httpserver_connectcb); - espconn_accept(pHTTPServer); - espconn_regist_time(pHTTPServer, 15, 0); //timeout -} - -void ICACHE_FLASH_ATTR CSTick( int slowtick ) -{ - static uint8_t tick_flag = 0; - - if( slowtick ) - { - tick_flag = 1; - return; - } - - if( need_to_switch_back_to_soft_ap == 2 ) - { - need_to_switch_back_to_soft_ap = 0; - EnterCritical(); - wifi_set_opmode_current( SOFTAP_MODE ); - ExitCritical(); - } - - HTTPTick(0); - - //TRICKY! If we use the timer to initiate this, connecting to people's networks - //won't work! I don't know why, so I do it here. this does mean sometimes it'll - //pause, though. - if( tick_flag ) - { - tick_flag = 0; - HTTPTick(1); - } -} - diff --git a/embedded8266/common/commonservices.h b/embedded8266/common/commonservices.h deleted file mode 100644 index 298aa06..0000000 --- a/embedded8266/common/commonservices.h +++ /dev/null @@ -1,30 +0,0 @@ -//Copyright 2015 <>< Charles Lohr Under the MIT/x11 License, NewBSD License or -// ColorChord License. You Choose. - -#ifndef _COMMON_H -#define _COMMON_H - -#include "c_types.h" - -//Returns nr bytes to return. You must allocate retdata. -//It MUST be at least 1,300 bytes large and it MUST be 32-bit aligned. -//NOTE: It is SAFE to use pusrdata and retdata as the same buffer. -int ICACHE_FLASH_ATTR issue_command(char * retdata, int retsize, char *pusrdata, unsigned short len); - -//Includes UDP Control + HTTP Interfaces -void ICACHE_FLASH_ATTR CSPreInit(); -void ICACHE_FLASH_ATTR CSInit(); -void ICACHE_FLASH_ATTR CSTick( int slowtick ); - -//You must provide: -//Critical should not lock interrupts, just disable services that have problems -//with double-interrupt faults. I.e. turn off/on any really fast timer interrupts. -//These generally only get called when doing serious operations like reflashing. -void EnterCritical(); -void ExitCritical(); - -//If we receive a command that's not F, E or W (Flash Echo Wifi) -int ICACHE_FLASH_ATTR CustomCommand(char * buffer, int retsize, char *pusrdata, unsigned short len); - -#endif - diff --git a/embedded8266/common/esp8266_rom.h b/embedded8266/common/esp8266_rom.h deleted file mode 100644 index 3ac9fdf..0000000 --- a/embedded8266/common/esp8266_rom.h +++ /dev/null @@ -1,92 +0,0 @@ -#ifndef _ESP8266_ROM_FUNCTS -#define _ESP8266_ROM_FUNCTS - -//This is my best guess at some of the ROM functions for the ESP8266. -//I have no idea if this stuff is correct! - -#include -#include - -void Cache_Read_Disable(); //Can't seem to operate... -void Cache_Read_Enable(); - -//PROVIDE ( Cache_Read_Disable = 0x400047f0 ); -//PROVIDE ( Cache_Read_Enable = 0x40004678 ); - -typedef struct { - uint32_t i[2]; - uint32_t buf[4]; - unsigned char in[64]; - unsigned char digest[16]; -} MD5_CTX; - -void MD5Init ( MD5_CTX *mdContext); -void MD5Update( MD5_CTX *mdContext, const unsigned char *inBuf, unsigned int inLen); -void MD5Final ( unsigned char hash[], MD5_CTX *mdContext); - - -//SHA Stuff from: https://github.com/pvvx/esp8266web/blob/master/app/include/bios/cha1.h -#define SHA1_HASH_LEN 20 -typedef struct { - uint32 state[5]; - uint32 count[2]; - uint8 buffer[64]; - uint8 extra[40]; -} SHA1_CTX; - -void SHA1Init(SHA1_CTX* context); -void SHA1Update(SHA1_CTX* context, - const uint8 *data, - size_t len); -void SHA1Final(uint8 digest[SHA1_HASH_LEN], SHA1_CTX* context); -void SHA1Transform(uint32 state[5], const uint8 buffer[64]); - - - -//SPI_FLASH_SEC_SIZE 4096 - -void SPIEraseSector(uint16 sec); -void SPIEraseArea(uint32 start,uint32 len); //Doesn't work? -void SPIEraseBlock(uint16 blk); -void SPIWrite(uint32 des_addr, uint32_t *src_addr, uint32_t size); -void SPIRead(uint32 src_addr, uint32_t *des_addr, uint16_t size); -void SPILock( uint16_t sec ); //??? I don't use this? -void SPIUnlock( ); //??? I don't use this? -> Seems to crash. - -extern SpiFlashChip * flashchip; //don't forget: flashchip->chip_size = 0x01000000; - - -/* - flashchip->chip_size = 0x01000000; - - { - uint32_t __attribute__ ((aligned (16))) t[1024]; - t[0] = 0xAABBCCDD; - t[1] = 0xEEFF0011; - for( i = 0; i < 10000; i++ ) uart0_sendStr("A\n"); - SPIEraseSector( 1000000/4096 ); - for( i = 0; i < 10000; i++ ) uart0_sendStr("B\n"); - SPIWrite( 1000000, t, 8 ); - } - - for( i = 0; i < 10000; i++ ) uart0_sendStr("C\n"); - - while(1) - { - char ct[32]; - uint32_t __attribute__ ((aligned (16))) ret = 0x12345678; -// SPIRead( 1000000, &ret, 4 ); - ret = *(uint32_t*)(0x40200000+1000004); - ets_sprintf( ct, "%08x\n", ret ); - printf( ct ); - } -*/ - - -void software_reset(); - - - -#endif - - diff --git a/embedded8266/common/flash_rewriter.c b/embedded8266/common/flash_rewriter.c deleted file mode 100644 index e0ff666..0000000 --- a/embedded8266/common/flash_rewriter.c +++ /dev/null @@ -1,285 +0,0 @@ -//Copyright 2015 <>< Charles Lohr Under the MIT/x11 License, NewBSD License or -// ColorChord License. You Choose. - -#include "flash_rewriter.h" -#include -#include -#include - -#define SRCSIZE 4096 -#define BLKSIZE 65536 - -static const char * key = ""; -static int keylen = 0; - - -static int MyRewriteFlash( char * command, int commandlen ) -{ - MD5_CTX md5ctx; - char __attribute__ ((aligned (32))) buffer[512]; - char * colons[8]; - int i, ipl = 0; - int p; - //[from_address]\t[to_address]\t[size]\t[MD5(key+data)]\t[from_address]\t[to_address]\t[size]\t[MD5(key+data)] - command[commandlen] = 0; - - flashchip->chip_size = 0x01000000; - - ets_wdt_disable(); - - colons[ipl++] = &command[0]; - for( i = 0; i < commandlen; i++ ) - { - if( command[i] == 0 ) break; - if( command[i] == '\t' ) - { - if( ipl >= 8 ) break; - command[i] = 0; - colons[ipl++] = &command[i+1]; - } - } - if( ipl != 8 ) - { - return 1; - } - uint32_t from1 = my_atoi( colons[0] ); - uint32_t to1 = my_atoi( colons[1] ); - int32_t size1 = my_atoi( colons[2] ); - char * md51 = colons[3]; - char md5h1raw[48]; - char md5h1[48]; - uint32_t from2 = my_atoi( colons[4] ); - uint32_t to2 = my_atoi( colons[5] ); - int32_t size2 = my_atoi( colons[6] ); - char * md52 = colons[7]; - char md5h2raw[48]; - char md5h2[48]; - - if( from1 == 0 || from2 == 0 || size1 == 0 ) - { - return 2; - } - - if( ( from1 & 0xfff ) || ( from2 & 0xfff ) || ( to1 & 0xfff ) || ( to2 & 0xfff ) ) - { - return 3; - } - - - /////////////////////////////// - char st[400]; -/* - ets_sprintf( st, "!!%08x", (((uint32_t*)(0x40200000 + from1))) ); - uart0_sendStr( st ); - - for( i = 0; i < 200; i++ ) - { - ets_sprintf( st, "%08x", (uint32_t)(((uint32_t*)(0x40200000 + from1))[i]) ); - uart0_sendStr( st ); - } - uart0_sendStr( "+\n" ); - -/* - - - uint32_t __attribute__ ((aligned (32))) readr = 0xAAAAAAAA; - SPIRead( from1, &readr, 4 ); - ets_sprintf( st, ":%08x\n", readr ); - uart0_sendStr( st ); - readr = 0x12345678; - - SPIRead( from1+4, &readr, 4 ); - ets_sprintf( st, ":%08x\n", readr ); - uart0_sendStr( st ); - uart0_sendStr( "\n" ); - - ets_sprintf( st, "TT: %08x ADDY: %08x\n", from1, &readr ); - uart0_sendStr( st ); - - - - - readr = 0xAAAAAAAA; - spi_flash_read( from1, &readr, 4 ); - ets_sprintf( st, "+%08x\n", readr ); - uart0_sendStr( st ); - - readr = 0xbbbbbbbb; - spi_flash_read( from1+4, &readr, 4 ); - ets_sprintf( st, "+%08x\n", readr ); - uart0_sendStr( st ); - -*/ - -/* - MD5Init( &md5ctx ); - MD5Update( &md5ctx, (uint8_t*)0x40200000 + from1, 4 ); - MD5Final( md5h1raw, &md5ctx ); - for( i = 0; i < 16; i++ ) - { - ets_sprintf( md5h1+i*2, "%02x", md5h1raw[i] ); - } - uart0_sendStr( "Hash 1:" ); - uart0_sendStr( md5h1 ); - uart0_sendStr( "!\n" ); -*/ - - ////////////////////////////// - - ets_sprintf( st, "Computing Hash 1: %08x size %d\n", from1, size1 ); - uart0_sendStr( st ); - - MD5Init( &md5ctx ); - if( keylen ) - MD5Update( &md5ctx, key, keylen ); -// MD5Update( &md5ctx, (uint8_t*)0x40200000 + from1, size1 ); - SafeMD5Update( &md5ctx, (uint8_t*)0x40200000 + from1, size1 ); - MD5Final( md5h1raw, &md5ctx ); - for( i = 0; i < 16; i++ ) - { - ets_sprintf( md5h1+i*2, "%02x", md5h1raw[i] ); - } - - uart0_sendStr( "Hash 1:" ); - uart0_sendStr( md5h1 ); - uart0_sendStr( "\n" ); - - for( i = 0; i < 32; i++ ) - { - if( md5h1[i] != md51[i] ) - { - //printf( "%s != %s", md5h1, md51 ); - uart0_sendStr( "File 1 MD5 mismatch\nActual:" ); - uart0_sendStr( md5h1 ); - uart0_sendStr( "\nExpected:" ); - uart0_sendStr( md51 ); - uart0_sendStr( "\n" ); - return 4; - } - } - - ets_sprintf( st, "Computing Hash 2: %08x size %d\n", from2, size2 ); - uart0_sendStr( st ); - - MD5Init( &md5ctx ); - if( keylen ) - MD5Update( &md5ctx, key, keylen ); - SafeMD5Update( &md5ctx, (uint8_t*)0x40200000 + from2, size2 ); - MD5Final( md5h2raw, &md5ctx ); - for( i = 0; i < 16; i++ ) - { - ets_sprintf( md5h2+i*2, "%02x", md5h2raw[i] ); - } - - uart0_sendStr( "Hash 2:" ); - uart0_sendStr( md5h2 ); - uart0_sendStr( "\n" ); - -/* for( i = 0; i <= size2/4; i++ ) - { - uint32_t j = ((uint32_t*)(0x40200000 + from2))[i]; - ets_sprintf( st, "%02x%02x%02x%02x\n", (uint8_t)(j>>0), (uint8_t)(j>>8), (uint8_t)(j>>16), (uint8_t)(j>>24) ); - uart0_sendStr( st ); - }*/ - - for( i = 0; i < 32; i++ ) - { - if( md5h2[i] != md52[i] ) - { - uart0_sendStr( "File 2 MD5 mismatch\nActual:" ); - uart0_sendStr( md5h2 ); - uart0_sendStr( "\nExpected:" ); - uart0_sendStr( md52 ); - uart0_sendStr( "\n" ); - return 5; - } - } - - //Need to round sizes up. - size1 = ((size1-1)&(~0xfff))+1; - size2 = ((size2-1)&(~0xfff))+1; - - ets_sprintf( st, "Copy 1: %08x to %08x, size %d\n", from1, to1, size1 ); - uart0_sendStr( st ); - ets_sprintf( st, "Copy 2: %08x to %08x, size %d\n", from2, to2, size2 ); - uart0_sendStr( st ); - - //Everything checked out... Need to move the flashes. - - ets_delay_us( 1000 ); - - //Disable all interrupts. - ets_intr_lock(); - - uart_tx_one_char( 'A' ); - - int j; - ipl = (size1/BLKSIZE)+1; - p = to1/BLKSIZE; - for( i = 0; i < ipl; i++ ) - { - SPIEraseBlock( p++ ); - - for( j = 0; j < BLKSIZE/SRCSIZE; j++ ) - { - SPIWrite( to1, (uint32_t*)(0x40200000 + from1), SRCSIZE ); - to1 += SRCSIZE; - from1 += SRCSIZE; - } - } - - uart_tx_one_char( 'B' ); - - ipl = (size2/BLKSIZE)+1; - p = to2/BLKSIZE; - for( i = 0; i < ipl; i++ ) - { - SPIEraseBlock( p++ ); - for( j = 0; j < BLKSIZE/SRCSIZE; j++ ) - { - SPIWrite( to2, (uint32_t*)(0x40200000 + from2), SRCSIZE ); - to2 += SRCSIZE; - from2 += SRCSIZE; - } - } - - uart_tx_one_char( 'C' ); - - - void(*rebootme)() = (void(*)())0x40000080; - rebootme(); - - -// system_upgrade_reboot(); -// software_reset(); //Doesn't seem to boot back in. - - - //Destinations are erased. Copy over the other part. -// for( i = 0; i < ; i++ ) - - /*Things I know: - flashchip->chip_size = 0x01000000; - SPIEraseSector( 1000000/4096 ); - SPIWrite( 1000000, &t, 4 ); << Charles Lohr Under the MIT/x11 License, NewBSD License or -// ColorChord License. You Choose. - -#ifndef _FLASH_REWRITER_H -#define _FLASH_REWRITER_H - -//Unusual, but guarentees that the code resides in IRAM. -/* -Usage: - [from_address]:[to_address]:[size]:[MD5(key+data)]:[from_address]:[to_address]:[size]:[MD5(key+data)][extra byte required] - - NOTE: YOU MUST USE 4096-byte-aligned boundaries. - - Note: this will modify the text in "command" -*/ - - -extern int (*GlobalRewriteFlash)( char * command, int commandlen ); - -#endif diff --git a/embedded8266/common/http.c b/embedded8266/common/http.c deleted file mode 100644 index 558404e..0000000 --- a/embedded8266/common/http.c +++ /dev/null @@ -1,625 +0,0 @@ -//Copyright 2015 <>< Charles Lohr Under the MIT/x11 License, NewBSD License or -// ColorChord License. You Choose. - -#include "http.h" -#include "mystuff.h" -#include "esp8266_rom.h" - -#define HTDEBUG( x... ) printf( x ) - -//#define ISKEEPALIVE "keep-alive" -#define ISKEEPALIVE "close" - -struct HTTPConnection HTTPConnections[HTTP_CONNECTIONS]; -struct HTTPConnection * curhttp; -uint8 * curdata; -uint16 curlen; -uint8 wsmask[4]; -uint8 wsmaskplace; - - -ICACHE_FLASH_ATTR void InternalStartHTTP( ); -ICACHE_FLASH_ATTR void HTTPHandleInternalCallback( ); - -ICACHE_FLASH_ATTR void HTTPClose( ) -{ - //This is dead code, but it is a testament to Charles. - //Do not do this here. Wait for the ESP to tell us the - //socket is successfully closed. - //curhttp->state = HTTP_STATE_NONE; - curhttp->state = HTTP_WAIT_CLOSE; - espconn_disconnect( curhttp->socket ); -} - - -void ICACHE_FLASH_ATTR HTTPGotData( ) -{ - uint8 c; - curhttp->timeout = 0; - while( curlen-- ) - { - c = HTTPPOP; - // sendhex2( h->state ); sendchr( ' ' ); - - switch( curhttp->state ) - { - case HTTP_STATE_WAIT_METHOD: - if( c == ' ' ) - { - curhttp->state = HTTP_STATE_WAIT_PATH; - curhttp->state_deets = 0; - } - break; - case HTTP_STATE_WAIT_PATH: - curhttp->pathbuffer[curhttp->state_deets++] = c; - if( curhttp->state_deets == MAX_PATHLEN ) - { - curhttp->state_deets--; - } - - if( c == ' ' ) - { - //Tricky: If we're a websocket, we need the whole header. - curhttp->pathbuffer[curhttp->state_deets-1] = 0; - curhttp->state_deets = 0; - - if( strncmp( (const char*)curhttp->pathbuffer, "/d/ws", 5 ) == 0 ) - { - curhttp->state = HTTP_STATE_DATA_WEBSOCKET; - curhttp->state_deets = 0; - } - else - { - curhttp->state = HTTP_STATE_WAIT_PROTO; - } - } - break; - case HTTP_STATE_WAIT_PROTO: - if( c == '\n' ) - { - curhttp->state = HTTP_STATE_WAIT_FLAG; - } - break; - case HTTP_STATE_WAIT_FLAG: - if( c == '\n' ) - { - curhttp->state = HTTP_STATE_DATA_XFER; - InternalStartHTTP( ); - } - else if( c != '\r' ) - { - curhttp->state = HTTP_STATE_WAIT_INFLAG; - } - break; - case HTTP_STATE_WAIT_INFLAG: - if( c == '\n' ) - { - curhttp->state = HTTP_STATE_WAIT_FLAG; - curhttp->state_deets = 0; - } - break; - case HTTP_STATE_DATA_XFER: - //Ignore any further data? - curlen = 0; - break; - case HTTP_STATE_DATA_WEBSOCKET: - WebSocketGotData( c ); - break; - case HTTP_WAIT_CLOSE: - if( curhttp->keep_alive ) - { - curhttp->state = HTTP_STATE_WAIT_METHOD; - } - else - { - HTTPClose( ); - } - break; - default: - break; - }; - } - -} - - -static void DoHTTP( uint8_t timed ) -{ - switch( curhttp->state ) - { - case HTTP_STATE_NONE: //do nothing if no state. - break; - case HTTP_STATE_DATA_XFER: - if( TCPCanSend( curhttp->socket, 1024 ) ) //TCPDoneSend - { - if( curhttp->is_dynamic ) - { - HTTPCustomCallback( ); - } - else - { - HTTPHandleInternalCallback( ); - } - } - break; - case HTTP_WAIT_CLOSE: - if( TCPDoneSend( curhttp->socket ) ) - { - if( curhttp->keep_alive ) - { - curhttp->state = HTTP_STATE_WAIT_METHOD; - } - else - { - HTTPClose( ); - } - } - break; - case HTTP_STATE_DATA_WEBSOCKET: - if( TCPCanSend( curhttp->socket, 1024 ) ) //TCPDoneSend - { - WebSocketTickInternal(); - } - break; - default: - if( timed ) - { - if( curhttp->timeout++ > HTTP_SERVER_TIMEOUT ) - { - HTTPClose( ); - } - } - } -} - -void HTTPTick( uint8_t timed ) -{ - uint8_t i; - for( i = 0; i < HTTP_CONNECTIONS; i++ ) - { - if( curhttp ) { printf( "Unexpected Race Condition\n" );} - curhttp = &HTTPConnections[i]; - DoHTTP( timed ); - curhttp = 0; - } -} - -void ICACHE_FLASH_ATTR HTTPHandleInternalCallback( ) -{ - uint16_t i, bytestoread; - - if( curhttp->isdone ) - { - HTTPClose( ); - return; - } - if( curhttp->is404 ) - { - START_PACK - PushString("HTTP/1.1 404 Not Found\r\nConnection: close\r\n\r\nFile not found."); - EndTCPWrite( curhttp->socket ); - curhttp->isdone = 1; - return; - } - if( curhttp->isfirst ) - { - char stto[10]; - uint8_t slen = os_strlen( curhttp->pathbuffer ); - const char * k; - - START_PACK; - //TODO: Content Length? MIME-Type? - PushString("HTTP/1.1 200 Ok\r\n"); - - if( curhttp->bytesleft < 0xfffffffe ) - { - PushString("Connection: "ISKEEPALIVE"\r\nContent-Length: "); - Uint32To10Str( stto, curhttp->bytesleft ); - PushBlob( stto, os_strlen( stto ) ); - curhttp->keep_alive = 1; - } - else - { - PushString("Connection: close\r\n"); - curhttp->keep_alive = 0; - } - - PushString( "\r\nContent-Type: " ); - //Content-Type? - while( slen && ( curhttp->pathbuffer[--slen] != '.' ) ); - k = &curhttp->pathbuffer[slen+1]; - if( strcmp( k, "mp3" ) == 0 ) - { - PushString( "audio/mpeg3" ); - } - else if( strcmp( k, "gz" ) == 0 ) - { - PushString( "text/plain\r\nContent-Encoding: gzip\r\nCache-Control: public, max-age=3600" ); - } - else if( curhttp->bytesleft == 0xfffffffe ) - { - PushString( "text/plain" ); - } - else - { - PushString( "text/html" ); - } - - PushString( "\r\n\r\n" ); - EndTCPWrite( curhttp->socket ); - curhttp->isfirst = 0; - - return; - } - - START_PACK - - for( i = 0; i < 4 && curhttp->bytesleft; i++ ) - { - int bpt = curhttp->bytesleft; - if( bpt > MFS_SECTOR ) bpt = MFS_SECTOR; - curhttp->bytesleft = MFSReadSector( generic_ptr, &curhttp->data.filedescriptor ); - generic_ptr += bpt; - } - - EndTCPWrite( curhttp->socket ); - - if( !curhttp->bytesleft ) - curhttp->isdone = 1; -} - -void InternalStartHTTP( ) -{ - int32_t clusterno; - int8_t i; - const char * path = &curhttp->pathbuffer[0]; - - if( curhttp->pathbuffer[0] == '/' ) - path++; - - if( path[0] == 'd' && path[1] == '/' ) - { - curhttp->is_dynamic = 1; - curhttp->isfirst = 1; - curhttp->isdone = 0; - curhttp->is404 = 0; - HTTPCustomStart(); - return; - } - - if( !path[0] ) - { - path = "index.html"; - } - - i = MFSOpenFile( path, &curhttp->data.filedescriptor ); - curhttp->bytessofar = 0; - - if( i < 0 ) - { - HTDEBUG( "404(%s)\n", path ); - curhttp->is404 = 1; - curhttp->isfirst = 1; - curhttp->isdone = 0; - curhttp->is_dynamic = 0; - } - else - { - curhttp->isfirst = 1; - curhttp->isdone = 0; - curhttp->is404 = 0; - curhttp->is_dynamic = 0; - curhttp->bytesleft = curhttp->data.filedescriptor.filelen; - } - -} - - - - - - - - -LOCAL void ICACHE_FLASH_ATTR -http_disconnetcb(void *arg) { - struct espconn *pespconn = (struct espconn *) arg; - ((struct HTTPConnection * )pespconn->reverse)->state = 0; -} - -LOCAL void ICACHE_FLASH_ATTR -http_recvcb(void *arg, char *pusrdata, unsigned short length) -{ - struct espconn *pespconn = (struct espconn *) arg; - - //Though it might be possible for this to interrupt the other - //tick task, I don't know if this is actually a probelem. - //I'm adding this back-up-the-register just in case. - if( curhttp ) { printf( "Unexpected Race Condition\n" );} - - curhttp = (struct HTTPConnection * )pespconn->reverse; - curdata = (uint8*)pusrdata; - curlen = length; - HTTPGotData(); - curhttp = 0 ; - -} - -void ICACHE_FLASH_ATTR -httpserver_connectcb(void *arg) -{ - int i; - struct espconn *pespconn = (struct espconn *)arg; - - for( i = 0; i < HTTP_CONNECTIONS; i++ ) - { - if( HTTPConnections[i].state == 0 ) - { - pespconn->reverse = &HTTPConnections[i]; - HTTPConnections[i].socket = pespconn; - HTTPConnections[i].state = HTTP_STATE_WAIT_METHOD; - break; - } - } - if( i == HTTP_CONNECTIONS ) - { - espconn_disconnect( pespconn ); - return; - } - -// espconn_set_opt(pespconn, ESPCONN_NODELAY); -// espconn_set_opt(pespconn, ESPCONN_COPY); - - espconn_regist_recvcb( pespconn, http_recvcb ); - espconn_regist_disconcb( pespconn, http_disconnetcb ); - -} - - -int ICACHE_FLASH_ATTR URLDecode( char * decodeinto, int maxlen, const char * buf ) -{ - int i = 0; - - for( ; buf && *buf; buf++ ) - { - char c = *buf; - if( c == '+' ) - { - decodeinto[i++] = ' '; - } - else if( c == '?' || c == '&' ) - { - break; - } - else if( c == '%' ) - { - if( *(buf+1) && *(buf+2) ) - { - decodeinto[i++] = hex2byte( buf+1 ); - buf += 2; - } - } - else - { - decodeinto[i++] = c; - } - if( i >= maxlen -1 ) break; - - } - decodeinto[i] = 0; - return i; -} - - - -void ICACHE_FLASH_ATTR WebSocketGotData( uint8_t c ) -{ - switch( curhttp->state_deets ) - { - case 0: - { - int i = 0; - char inkey[120]; - unsigned char hash[SHA1_HASH_LEN]; - SHA1_CTX c; - int inkeylen = 0; - - curhttp->is_dynamic = 1; - while( curlen > 20 ) - { - curdata++; curlen--; - if( strncmp( curdata, "Sec-WebSocket-Key: ", 19 ) == 0 ) - { - break; - } - } - - if( curlen <= 21 ) - { - HTDEBUG( "No websocket key found.\n" ); - curhttp->state = HTTP_WAIT_CLOSE; - return; - } - - curdata+= 19; - curlen -= 19; - - -#define WS_KEY_LEN 36 -#define WS_KEY "258EAFA5-E914-47DA-95CA-C5AB0DC85B11" -#define WS_RETKEY_SIZEM1 32 - - while( curlen > 1 ) - { - uint8_t lc = *(curdata++); - inkey[i] = lc; - curlen--; - if( lc == '\r' ) - { - inkey[i] = 0; - break; - } - i++; - if( i >= sizeof( inkey ) - WS_KEY_LEN - 5 ) - { - HTDEBUG( "Websocket key too big.\n" ); - curhttp->state = HTTP_WAIT_CLOSE; - return; - } - } - if( curlen <= 1 ) - { - HTDEBUG( "Invalid websocket key found.\n" ); - curhttp->state = HTTP_WAIT_CLOSE; - return; - } - - if( i + WS_KEY_LEN + 1 >= sizeof( inkey ) ) - { - HTDEBUG( "WSKEY Too Big.\n" ); - curhttp->state = HTTP_WAIT_CLOSE; - return; - } - - ets_memcpy( &inkey[i], WS_KEY, WS_KEY_LEN + 1 ); - i += WS_KEY_LEN; - SHA1_Init( &c ); - SHA1_Update( &c, inkey, i ); - SHA1_Final( hash, &c ); - -#if (WS_RETKEY_SIZE > MAX_PATHLEN - 10 ) -#error MAX_PATHLEN too short. -#endif - - my_base64_encode( hash, SHA1_HASH_LEN, curhttp->pathbuffer + (MAX_PATHLEN-WS_RETKEY_SIZEM1) ); - - curhttp->bytessofar = 0; - curhttp->bytesleft = 0; - - NewWebSocket(); - - //Respond... - curhttp->state_deets = 1; - break; - } - case 1: - if( c == '\n' ) curhttp->state_deets = 2; - break; - case 2: - if( c == '\r' ) curhttp->state_deets = 3; - else curhttp->state_deets = 1; - break; - case 3: - if( c == '\n' ) curhttp->state_deets = 4; - else curhttp->state_deets = 1; - break; - case 5: //Established connection. - { - //XXX TODO: Seems to malfunction on large-ish packets. I know it has problems with 140-byte payloads. - - if( curlen < 5 ) //Can't interpret packet. - break; - - uint8_t fin = c & 1; - uint8_t opcode = c << 4; - uint16_t payloadlen = *(curdata++); - curlen--; - if( !(payloadlen & 0x80) ) - { - HTDEBUG( "Unmasked packet.\n" ); - curhttp->state = HTTP_WAIT_CLOSE; - break; - } - - payloadlen &= 0x7f; - - if( payloadlen == 127 ) - { - //Very long payload. - //Not supported. - HTDEBUG( "Unsupported payload packet.\n" ); - curhttp->state = HTTP_WAIT_CLOSE; - break; - } - else if( payloadlen == 126 ) - { - payloadlen = (curdata[0] << 8) | curdata[1]; - curdata += 2; - curlen -= 2; - } - - wsmask[0] = curdata[0]; - wsmask[1] = curdata[1]; - wsmask[2] = curdata[2]; - wsmask[3] = curdata[3]; - curdata += 4; - curlen -= 4; - wsmaskplace = 0; - - //XXX Warning: When packets get larger, they may split the - //websockets packets into multiple parts. We could handle this - //but at the cost of prescious RAM. I am chosing to just drop those - //packets on the floor, and restarting the connection. - if( curlen < payloadlen ) - { - HTDEBUG( "Websocket Fragmented. %d %d\n", curlen, payloadlen ); - curhttp->state = HTTP_WAIT_CLOSE; - return; - } - - WebSocketData( payloadlen ); - curlen -= payloadlen; - curdata += payloadlen; - - break; - } - default: - break; - } -} - -void ICACHE_FLASH_ATTR WebSocketTickInternal() -{ - switch( curhttp->state_deets ) - { - case 4: //Has key full HTTP header, etc. wants response. - START_PACK; - PushString( "HTTP/1.1 101 Switching Protocols\r\nUpgrade: websocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: " ); - PushString( curhttp->pathbuffer + (MAX_PATHLEN-WS_RETKEY_SIZEM1) ); - PushString( "\r\n\r\n" ); - EndTCPWrite( curhttp->socket ); - curhttp->state_deets = 5; - curhttp->keep_alive = 0; - break; - case 5: - WebSocketTick(); - break; - } -} - -void ICACHE_FLASH_ATTR WebSocketSend( uint8_t * data, int size ) -{ - START_PACK; - PushByte( 0x81 ); - if( size >= 126 ) - { - PushByte( 0x00 | 126 ); - PushByte( size>>8 ); - PushByte( size&0xff ); - } - else - { - PushByte( 0x00 | size ); - } - PushBlob( data, size ); - EndTCPWrite( curhttp->socket ); -} - -uint8_t WSPOPMASK() -{ - uint8_t mask = wsmask[wsmaskplace]; - wsmaskplace = (wsmaskplace+1)&3; - return (*curdata++)^(mask); -} - - diff --git a/embedded8266/common/http.h b/embedded8266/common/http.h deleted file mode 100644 index af06892..0000000 --- a/embedded8266/common/http.h +++ /dev/null @@ -1,99 +0,0 @@ -//Copyright 2015 <>< Charles Lohr Under the MIT/x11 License, NewBSD License or -// ColorChord License. You Choose. - -#ifndef _HTTP_H -#define _HTTP_H - -#include "mem.h" -#include "c_types.h" -#include "user_interface.h" -#include "ets_sys.h" -#include "driver/uart.h" -#include "osapi.h" -#include "espconn.h" -#include "mfs.h" -#include "mystuff.h" - -#define HTTP_SERVER_TIMEOUT 500 -#define HTTP_CONNECTIONS 8 -#define MAX_PATHLEN 80 - -//You must provide: -void ICACHE_FLASH_ATTR HTTPCustomStart( ); -void ICACHE_FLASH_ATTR HTTPCustomCallback( ); //called when we can send more data - -void ICACHE_FLASH_ATTR WebSocketData( int len ); -void ICACHE_FLASH_ATTR WebSocketTick( ); -void ICACHE_FLASH_ATTR WebSocketNew(); - -extern struct HTTPConnection * curhttp; -extern uint8 * curdata; -extern uint16 curlen; -extern uint8 wsmask[4]; -extern uint8 wsmaskplace; - -uint8_t WSPOPMASK(); -#define HTTPPOP (*curdata++) - -#define HTTP_STATE_NONE 0 -#define HTTP_STATE_WAIT_METHOD 1 -#define HTTP_STATE_WAIT_PATH 2 -#define HTTP_STATE_WAIT_PROTO 3 - -#define HTTP_STATE_WAIT_FLAG 4 -#define HTTP_STATE_WAIT_INFLAG 5 -#define HTTP_STATE_DATA_XFER 7 -#define HTTP_STATE_DATA_WEBSOCKET 8 - -#define HTTP_WAIT_CLOSE 15 - - -struct HTTPConnection -{ - uint8_t state:4; - uint8_t state_deets; - - //Provides path, i.e. "/index.html" but, for websockets, the last - //32 bytes of the buffer are used for the websockets key. - uint8_t pathbuffer[MAX_PATHLEN]; - uint8_t is_dynamic:1; - uint16_t timeout; - - union data_t - { - struct MFSFileInfo filedescriptor; - struct UserData { uint16_t a, b, c; } user; - } data; - - void * rcb; - void * rcbDat; //For websockets primarily. - - uint32_t bytesleft; - uint32_t bytessofar; - - uint8_t is404:1; - uint8_t isdone:1; - uint8_t isfirst:1; - uint8_t keep_alive:1; - uint8_t need_resend:1; - - struct espconn * socket; -} HTTPConnections[HTTP_CONNECTIONS]; - - - -void ICACHE_FLASH_ATTR httpserver_connectcb(void *arg); - -void HTTPTick( uint8_t timedtick ); -//you can call this a LOT if you want fast transfers, but be sure only to call it with a 1 at the update tick rate. - -int ICACHE_FLASH_ATTR URLDecode( char * decodeinto, int maxlen, const char * buf ); - -void ICACHE_FLASH_ATTR WebSocketGotData( uint8_t c ); -void ICACHE_FLASH_ATTR WebSocketTickInternal(); - -void ICACHE_FLASH_ATTR WebSocketSend( uint8_t * data, int size ); - - -#endif - diff --git a/embedded8266/common/http_custom.c b/embedded8266/common/http_custom.c deleted file mode 100644 index 4a1ee9d..0000000 --- a/embedded8266/common/http_custom.c +++ /dev/null @@ -1,176 +0,0 @@ -//Copyright 2015 <>< Charles Lohr Under the MIT/x11 License, NewBSD License or -// ColorChord License. You Choose. - -#include "http.h" -#include "mystuff.h" -#include "commonservices.h" - -static ICACHE_FLASH_ATTR void huge() -{ - uint8_t i = 0; - - START_PACK; - do - { - PushByte( 0 ); - PushByte( i ); - } while( ++i ); //Tricky: this will roll-over to 0, and thus only execute 256 times. - - EndTCPWrite( curhttp->socket ); -} - - -static ICACHE_FLASH_ATTR void echo() -{ - char mydat[128]; - int len = URLDecode( mydat, 128, curhttp->pathbuffer+8 ); - - START_PACK; - PushBlob( mydat, len ); - EndTCPWrite( curhttp->socket ); - - curhttp->state = HTTP_WAIT_CLOSE; -} - -static ICACHE_FLASH_ATTR void issue() -{ - uint8_t __attribute__ ((aligned (32))) buf[1300]; - int len = URLDecode( buf, 1300, curhttp->pathbuffer+9 ); - - int r = issue_command(buf, 1300, buf, len ); - if( r > 0 ) - { - START_PACK; - PushBlob( buf, r ); - EndTCPWrite( curhttp->socket ); - } - curhttp->state = HTTP_WAIT_CLOSE; -} - - -void ICACHE_FLASH_ATTR HTTPCustomStart( ) -{ - if( strncmp( (const char*)curhttp->pathbuffer, "/d/huge", 7 ) == 0 ) - { - curhttp->rcb = (void(*)())&huge; - curhttp->bytesleft = 0xffffffff; - } - else - if( strncmp( (const char*)curhttp->pathbuffer, "/d/echo?", 8 ) == 0 ) - { - curhttp->rcb = (void(*)())&echo; - curhttp->bytesleft = 0xfffffffe; - } - else - if( strncmp( (const char*)curhttp->pathbuffer, "/d/issue?", 9 ) == 0 ) - { - curhttp->rcb = (void(*)())&issue; - curhttp->bytesleft = 0xfffffffe; - } - else - { - curhttp->rcb = 0; - curhttp->bytesleft = 0; - } - curhttp->isfirst = 1; - HTTPHandleInternalCallback(); -} - - - -void ICACHE_FLASH_ATTR HTTPCustomCallback( ) -{ - if( curhttp->rcb ) - ((void(*)())curhttp->rcb)(); - else - curhttp->isdone = 1; -} - - - - -static void ICACHE_FLASH_ATTR WSEchoData( int len ) -{ - char cbo[len]; - int i; - for( i = 0; i < len; i++ ) - { - cbo[i] = WSPOPMASK(); - } - WebSocketSend( cbo, len ); -} - - -static void ICACHE_FLASH_ATTR WSEvalData( int len ) -{ - char cbo[128]; - int l = ets_sprintf( cbo, "output.innerHTML = %d; doSend('x' );", curhttp->bytessofar++ ); - - WebSocketSend( cbo, l ); -} - - -static void ICACHE_FLASH_ATTR WSCommandData( int len ) -{ - uint8_t __attribute__ ((aligned (32))) buf[1300]; - int i; - - for( i = 0; i < len; i++ ) - { - buf[i] = WSPOPMASK(); - } - - i = issue_command(buf, 1300, buf, len ); - - if( i < 0 ) i = 0; - - WebSocketSend( buf, i ); -} - - -// output.innerHTML = msg++ + " " + lasthz; -// doSend('x' ); - - - -void ICACHE_FLASH_ATTR NewWebSocket() -{ - if( strcmp( (const char*)curhttp->pathbuffer, "/d/ws/echo" ) == 0 ) - { - curhttp->rcb = 0; - curhttp->rcbDat = (void*)&WSEchoData; - } - else if( strcmp( (const char*)curhttp->pathbuffer, "/d/ws/evaltest" ) == 0 ) - { - curhttp->rcb = 0; - curhttp->rcbDat = (void*)&WSEvalData; - } - else if( strncmp( (const char*)curhttp->pathbuffer, "/d/ws/issue", 11 ) == 0 ) - { - curhttp->rcb = 0; - curhttp->rcbDat = (void*)&WSCommandData; - } - else - { - curhttp->is404 = 1; - } -} - - - - -void ICACHE_FLASH_ATTR WebSocketTick() -{ - if( curhttp->rcb ) - { - ((void(*)())curhttp->rcb)(); - } -} - -void ICACHE_FLASH_ATTR WebSocketData( int len ) -{ - if( curhttp->rcbDat ) - { - ((void(*)( int ))curhttp->rcbDat)( len ); - } -} diff --git a/embedded8266/common/mfs.c b/embedded8266/common/mfs.c deleted file mode 100644 index 94852a8..0000000 --- a/embedded8266/common/mfs.c +++ /dev/null @@ -1,97 +0,0 @@ -//Copyright 2015 <>< Charles Lohr Under the MIT/x11 License, NewBSD License or -// ColorChord License. You Choose. - -#include "mystuff.h" -#include "mfs.h" -#include "spi_flash.h" -#include "ets_sys.h" - -uint32 mfs_at = 0; - -void ICACHE_FLASH_ATTR FindMPFS() -{ - uint32 mfs_check[2]; - EnterCritical(); - flashchip->chip_size = 0x01000000; - - spi_flash_read( MFS_START, mfs_check, sizeof( mfs_check ) ); - if( strncmp( "MPFSMPFS", mfs_check, 8 ) == 0 ) { mfs_at = MFS_START; goto done; } - - printf( "MFS Not found at regular address (%08x).\n", mfs_check[0], mfs_check[1] ); - - spi_flash_read( MFS_ALTERNATIVE_START, mfs_check, sizeof( mfs_check ) ); - if( strncmp( "MPFSMPFS", mfs_check, 8 ) == 0 ) { mfs_at = MFS_ALTERNATIVE_START; goto done; } - - printf( "MFS Not found at alternative address (%08x%08x).\n", mfs_check[0], mfs_check[1] ); - -done: - printf( "MFS Found at: %08x\n", mfs_at ); - flashchip->chip_size = 0x00080000; - ExitCritical(); -} - -extern SpiFlashChip * flashchip; - -//Returns 0 on succses. -//Returns size of file if non-empty -//If positive, populates mfi. -//Returns -1 if can't find file or reached end of file list. -int8_t ICACHE_FLASH_ATTR MFSOpenFile( const char * fname, struct MFSFileInfo * mfi ) -{ - if( mfs_at == 0 ) - { - FindMPFS(); - } - if( mfs_at == 0 ) - { - return -1; - } - - EnterCritical(); - flashchip->chip_size = 0x01000000; - uint32 ptr = mfs_at; - struct MFSFileEntry e; - while(1) - { - spi_flash_read( ptr, (uint32*)&e, sizeof( e ) ); - ptr += sizeof(e); - if( e.name[0] == 0xff || ets_strlen( e.name ) == 0 ) break; - - if( ets_strcmp( e.name, fname ) == 0 ) - { - mfi->offset = e.start; - mfi->filelen = e.len; - flashchip->chip_size = 0x00080000; - ExitCritical(); - return 0; - } - } - flashchip->chip_size = 0x00080000; - ExitCritical(); - return -1; -} - -int32_t MFSReadSector( uint8_t* data, struct MFSFileInfo * mfi ) -{ - //returns # of bytes left tin file. - if( !mfi->filelen ) - { - return 0; - } - - int toread = mfi->filelen; - if( toread > MFS_SECTOR ) toread = MFS_SECTOR; - - EnterCritical(); - flashchip->chip_size = 0x01000000; - spi_flash_read( mfs_at+mfi->offset, (uint32*)data, MFS_SECTOR ); - flashchip->chip_size = 0x00080000; - ExitCritical(); - - mfi->offset += toread; - mfi->filelen -= toread; - return mfi->filelen; -} - - - diff --git a/embedded8266/common/mfs.h b/embedded8266/common/mfs.h deleted file mode 100644 index 019d891..0000000 --- a/embedded8266/common/mfs.h +++ /dev/null @@ -1,55 +0,0 @@ -//Copyright 2015 <>< Charles Lohr Under the MIT/x11 License, NewBSD License or -// ColorChord License. You Choose. - -//Not to be confused with MFS for the AVR. - -#ifndef _MFS_H -#define _MFS_H - -#include "mem.h" -#include "c_types.h" -#include "mystuff.h" - -//SPI_FLASH_SEC_SIZE 4096 - -//If you are on a chip with limited space, MFS can alternatively live here, with a max size of 180kB. -#define MFS_ALTERNATIVE_START 0x10000 - -#define MFS_STARTFLASHSECTOR 0x100 -#define MFS_START (MFS_STARTFLASHSECTOR*SPI_FLASH_SEC_SIZE) -#define MFS_SECTOR 256 - - -#define MFS_FILENAMELEN 32-8 - -//Format: -// [FILE NAME (24)] [Start (4)] [Len (4)] -// NOTE: Filename must be null-terminated within the 24. -struct MFSFileEntry -{ - char name[MFS_FILENAMELEN]; - uint32 start; //From beginning of mfs thing. - uint32 len; -}; - - -struct MFSFileInfo -{ - uint32 offset; - uint32 filelen; -}; - - - -//Returns 0 on succses. -//Returns size of file if non-empty -//If positive, populates mfi. -//Returns -1 if can't find file or reached end of file list. -ICACHE_FLASH_ATTR int8_t MFSOpenFile( const char * fname, struct MFSFileInfo * mfi ); -ICACHE_FLASH_ATTR int32_t MFSReadSector( uint8_t* data, struct MFSFileInfo * mfi ); //returns # of bytes left in file. - - - -#endif - - diff --git a/embedded8266/common/mystuff.c b/embedded8266/common/mystuff.c deleted file mode 100644 index 73bc84f..0000000 --- a/embedded8266/common/mystuff.c +++ /dev/null @@ -1,213 +0,0 @@ -//Unless what else is individually marked, all code in this file is -//Copyright 2015 <>< Charles Lohr Under the MIT/x11 License, NewBSD License or -// ColorChord License. You Choose. - -#include "mystuff.h" - -const char * enctypes[6] = { "open", "wep", "wpa", "wpa2", "wpa_wpa2", 0 }; - -char generic_print_buffer[384]; -char generic_buffer[1500]; -char * generic_ptr; - -int32 my_atoi( const char * in ) -{ - int positive = 1; //1 if negative. - int hit = 0; - int val = 0; - while( *in && hit < 11 ) - { - if( *in == '-' ) - { - if( positive == -1 ) return val*positive; - positive = -1; - } else if( *in >= '0' && *in <= '9' ) - { - val *= 10; - val += *in - '0'; - hit++; - } else if (!hit && ( *in == ' ' || *in == '\t' ) ) - { - //okay - } else - { - //bad. - return val*positive; - } - in++; - } - return val*positive; -} - -void Uint32To10Str( char * out, uint32 dat ) -{ - int tens = 1000000000; - int val; - int place = 0; - - while( tens > 1 ) - { - if( dat/tens ) break; - tens/=10; - } - - while( tens ) - { - val = dat/tens; - dat -= val*tens; - tens /= 10; - out[place++] = val + '0'; - } - - out[place] = 0; -} - -char tohex1( uint8_t i ) -{ - i = i&0x0f; - return (i<10)?('0'+i):('a'-10+i); -} - -int8_t fromhex1( char c ) -{ - if( c >= '0' && c <= '9' ) - return c - '0'; - else if( c >= 'a' && c <= 'f' ) - return c - 'a' + 10; - else if( c >= 'A' && c <= 'F' ) - return c - 'A' + 10; - else - return -1; -} - - - -void ICACHE_FLASH_ATTR EndTCPWrite( struct espconn * conn ) -{ - if(generic_ptr!=generic_buffer) - { - int r = espconn_sent(conn,generic_buffer,generic_ptr-generic_buffer); - } -} - - -void PushString( const char * buffer ) -{ - char c; - while( c = *(buffer++) ) - PushByte( c ); -} - -void PushBlob( const uint8 * buffer, int len ) -{ - int i; - for( i = 0; i < len; i++ ) - PushByte( buffer[i] ); -} - - -int8_t ICACHE_FLASH_ATTR TCPCanSend( struct espconn * conn, int size ) -{ -#ifdef SAFESEND - return TCPDoneSend( conn ); -#else - struct espconn_packet infoarg; - sint8 r = espconn_get_packet_info(conn, &infoarg); - - if( infoarg.snd_buf_size >= size && infoarg.snd_queuelen > 0 ) - return 1; - else - return 0; -#endif -} - -int8_t ICACHE_FLASH_ATTR TCPDoneSend( struct espconn * conn ) -{ - return conn->state == ESPCONN_CONNECT; -} - -const char * ICACHE_FLASH_ATTR my_strchr( const char * st, char c ) -{ - while( *st && *st != c ) st++; - if( !*st ) return 0; - return st; -} - -int ICACHE_FLASH_ATTR ColonsToInts( const char * str, int32_t * vals, int max_quantity ) -{ - int i; - for( i = 0; i < max_quantity; i++ ) - { - const char * colon = my_strchr( str, ':' ); - vals[i] = my_atoi( str ); - if( !colon ) break; - str = colon+1; - } - return i+1; -} - - - - - - - -//from http://stackoverflow.com/questions/342409/how-do-i-base64-encode-decode-in-c -static const char encoding_table[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', - 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', - 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', - 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', - 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', - 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', - 'w', 'x', 'y', 'z', '0', '1', '2', '3', - '4', '5', '6', '7', '8', '9', '+', '/'}; - -static const int mod_table[] = {0, 2, 1}; - -void ICACHE_FLASH_ATTR my_base64_encode(const unsigned char *data, size_t input_length, uint8_t * encoded_data ) -{ - - int i, j; - int output_length = 4 * ((input_length + 2) / 3); - - if( !encoded_data ) return; - if( !data ) { encoded_data[0] = '='; encoded_data[1] = 0; return; } - - for (i = 0, j = 0; i < input_length; ) { - - uint32_t octet_a = i < input_length ? (unsigned char)data[i++] : 0; - uint32_t octet_b = i < input_length ? (unsigned char)data[i++] : 0; - uint32_t octet_c = i < input_length ? (unsigned char)data[i++] : 0; - - uint32_t triple = (octet_a << 0x10) + (octet_b << 0x08) + octet_c; - - encoded_data[j++] = encoding_table[(triple >> 3 * 6) & 0x3F]; - encoded_data[j++] = encoding_table[(triple >> 2 * 6) & 0x3F]; - encoded_data[j++] = encoding_table[(triple >> 1 * 6) & 0x3F]; - encoded_data[j++] = encoding_table[(triple >> 0 * 6) & 0x3F]; - } - - for (i = 0; i < mod_table[input_length % 3]; i++) - encoded_data[output_length - 1 - i] = '='; - - encoded_data[j] = 0; -} - - - -void ICACHE_FLASH_ATTR SafeMD5Update( MD5_CTX * md5ctx, uint8_t*from, uint32_t size1 ) -{ - char __attribute__ ((aligned (32))) buffer[32]; - - - while( size1 > 32 ) - { - ets_memcpy( buffer, from, 32 ); - MD5Update( md5ctx, buffer, 32 ); - size1-=32; - from+=32; - } - ets_memcpy( buffer, from, 32 ); - MD5Update( md5ctx, buffer, size1 ); -} - diff --git a/embedded8266/common/mystuff.h b/embedded8266/common/mystuff.h deleted file mode 100644 index 39953c3..0000000 --- a/embedded8266/common/mystuff.h +++ /dev/null @@ -1,60 +0,0 @@ -//Unless what else is individually marked, all code in this file is -//Copyright 2015 <>< Charles Lohr Under the MIT/x11 License, NewBSD License or -// ColorChord License. You Choose. - -#ifndef _MYSTUFF_H -#define _MYSTUFF_H - - -#include -#include -#include -#include -#include -#include - - -//XXX WARNING As of 1.3.0, "cansend" doesn't work. -//the SDK seems to misbehave when trying to send without a full -//response packet. - -#define SAFESEND - - -extern char generic_print_buffer[384]; - -extern const char * enctypes[6];// = { "open", "wep", "wpa", "wpa2", "wpa_wpa2", 0 }; - -#define printf( ... ) ets_sprintf( generic_print_buffer, __VA_ARGS__ ); uart0_sendStr( generic_print_buffer ); - -char tohex1( uint8_t i ); -int8_t fromhex1( char c ); //returns -1 if not hex char. - -int32 my_atoi( const char * in ); -void Uint32To10Str( char * out, uint32 dat ); - -//For holding TX packet buffers -extern char generic_buffer[1500]; -extern char * generic_ptr; -int8_t ICACHE_FLASH_ATTR TCPCanSend( struct espconn * conn, int size ); -int8_t ICACHE_FLASH_ATTR TCPDoneSend( struct espconn * conn ); -void ICACHE_FLASH_ATTR EndTCPWrite( struct espconn * conn ); - -#define PushByte( c ) { *(generic_ptr++) = c; } - -void PushString( const char * buffer ); -void PushBlob( const uint8 * buffer, int len ); -#define START_PACK {generic_ptr=generic_buffer;} -#define PACK_LENGTH (generic_ptr-&generic_buffer[0]} - -int ICACHE_FLASH_ATTR ColonsToInts( const char * str, int32_t * vals, int max_quantity ); - -//As much as it pains me, we shouldn't be using the esp8266's base64_encode() function -//as it does stuff with dynamic memory. -void ICACHE_FLASH_ATTR my_base64_encode(const unsigned char *data, size_t input_length, uint8_t * encoded_data ); - - -void ICACHE_FLASH_ATTR SafeMD5Update( MD5_CTX * md5ctx, uint8_t*from, uint32_t size1 ); - - -#endif diff --git a/embedded8266/driver/uart.c b/embedded8266/driver/uart.c deleted file mode 100644 index 5ae3356..0000000 --- a/embedded8266/driver/uart.c +++ /dev/null @@ -1,225 +0,0 @@ -/****************************************************************************** - * Copyright 2013-2014 Espressif Systems (Wuxi) - * - * FileName: uart.c - * - * Description: Two UART mode configration and interrupt handler. - * Check your hardware connection while use this mode. - * - * Modification history: - * 2014/3/12, v1.0 create this file. - * [various] Not released, Modified by Charles Lohr to change the RX behavior -*******************************************************************************/ -#include -#include -#include -#include - -#include -//#include "ssc.h" -//#include "at.h" - -// UartDev is defined and initialized in rom code. -extern UartDevice UartDev; -//extern os_event_t at_recvTaskQueue[at_recvTaskQueueLen]; - -LOCAL void uart0_rx_intr_handler(void *para); - -/****************************************************************************** - * FunctionName : uart_config - * Description : Internal used function - * UART0 used for data TX/RX, RX buffer size is 0x100, interrupt enabled - * UART1 just used for debug output - * Parameters : uart_no, use UART0 or UART1 defined ahead - * Returns : NONE -*******************************************************************************/ -LOCAL void ICACHE_FLASH_ATTR -uart_config(uint8 uart_no) -{ - if (uart_no == UART1) - { - PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U, FUNC_U1TXD_BK); - } - else - { - /* rcv_buff size if 0x100 */ - ETS_UART_INTR_ATTACH(uart0_rx_intr_handler, &(UartDev.rcv_buff)); - PIN_PULLUP_DIS(PERIPHS_IO_MUX_U0TXD_U); - PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0TXD_U, FUNC_U0TXD); -// PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U, FUNC_U0RTS); - } - - uart_div_modify(uart_no, UART_CLK_FREQ / (UartDev.baut_rate)); - - WRITE_PERI_REG(UART_CONF0(uart_no), UartDev.exist_parity - | UartDev.parity - | (UartDev.stop_bits << UART_STOP_BIT_NUM_S) - | (UartDev.data_bits << UART_BIT_NUM_S)); - - //clear rx and tx fifo,not ready - SET_PERI_REG_MASK(UART_CONF0(uart_no), UART_RXFIFO_RST | UART_TXFIFO_RST); - CLEAR_PERI_REG_MASK(UART_CONF0(uart_no), UART_RXFIFO_RST | UART_TXFIFO_RST); - - //set rx fifo trigger -// WRITE_PERI_REG(UART_CONF1(uart_no), -// ((UartDev.rcv_buff.TrigLvl & UART_RXFIFO_FULL_THRHD) << UART_RXFIFO_FULL_THRHD_S) | -// ((96 & UART_TXFIFO_EMPTY_THRHD) << UART_TXFIFO_EMPTY_THRHD_S) | -// UART_RX_FLOW_EN); - if (uart_no == UART0) - { - //set rx fifo trigger - WRITE_PERI_REG(UART_CONF1(uart_no), - ((0x01 & UART_RXFIFO_FULL_THRHD) << UART_RXFIFO_FULL_THRHD_S) | - ((0x01 & UART_RX_FLOW_THRHD) << UART_RX_FLOW_THRHD_S) | - UART_RX_FLOW_EN); - } - else - { - WRITE_PERI_REG(UART_CONF1(uart_no), - ((UartDev.rcv_buff.TrigLvl & UART_RXFIFO_FULL_THRHD) << UART_RXFIFO_FULL_THRHD_S)); - } - - //clear all interrupt - WRITE_PERI_REG(UART_INT_CLR(uart_no), 0xffff); - //enable rx_interrupt - SET_PERI_REG_MASK(UART_INT_ENA(uart_no), UART_RXFIFO_FULL_INT_ENA); -} - -/****************************************************************************** - * FunctionName : uart1_tx_one_char - * Description : Internal used function - * Use uart1 interface to transfer one char - * Parameters : uint8 TxChar - character to tx - * Returns : OK -*******************************************************************************/ -LOCAL STATUS -uart_tx_one_char(uint8 uart, uint8 TxChar) -{ - while (true) - { - uint32 fifo_cnt = READ_PERI_REG(UART_STATUS(uart)) & (UART_TXFIFO_CNT<> UART_TXFIFO_CNT_S & UART_TXFIFO_CNT) < 126) { - break; - } - } - - WRITE_PERI_REG(UART_FIFO(uart) , TxChar); - return OK; -} - -/****************************************************************************** - * FunctionName : uart1_write_char - * Description : Internal used function - * Do some special deal while tx char is '\r' or '\n' - * Parameters : char c - character to tx - * Returns : NONE -*******************************************************************************/ -LOCAL void ICACHE_FLASH_ATTR -uart1_write_char(char c) -{ - if (c == '\n') - { - uart_tx_one_char(UART1, '\r'); - uart_tx_one_char(UART1, '\n'); - } - else if (c == '\r') - { - } - else - { - uart_tx_one_char(UART1, c); - } -} -/****************************************************************************** - * FunctionName : uart0_tx_buffer - * Description : use uart0 to transfer buffer - * Parameters : uint8 *buf - point to send buffer - * uint16 len - buffer len - * Returns : -*******************************************************************************/ -void ICACHE_FLASH_ATTR -uart0_tx_buffer(uint8 *buf, uint16 len) -{ - uint16 i; - - for (i = 0; i < len; i++) - { - uart_tx_one_char(UART0, buf[i]); - } -} - -/****************************************************************************** - * FunctionName : uart0_sendStr - * Description : use uart0 to transfer buffer - * Parameters : uint8 *buf - point to send buffer - * uint16 len - buffer len - * Returns : -*******************************************************************************/ -void ICACHE_FLASH_ATTR -uart0_sendStr(const char *str) -{ - while(*str) - { - uart_tx_one_char(UART0, *str++); - } -} - -/****************************************************************************** - * FunctionName : uart0_rx_intr_handler - * Description : Internal used function - * UART0 interrupt handler, add self handle code inside - * Parameters : void *para - point to ETS_UART_INTR_ATTACH's arg - * Returns : NONE -*******************************************************************************/ - -extern void charrx( uint8_t c ); - -LOCAL void -uart0_rx_intr_handler(void *para) -{ - static uint8_t history[4]; - static uint8_t hhead; - - uint8 uart_no = UART0;//UartDev.buff_uart_no; - volatile uint8_t v = READ_PERI_REG(UART_FIFO(uart_no)) & 0xFF; - WRITE_PERI_REG(UART_INT_CLR(uart_no), UART_RXFIFO_FULL_INT_CLR); - - history[hhead++] = v; - if( hhead > 3 ) hhead = 0; - - //Detect a request to reboot into bootloader. - if( history[hhead&3] == 0xc2 && history[(hhead+1)&3] == 0x42 && history[(hhead+2)&3] == 0x56 && history[(hhead+3)&3] == 0xff ) - { - system_restart(); - } - - charrx( v ); - -} - -/****************************************************************************** - * FunctionName : uart_init - * Description : user interface for init uart - * Parameters : UartBautRate uart0_br - uart0 bautrate - * UartBautRate uart1_br - uart1 bautrate - * Returns : NONE -*******************************************************************************/ -void ICACHE_FLASH_ATTR -uart_init(UartBautRate uart0_br, UartBautRate uart1_br) -{ - // rom use 74880 baut_rate, here reinitialize - UartDev.baut_rate = uart0_br; - uart_config(UART0); - UartDev.baut_rate = uart1_br; - uart_config(UART1); - ETS_UART_INTR_ENABLE(); - - // install uart1 putc callback - os_install_putc1((void *)uart1_write_char); -} - -void ICACHE_FLASH_ATTR -uart_reattach() -{ - uart_init(BIT_RATE_74880, BIT_RATE_74880); -} diff --git a/embedded8266/esp82xx b/embedded8266/esp82xx new file mode 160000 index 0000000..cd8c2f1 --- /dev/null +++ b/embedded8266/esp82xx @@ -0,0 +1 @@ +Subproject commit cd8c2f130055a7cf60f05dc7da8590f1c913fc3f diff --git a/embedded8266/image.elf b/embedded8266/image.elf deleted file mode 100755 index 2338d7eba3830c97c428b32496e8cd0e1f60abb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 495436 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 }$*0 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Ν`hp+$sEFX|R|=c`U?h$R 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%0DsA>jv=Fp0>4qf!4c#9~INz`d>=Koa&Eun6J|> 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 mNT=m~SQes9997O2ah@^)>ZKrv|LUPRM-`kj9t* diff --git a/embedded8266/image.elf-0x40000.bin b/embedded8266/image.elf-0x40000.bin deleted file mode 100644 index 7277e783c7e4a74f3b2ca94b5142fa4ad9bda6b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197967 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%0D!f`lP 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 C#Y?{c diff --git a/embedded8266/include/driver/uart.h b/embedded8266/include/driver/uart.h deleted file mode 100644 index 957621b..0000000 --- a/embedded8266/include/driver/uart.h +++ /dev/null @@ -1,101 +0,0 @@ -#ifndef UART_APP_H -#define UART_APP_H - -#include "uart_register.h" -#include "eagle_soc.h" -#include "c_types.h" - -#define RX_BUFF_SIZE 256 -#define TX_BUFF_SIZE 100 -#define UART0 0 -#define UART1 1 - -typedef enum { - FIVE_BITS = 0x0, - SIX_BITS = 0x1, - SEVEN_BITS = 0x2, - EIGHT_BITS = 0x3 -} UartBitsNum4Char; - -typedef enum { - ONE_STOP_BIT = 0, - ONE_HALF_STOP_BIT = BIT2, - TWO_STOP_BIT = BIT2 -} UartStopBitsNum; - -typedef enum { - NONE_BITS = 0, - ODD_BITS = 0, - EVEN_BITS = BIT4 -} UartParityMode; - -typedef enum { - STICK_PARITY_DIS = 0, - STICK_PARITY_EN = BIT3 | BIT5 -} UartExistParity; - -typedef enum { - BIT_RATE_9600 = 9600, - BIT_RATE_19200 = 19200, - BIT_RATE_38400 = 38400, - BIT_RATE_57600 = 57600, - BIT_RATE_74880 = 74880, - BIT_RATE_115200 = 115200, - BIT_RATE_230400 = 230400, - BIT_RATE_460800 = 460800, - BIT_RATE_921600 = 921600 -} UartBautRate; - -typedef enum { - NONE_CTRL, - HARDWARE_CTRL, - XON_XOFF_CTRL -} UartFlowCtrl; - -typedef enum { - EMPTY, - UNDER_WRITE, - WRITE_OVER -} RcvMsgBuffState; - -typedef struct { - uint32 RcvBuffSize; - uint8 *pRcvMsgBuff; - uint8 *pWritePos; - uint8 *pReadPos; - uint8 TrigLvl; //JLU: may need to pad - RcvMsgBuffState BuffState; -} RcvMsgBuff; - -typedef struct { - uint32 TrxBuffSize; - uint8 *pTrxBuff; -} TrxMsgBuff; - -typedef enum { - BAUD_RATE_DET, - WAIT_SYNC_FRM, - SRCH_MSG_HEAD, - RCV_MSG_BODY, - RCV_ESC_CHAR, -} RcvMsgState; - -typedef struct { - UartBautRate baut_rate; - UartBitsNum4Char data_bits; - UartExistParity exist_parity; - UartParityMode parity; // chip size in byte - UartStopBitsNum stop_bits; - UartFlowCtrl flow_ctrl; - RcvMsgBuff rcv_buff; - TrxMsgBuff trx_buff; - RcvMsgState rcv_state; - int received; - int buff_uart_no; //indicate which uart use tx/rx buffer -} UartDevice; - -void uart_init(UartBautRate uart0_br, UartBautRate uart1_br); -void uart0_sendStr(const char *str); - -#endif - diff --git a/embedded8266/include/driver/uart_register.h b/embedded8266/include/driver/uart_register.h deleted file mode 100644 index 6398879..0000000 --- a/embedded8266/include/driver/uart_register.h +++ /dev/null @@ -1,128 +0,0 @@ -//Generated at 2012-07-03 18:44:06 -/* - * Copyright (c) 2010 - 2011 Espressif System - * - */ - -#ifndef UART_REGISTER_H_INCLUDED -#define UART_REGISTER_H_INCLUDED -#define REG_UART_BASE( i ) (0x60000000+(i)*0xf00) -//version value:32'h062000 - -#define UART_FIFO( i ) (REG_UART_BASE( i ) + 0x0) -#define UART_RXFIFO_RD_BYTE 0x000000FF -#define UART_RXFIFO_RD_BYTE_S 0 - -#define UART_INT_RAW( i ) (REG_UART_BASE( i ) + 0x4) -#define UART_RXFIFO_TOUT_INT_RAW (BIT(8)) -#define UART_BRK_DET_INT_RAW (BIT(7)) -#define UART_CTS_CHG_INT_RAW (BIT(6)) -#define UART_DSR_CHG_INT_RAW (BIT(5)) -#define UART_RXFIFO_OVF_INT_RAW (BIT(4)) -#define UART_FRM_ERR_INT_RAW (BIT(3)) -#define UART_PARITY_ERR_INT_RAW (BIT(2)) -#define UART_TXFIFO_EMPTY_INT_RAW (BIT(1)) -#define UART_RXFIFO_FULL_INT_RAW (BIT(0)) - -#define UART_INT_ST( i ) (REG_UART_BASE( i ) + 0x8) -#define UART_RXFIFO_TOUT_INT_ST (BIT(8)) -#define UART_BRK_DET_INT_ST (BIT(7)) -#define UART_CTS_CHG_INT_ST (BIT(6)) -#define UART_DSR_CHG_INT_ST (BIT(5)) -#define UART_RXFIFO_OVF_INT_ST (BIT(4)) -#define UART_FRM_ERR_INT_ST (BIT(3)) -#define UART_PARITY_ERR_INT_ST (BIT(2)) -#define UART_TXFIFO_EMPTY_INT_ST (BIT(1)) -#define UART_RXFIFO_FULL_INT_ST (BIT(0)) - -#define UART_INT_ENA( i ) (REG_UART_BASE( i ) + 0xC) -#define UART_RXFIFO_TOUT_INT_ENA (BIT(8)) -#define UART_BRK_DET_INT_ENA (BIT(7)) -#define UART_CTS_CHG_INT_ENA (BIT(6)) -#define UART_DSR_CHG_INT_ENA (BIT(5)) -#define UART_RXFIFO_OVF_INT_ENA (BIT(4)) -#define UART_FRM_ERR_INT_ENA (BIT(3)) -#define UART_PARITY_ERR_INT_ENA (BIT(2)) -#define UART_TXFIFO_EMPTY_INT_ENA (BIT(1)) -#define UART_RXFIFO_FULL_INT_ENA (BIT(0)) - -#define UART_INT_CLR( i ) (REG_UART_BASE( i ) + 0x10) -#define UART_RXFIFO_TOUT_INT_CLR (BIT(8)) -#define UART_BRK_DET_INT_CLR (BIT(7)) -#define UART_CTS_CHG_INT_CLR (BIT(6)) -#define UART_DSR_CHG_INT_CLR (BIT(5)) -#define UART_RXFIFO_OVF_INT_CLR (BIT(4)) -#define UART_FRM_ERR_INT_CLR (BIT(3)) -#define UART_PARITY_ERR_INT_CLR (BIT(2)) -#define UART_TXFIFO_EMPTY_INT_CLR (BIT(1)) -#define UART_RXFIFO_FULL_INT_CLR (BIT(0)) - -#define UART_CLKDIV( i ) (REG_UART_BASE( i ) + 0x14) -#define UART_CLKDIV_CNT 0x000FFFFF -#define UART_CLKDIV_S 0 - -#define UART_AUTOBAUD( i ) (REG_UART_BASE( i ) + 0x18) -#define UART_GLITCH_FILT 0x000000FF -#define UART_GLITCH_FILT_S 8 -#define UART_AUTOBAUD_EN (BIT(0)) - -#define UART_STATUS( i ) (REG_UART_BASE( i ) + 0x1C) -#define UART_TXD (BIT(31)) -#define UART_RTSN (BIT(30)) -#define UART_DTRN (BIT(29)) -#define UART_TXFIFO_CNT 0x000000FF -#define UART_TXFIFO_CNT_S 16 -#define UART_RXD (BIT(15)) -#define UART_CTSN (BIT(14)) -#define UART_DSRN (BIT(13)) -#define UART_RXFIFO_CNT 0x000000FF -#define UART_RXFIFO_CNT_S 0 - -#define UART_CONF0( i ) (REG_UART_BASE( i ) + 0x20) -#define UART_TXFIFO_RST (BIT(18)) -#define UART_RXFIFO_RST (BIT(17)) -#define UART_IRDA_EN (BIT(16)) -#define UART_TX_FLOW_EN (BIT(15)) -#define UART_LOOPBACK (BIT(14)) -#define UART_IRDA_RX_INV (BIT(13)) -#define UART_IRDA_TX_INV (BIT(12)) -#define UART_IRDA_WCTL (BIT(11)) -#define UART_IRDA_TX_EN (BIT(10)) -#define UART_IRDA_DPLX (BIT(9)) -#define UART_TXD_BRK (BIT(8)) -#define UART_SW_DTR (BIT(7)) -#define UART_SW_RTS (BIT(6)) -#define UART_STOP_BIT_NUM 0x00000003 -#define UART_STOP_BIT_NUM_S 4 -#define UART_BIT_NUM 0x00000003 -#define UART_BIT_NUM_S 2 -#define UART_PARITY_EN (BIT(1)) -#define UART_PARITY (BIT(0)) - -#define UART_CONF1( i ) (REG_UART_BASE( i ) + 0x24) -#define UART_RX_TOUT_EN (BIT(31)) -#define UART_RX_TOUT_THRHD 0x0000007F -#define UART_RX_TOUT_THRHD_S 24 -#define UART_RX_FLOW_EN (BIT(23)) -#define UART_RX_FLOW_THRHD 0x0000007F -#define UART_RX_FLOW_THRHD_S 16 -#define UART_TXFIFO_EMPTY_THRHD 0x0000007F -#define UART_TXFIFO_EMPTY_THRHD_S 8 -#define UART_RXFIFO_FULL_THRHD 0x0000007F -#define UART_RXFIFO_FULL_THRHD_S 0 - -#define UART_LOWPULSE( i ) (REG_UART_BASE( i ) + 0x28) -#define UART_LOWPULSE_MIN_CNT 0x000FFFFF -#define UART_LOWPULSE_MIN_CNT_S 0 - -#define UART_HIGHPULSE( i ) (REG_UART_BASE( i ) + 0x2C) -#define UART_HIGHPULSE_MIN_CNT 0x000FFFFF -#define UART_HIGHPULSE_MIN_CNT_S 0 - -#define UART_PULSE_NUM( i ) (REG_UART_BASE( i ) + 0x30) -#define UART_PULSE_NUM_CNT 0x0003FF -#define UART_PULSE_NUM_CNT_S 0 - -#define UART_DATE( i ) (REG_UART_BASE( i ) + 0x78) -#define UART_ID( i ) (REG_UART_BASE( i ) + 0x7C) -#endif // UART_REGISTER_H_INCLUDED diff --git a/embedded8266/include/stdint.h b/embedded8266/include/stdint.h deleted file mode 100644 index c185b36..0000000 --- a/embedded8266/include/stdint.h +++ /dev/null @@ -1,3 +0,0 @@ -//This exists to make sure anything including stdint.h includes this instead. - -#include "c_types.h" diff --git a/embedded8266/include/string.h b/embedded8266/include/string.h deleted file mode 100644 index 411d27f..0000000 --- a/embedded8266/include/string.h +++ /dev/null @@ -1 +0,0 @@ -//Nothing here. Just a file to make things that include happy. diff --git a/embedded8266/include/user_config.h b/embedded8266/include/user_config.h deleted file mode 100644 index 8b13789..0000000 --- a/embedded8266/include/user_config.h +++ /dev/null @@ -1 +0,0 @@ - diff --git a/embedded8266/makeconf.inc b/embedded8266/makeconf.inc deleted file mode 100644 index 766dae5..0000000 --- a/embedded8266/makeconf.inc +++ /dev/null @@ -1,37 +0,0 @@ -############################################################################### -# USER OPTIONS -############################################################################### - -CHIP ?= 8266 -IP ?= 192.168.4.1 # does not actually set the IP in firmware -PORT ?= /dev/ttyUSB0 # could also be /dev/ttyACM0 -PAGE_OFFSET ?= 65536 # 1048576 - -SDK_DEFAULT ?= $(HOME)/esp8266/esp-open-sdk -ESP_GCC_VERS ?= 4.8.5 - -OPTS += -DICACHE_FLASH -#OPTS += THIS_DEBUG -#OPTS += -DVERIFY_FLASH_WRITE -#OPTS += -DFREQ=12500 - -###########################################################################VARS - -GCC_FOLDER = $(ESP_ROOT)/xtensa-lx106-elf -ESPTOOL_PY = $(ESP_ROOT)/esptool/esptool.py -SDK = $(ESP_ROOT)/sdk - -XTLIB = $(SDK)/lib -XTGCCLIB = $(GCC_FOLDER)/lib/gcc/xtensa-lx106-elf/$(ESP_GCC_VERS)/libgcc.a -FOLDERPREFIX = $(GCC_FOLDER)/bin -PREFIX = $(FOLDERPREFIX)/xtensa-lx106-elf- -CC = $(PREFIX)gcc -LD = $(PREFIX)ld -AR = $(PREFIX)ar - -ESP_ROOT := $(shell echo "$$ESP_ROOT") -ifeq ($(strip $(ESP_ROOT)),) -$(warning Warning: No shell variable 'ESP_ROOT', using '$(SDK_DEFAULT)') -ESP_ROOT := $(SDK_DEFAULT) -endif - diff --git a/embedded8266/user.cfg b/embedded8266/user.cfg new file mode 100644 index 0000000..0e7da77 --- /dev/null +++ b/embedded8266/user.cfg @@ -0,0 +1,22 @@ +############################################################################### +# User Options +############################################################################### + +CHIP = 8266 +IP = 192.168.4.1 # does not actually set the IP in firmware +PORT = /dev/ttyUSB0 # could also be /dev/ttyACM0 +WEB_PORT = 80 +COM_PORT = 7777 +BACKEND_PORT = 7878 +PAGE_OFFSET = 65536 # 1048576 + +SDK_DEFAULT = $(HOME)/esp8266/esp-open-sdk +ESP_GCC_VERS = 4.8.5 + +OPTS += -DICACHE_FLASH +#OPTS += -DVERIFY_FLASH_WRITE +#OPTS += -DDEBUG +#OPTS += -DFREQ=12500 + +PAGE_SCRIPT = + diff --git a/embedded8266/driver/adc.c b/embedded8266/user/adc.c similarity index 99% rename from embedded8266/driver/adc.c rename to embedded8266/user/adc.c index e03b8e2..84015b5 100644 --- a/embedded8266/driver/adc.c +++ b/embedded8266/user/adc.c @@ -6,7 +6,7 @@ #include "ets_sys.h" #include "osapi.h" -#include "driver/adc.h" +#include "adc.h" #define i2c_bbpll 0x67 #define i2c_bbpll_en_audio_clock_out 4 diff --git a/embedded8266/include/driver/adc.h b/embedded8266/user/adc.h similarity index 100% rename from embedded8266/include/driver/adc.h rename to embedded8266/user/adc.h diff --git a/embedded8266/user/hpatimer.c b/embedded8266/user/hpatimer.c index a2b0edc..d29ce1a 100644 --- a/embedded8266/user/hpatimer.c +++ b/embedded8266/user/hpatimer.c @@ -2,7 +2,7 @@ // ColorChord License. You Choose. #include "hpatimer.h" -#include +#include "adc.h" #include "osapi.h" #include "mem.h" #include "eagle_soc.h" diff --git a/embedded8266/include/pin_mux_register.h b/embedded8266/user/pin_mux_register.h similarity index 100% rename from embedded8266/include/pin_mux_register.h rename to embedded8266/user/pin_mux_register.h diff --git a/embedded8266/user/user_main.c b/embedded8266/user/user_main.c index 8c70866..eb169a9 100644 --- a/embedded8266/user/user_main.c +++ b/embedded8266/user/user_main.c @@ -5,13 +5,13 @@ #include "c_types.h" #include "user_interface.h" #include "ets_sys.h" -#include "driver/uart.h" +#include "uart.h" #include "osapi.h" #include "espconn.h" #include "mystuff.h" #include "ws2812_i2s.h" #include "hpatimer.h" -#include +#include "DFT32.h" #include "ccconfig.h" #include #include diff --git a/embedded8266/web/Makefile b/embedded8266/web/Makefile deleted file mode 100644 index 2ceecf0..0000000 --- a/embedded8266/web/Makefile +++ /dev/null @@ -1,23 +0,0 @@ -include ../makeconf.inc # Look here for user configuration - -.PHONY : all clean push -all : execute_reflash push - -CC = gcc - -mfsmaker : mfsmaker.c -pushtodev : pushtodev.c -execute_reflash : execute_reflash.c md5.c - -page.mpfs : mfsmaker page -# cat to_compress/*.js | gzip -9 > page/compressed.js.gz - ./mfsmaker page page.mpfs - -#mfsmaker pushtodev execute_reflash: -# $(CC) $(CFLAGS) -o $@ $^ - -push : pushtodev page.mpfs - ./pushtodev $(IP) $(PAGE_OFFSET) page.mpfs - -clean : - $(RM) mfsmaker page.mpfs pushtodev execute_reflash diff --git a/embedded8266/web/Makefile b/embedded8266/web/Makefile new file mode 120000 index 0000000..324d9fe --- /dev/null +++ b/embedded8266/web/Makefile @@ -0,0 +1 @@ +../esp82xx/web/Makefile \ No newline at end of file diff --git a/embedded8266/web/execute_reflash.c b/embedded8266/web/execute_reflash.c deleted file mode 100644 index ac8004d..0000000 --- a/embedded8266/web/execute_reflash.c +++ /dev/null @@ -1,274 +0,0 @@ -//Copyright 2015 <>< Charles Lohr Under the MIT/x11 License, NewBSD License or -// ColorChord License. You Choose. - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "md5.h" - -#define BLOCK_SIZE 65536 -#define SECTOR_SIZE 4096 -#define PADDING 1024 - -#ifndef MSG_NOSIGNAL - #define MSG_NOSIGNAL 0x0 //Don't request NOSIGNAL on systems where this is not implemented. -#endif - -int sockfd; - struct sockaddr_in servaddr,cliaddr; - -int PushMatch( const char * match ) -{ - struct timeval tva, tvb; - gettimeofday( &tva, 0 ); - gettimeofday( &tvb, 0 ); - while( tvb.tv_sec - tva.tv_sec < 3 ) - { - struct pollfd ufds; - ufds.fd = sockfd; - ufds.events = POLLIN; - int rv = poll(&ufds, 1, 100); - if( rv > 0 ) - { - char recvline[10000]; - int n=recvfrom(sockfd,recvline,10000,0,NULL,NULL); -// printf( "%s === %s\n", recvline, match ); - if( strncmp( recvline, match, strlen( match ) ) == 0 ) - { - printf( "Ok - " ); fflush( stdout ); - return 0; - } - } - gettimeofday( &tvb, 0 ); - } - return 1; -} - -uint32_t Push( uint32_t offset, const char * file ) -{ - char sendline[1000]; - char recvline[1000]; - - if( offset <= 0 ) - { - fprintf( stderr, "Error: Cannot write to address 0 or before.\n" ); - exit(-2); - } - - FILE * f = fopen( file, "rb" ); - if( !f || feof( f ) ) - { - fprintf( stderr, "Error: cannot open file.\n" ); - exit(-3); - } - - - - int devo = 0; - int lastblock = -1; - - while( !feof( f ) ) - { - int tries; - int thissuccess; - char buffer[PADDING]; - char bufferout[2000]; - - int reads = fread( buffer, 1, PADDING, f ); - int sendplace = offset + devo; - int sendsize = PADDING;//reads; - int block = sendplace / BLOCK_SIZE; - - memset( buffer + reads, 0, sendsize-reads ); - - if( block != lastblock ) - { - char se[64]; - int sel = sprintf( se, "FB%d\r\n", block ); - - thissuccess = 0; - for( tries = 0; tries < 10; tries++ ) - { - char match[75]; - printf( "Erase: %d\n", block ); - sendto( sockfd, se, sel, MSG_NOSIGNAL, (struct sockaddr *)&servaddr,sizeof(servaddr)); - sprintf( match, "FB%d", block ); - - if( PushMatch(match) == 0 ) { thissuccess = 1; break; } - printf( "Retry.\n" ); - } - if( !thissuccess ) - { - fprintf( stderr, "Error: Timeout in communications.\n" ); - exit( -6 ); - } - - lastblock = block; - } - - - int r = sprintf( bufferout, "FW%d\t%d\t", sendplace, sendsize ); - memcpy( bufferout + r, buffer, sendsize ); - - printf( "bufferout: %d %d\n", sendplace, sendsize ); - - thissuccess = 0; - for( tries = 0; tries < 10; tries++ ) - { - char match[75]; - sendto( sockfd, bufferout, sendsize + r, MSG_NOSIGNAL, (struct sockaddr *)&servaddr,sizeof(servaddr)); - sprintf( match, "FW%d", sendplace ); - - if( PushMatch(match) == 0 ) { thissuccess = 1; break; } - printf( "Retry.\n" ); - } - if( !thissuccess ) - { - fprintf( stderr, "Error: Timeout in communications.\n" ); - exit( -6 ); - } - if( reads != 0 ) - devo += sendsize; - } - - return devo; -} - -void ComputeMD5WithKey( char * md5retText, const char * filename, const char * key ) -{ - uint8_t retmd5[16]; - MD5_CTX ctx; - FILE * f = fopen( filename, "rb" ); - if( !f ) - { - fprintf( stderr, "Error opening %s\n", filename ); - exit( -9 ); - } - - fseek( f, 0, SEEK_END ); - int l = ftell( f ); -printf("MD5 Size: %d\n", l ); - int padl = ((l-1) / PADDING)*PADDING+PADDING; -printf("MD5 Pad: %d\n", padl ); - fseek( f, 0, SEEK_SET ); - uint8_t data[padl]; - fread( data, l, 1, f ); - fclose( f ); - - memset( data+l, 0, padl-l ); - MD5_Init( &ctx ); - if( !strlen(key) ) - MD5_Update( &ctx, key, strlen( key ) ); - MD5_Update( &ctx, data, padl ); - MD5_Final( retmd5, &ctx ); - - for( l = 0; l < 16; l++ ) - { - sprintf( md5retText + l*2, "%02x", retmd5[l] ); - } - - return; -} - -uint32_t roundup( uint32_t r ) -{ - return ((r-1)&(~0xFFF))+0x1000; -} - - -int main(int argc, char**argv) -{ - int n; - - char sendline[1000]; - char recvline[1000]; - - char md5_f1[48]; - char md5_f2[48]; - - if (argc < 4 ) - { - printf("usage: pushtodev [IP address] [file_lower] [file_upper] [key (optional)]\n"); - exit(-1); - } - - const char * file1 = argv[2]; - const char * file2 = argv[3]; - - - - sockfd=socket(AF_INET,SOCK_DGRAM,0); - - bzero(&servaddr,sizeof(servaddr)); - servaddr.sin_family = AF_INET; - servaddr.sin_addr.s_addr=inet_addr(argv[1]); - servaddr.sin_port=htons(7878); - - uint32_t fs1 = Push( 0x080000, file1 ); - uint32_t fs2 = Push( 0x0c0000, file2 ); - - if( !fs1 || !fs2 ) - { - fprintf( stderr, "Error: File size not acceptable.\n" ); - return 0; - } - - const char * dat = ""; - if( argc == 5 ) - { - dat = argv[4]; - } - - ComputeMD5WithKey( md5_f1, file1, dat ); - ComputeMD5WithKey( md5_f2, file2, dat ); - - printf( "%s %s\n", md5_f1, md5_f2 ); - - //FM[from_address]\t[to_address]\t[size]\t[MD5(key+data)]\t[from_address]\t[to_address]\t[size]\t[MD5(key+data)] - - char cmd[1024]; - - sprintf( cmd, "FM%d\t%d\t%d\t%s\t%d\t%d\t%d\t%s\n", - 0x080000, - 0x000000, - fs1, //roundup( fs1 ), - md5_f1, - 0x0C0000, - 0x040000, - fs2, //roundup( fs2 ), - md5_f2 ); - - printf( "Issuing: %s\n", cmd ); - sendto( sockfd, cmd, strlen(cmd), MSG_NOSIGNAL, (struct sockaddr *)&servaddr,sizeof(servaddr)); - usleep(10000); - sendto( sockfd, cmd, strlen(cmd), MSG_NOSIGNAL, (struct sockaddr *)&servaddr,sizeof(servaddr)); - - struct pollfd ufds; - ufds.fd = sockfd; - ufds.events = POLLIN; - int rv = poll(&ufds, 1, 100); - if( rv > 0 ) - { - char recvline[10000]; - int n=recvfrom(sockfd,recvline,10000,0,NULL,NULL); - - printf( "Response: %s\n",recvline ); - return 0; - } - else - { - printf( "Timeout. Good? Maybe?\n" ); - return 0; - } - - return 0; -} - - diff --git a/embedded8266/web/execute_reflash.c b/embedded8266/web/execute_reflash.c new file mode 120000 index 0000000..a97a599 --- /dev/null +++ b/embedded8266/web/execute_reflash.c @@ -0,0 +1 @@ +../esp82xx/web/execute_reflash.c \ No newline at end of file diff --git a/embedded8266/web/md5.c b/embedded8266/web/md5.c deleted file mode 100644 index 52d96ac..0000000 --- a/embedded8266/web/md5.c +++ /dev/null @@ -1,296 +0,0 @@ -/* - * This is an OpenSSL-compatible implementation of the RSA Data Security, Inc. - * MD5 Message-Digest Algorithm (RFC 1321). - * - * Homepage: - * http://openwall.info/wiki/people/solar/software/public-domain-source-code/md5 - * - * Author: - * Alexander Peslyak, better known as Solar Designer - * - * This software was written by Alexander Peslyak in 2001. No copyright is - * claimed, and the software is hereby placed in the public domain. - * In case this attempt to disclaim copyright and place the software in the - * public domain is deemed null and void, then the software is - * Copyright (c) 2001 Alexander Peslyak and it is hereby released to the - * general public under the following terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted. - * - * There's ABSOLUTELY NO WARRANTY, express or implied. - * - * (This is a heavily cut-down "BSD license".) - * - * This differs from Colin Plumb's older public domain implementation in that - * no exactly 32-bit integer data type is required (any 32-bit or wider - * unsigned integer data type will do), there's no compile-time endianness - * configuration, and the function prototypes match OpenSSL's. No code from - * Colin Plumb's implementation has been reused; this comment merely compares - * the properties of the two independent implementations. - * - * The primary goals of this implementation are portability and ease of use. - * It is meant to be fast, but not as fast as possible. Some known - * optimizations are not included to reduce source code size and avoid - * compile-time configuration. - */ - -#ifndef HAVE_OPENSSL - -#include - -#include "md5.h" - -/* - * The basic MD5 functions. - * - * F and G are optimized compared to their RFC 1321 definitions for - * architectures that lack an AND-NOT instruction, just like in Colin Plumb's - * implementation. - */ -#define F(x, y, z) ((z) ^ ((x) & ((y) ^ (z)))) -#define G(x, y, z) ((y) ^ ((z) & ((x) ^ (y)))) -#define H(x, y, z) (((x) ^ (y)) ^ (z)) -#define H2(x, y, z) ((x) ^ ((y) ^ (z))) -#define I(x, y, z) ((y) ^ ((x) | ~(z))) - -/* - * The MD5 transformation for all four rounds. - */ -#define STEP(f, a, b, c, d, x, t, s) \ - (a) += f((b), (c), (d)) + (x) + (t); \ - (a) = (((a) << (s)) | (((a) & 0xffffffff) >> (32 - (s)))); \ - (a) += (b); - -/* - * SET reads 4 input bytes in little-endian byte order and stores them - * in a properly aligned word in host byte order. - * - * The check for little-endian architectures that tolerate unaligned - * memory accesses is just an optimization. Nothing will break if it - * doesn't work. - */ -#if defined(__i386__) || defined(__x86_64__) || defined(__vax__) -#define SET(n) \ - (*(MD5_u32plus *)&ptr[(n) * 4]) -#define GET(n) \ - SET(n) -#else -#define SET(n) \ - (ctx->block[(n)] = \ - (MD5_u32plus)ptr[(n) * 4] | \ - ((MD5_u32plus)ptr[(n) * 4 + 1] << 8) | \ - ((MD5_u32plus)ptr[(n) * 4 + 2] << 16) | \ - ((MD5_u32plus)ptr[(n) * 4 + 3] << 24)) -#define GET(n) \ - (ctx->block[(n)]) -#endif - -/* - * This processes one or more 64-byte data blocks, but does NOT update - * the bit counters. There are no alignment requirements. - */ -static const void *body(MD5_CTX *ctx, const void *data, unsigned long size) -{ - const unsigned char *ptr; - MD5_u32plus a, b, c, d; - MD5_u32plus saved_a, saved_b, saved_c, saved_d; - - ptr = (const unsigned char *)data; - - a = ctx->a; - b = ctx->b; - c = ctx->c; - d = ctx->d; - - do { - saved_a = a; - saved_b = b; - saved_c = c; - saved_d = d; - -/* Round 1 */ - STEP(F, a, b, c, d, SET(0), 0xd76aa478, 7) - STEP(F, d, a, b, c, SET(1), 0xe8c7b756, 12) - STEP(F, c, d, a, b, SET(2), 0x242070db, 17) - STEP(F, b, c, d, a, SET(3), 0xc1bdceee, 22) - STEP(F, a, b, c, d, SET(4), 0xf57c0faf, 7) - STEP(F, d, a, b, c, SET(5), 0x4787c62a, 12) - STEP(F, c, d, a, b, SET(6), 0xa8304613, 17) - STEP(F, b, c, d, a, SET(7), 0xfd469501, 22) - STEP(F, a, b, c, d, SET(8), 0x698098d8, 7) - STEP(F, d, a, b, c, SET(9), 0x8b44f7af, 12) - STEP(F, c, d, a, b, SET(10), 0xffff5bb1, 17) - STEP(F, b, c, d, a, SET(11), 0x895cd7be, 22) - STEP(F, a, b, c, d, SET(12), 0x6b901122, 7) - STEP(F, d, a, b, c, SET(13), 0xfd987193, 12) - STEP(F, c, d, a, b, SET(14), 0xa679438e, 17) - STEP(F, b, c, d, a, SET(15), 0x49b40821, 22) - -/* Round 2 */ - STEP(G, a, b, c, d, GET(1), 0xf61e2562, 5) - STEP(G, d, a, b, c, GET(6), 0xc040b340, 9) - STEP(G, c, d, a, b, GET(11), 0x265e5a51, 14) - STEP(G, b, c, d, a, GET(0), 0xe9b6c7aa, 20) - STEP(G, a, b, c, d, GET(5), 0xd62f105d, 5) - STEP(G, d, a, b, c, GET(10), 0x02441453, 9) - STEP(G, c, d, a, b, GET(15), 0xd8a1e681, 14) - STEP(G, b, c, d, a, GET(4), 0xe7d3fbc8, 20) - STEP(G, a, b, c, d, GET(9), 0x21e1cde6, 5) - STEP(G, d, a, b, c, GET(14), 0xc33707d6, 9) - STEP(G, c, d, a, b, GET(3), 0xf4d50d87, 14) - STEP(G, b, c, d, a, GET(8), 0x455a14ed, 20) - STEP(G, a, b, c, d, GET(13), 0xa9e3e905, 5) - STEP(G, d, a, b, c, GET(2), 0xfcefa3f8, 9) - STEP(G, c, d, a, b, GET(7), 0x676f02d9, 14) - STEP(G, b, c, d, a, GET(12), 0x8d2a4c8a, 20) - -/* Round 3 */ - STEP(H, a, b, c, d, GET(5), 0xfffa3942, 4) - STEP(H2, d, a, b, c, GET(8), 0x8771f681, 11) - STEP(H, c, d, a, b, GET(11), 0x6d9d6122, 16) - STEP(H2, b, c, d, a, GET(14), 0xfde5380c, 23) - STEP(H, a, b, c, d, GET(1), 0xa4beea44, 4) - STEP(H2, d, a, b, c, GET(4), 0x4bdecfa9, 11) - STEP(H, c, d, a, b, GET(7), 0xf6bb4b60, 16) - STEP(H2, b, c, d, a, GET(10), 0xbebfbc70, 23) - STEP(H, a, b, c, d, GET(13), 0x289b7ec6, 4) - STEP(H2, d, a, b, c, GET(0), 0xeaa127fa, 11) - STEP(H, c, d, a, b, GET(3), 0xd4ef3085, 16) - STEP(H2, b, c, d, a, GET(6), 0x04881d05, 23) - STEP(H, a, b, c, d, GET(9), 0xd9d4d039, 4) - STEP(H2, d, a, b, c, GET(12), 0xe6db99e5, 11) - STEP(H, c, d, a, b, GET(15), 0x1fa27cf8, 16) - STEP(H2, b, c, d, a, GET(2), 0xc4ac5665, 23) - -/* Round 4 */ - STEP(I, a, b, c, d, GET(0), 0xf4292244, 6) - STEP(I, d, a, b, c, GET(7), 0x432aff97, 10) - STEP(I, c, d, a, b, GET(14), 0xab9423a7, 15) - STEP(I, b, c, d, a, GET(5), 0xfc93a039, 21) - STEP(I, a, b, c, d, GET(12), 0x655b59c3, 6) - STEP(I, d, a, b, c, GET(3), 0x8f0ccc92, 10) - STEP(I, c, d, a, b, GET(10), 0xffeff47d, 15) - STEP(I, b, c, d, a, GET(1), 0x85845dd1, 21) - STEP(I, a, b, c, d, GET(8), 0x6fa87e4f, 6) - STEP(I, d, a, b, c, GET(15), 0xfe2ce6e0, 10) - STEP(I, c, d, a, b, GET(6), 0xa3014314, 15) - STEP(I, b, c, d, a, GET(13), 0x4e0811a1, 21) - STEP(I, a, b, c, d, GET(4), 0xf7537e82, 6) - STEP(I, d, a, b, c, GET(11), 0xbd3af235, 10) - STEP(I, c, d, a, b, GET(2), 0x2ad7d2bb, 15) - STEP(I, b, c, d, a, GET(9), 0xeb86d391, 21) - - a += saved_a; - b += saved_b; - c += saved_c; - d += saved_d; - - ptr += 64; - } while (size -= 64); - - ctx->a = a; - ctx->b = b; - ctx->c = c; - ctx->d = d; - - return ptr; -} - -void MD5_Init(MD5_CTX *ctx) -{ - ctx->a = 0x67452301; - ctx->b = 0xefcdab89; - ctx->c = 0x98badcfe; - ctx->d = 0x10325476; - - ctx->lo = 0; - ctx->hi = 0; -} - -void MD5_Update(MD5_CTX *ctx, const void *data, unsigned long size) -{ - MD5_u32plus saved_lo; - unsigned long used, available; - - saved_lo = ctx->lo; - if ((ctx->lo = (saved_lo + size) & 0x1fffffff) < saved_lo) - ctx->hi++; - ctx->hi += size >> 29; - - used = saved_lo & 0x3f; - - if (used) { - available = 64 - used; - - if (size < available) { - memcpy(&ctx->buffer[used], data, size); - return; - } - - memcpy(&ctx->buffer[used], data, available); - data = (const unsigned char *)data + available; - size -= available; - body(ctx, ctx->buffer, 64); - } - - if (size >= 64) { - data = body(ctx, data, size & ~(unsigned long)0x3f); - size &= 0x3f; - } - - memcpy(ctx->buffer, data, size); -} - -void MD5_Final(unsigned char *result, MD5_CTX *ctx) -{ - unsigned long used, available; - - used = ctx->lo & 0x3f; - - ctx->buffer[used++] = 0x80; - - available = 64 - used; - - if (available < 8) { - memset(&ctx->buffer[used], 0, available); - body(ctx, ctx->buffer, 64); - used = 0; - available = 64; - } - - memset(&ctx->buffer[used], 0, available - 8); - - ctx->lo <<= 3; - ctx->buffer[56] = ctx->lo; - ctx->buffer[57] = ctx->lo >> 8; - ctx->buffer[58] = ctx->lo >> 16; - ctx->buffer[59] = ctx->lo >> 24; - ctx->buffer[60] = ctx->hi; - ctx->buffer[61] = ctx->hi >> 8; - ctx->buffer[62] = ctx->hi >> 16; - ctx->buffer[63] = ctx->hi >> 24; - - body(ctx, ctx->buffer, 64); - - result[0] = ctx->a; - result[1] = ctx->a >> 8; - result[2] = ctx->a >> 16; - result[3] = ctx->a >> 24; - result[4] = ctx->b; - result[5] = ctx->b >> 8; - result[6] = ctx->b >> 16; - result[7] = ctx->b >> 24; - result[8] = ctx->c; - result[9] = ctx->c >> 8; - result[10] = ctx->c >> 16; - result[11] = ctx->c >> 24; - result[12] = ctx->d; - result[13] = ctx->d >> 8; - result[14] = ctx->d >> 16; - result[15] = ctx->d >> 24; - - memset(ctx, 0, sizeof(*ctx)); -} - -#endif diff --git a/embedded8266/web/md5.c b/embedded8266/web/md5.c new file mode 120000 index 0000000..11b21c1 --- /dev/null +++ b/embedded8266/web/md5.c @@ -0,0 +1 @@ +../esp82xx/web/md5.c \ No newline at end of file diff --git a/embedded8266/web/md5.h b/embedded8266/web/md5.h deleted file mode 100644 index 2da44bf..0000000 --- a/embedded8266/web/md5.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * This is an OpenSSL-compatible implementation of the RSA Data Security, Inc. - * MD5 Message-Digest Algorithm (RFC 1321). - * - * Homepage: - * http://openwall.info/wiki/people/solar/software/public-domain-source-code/md5 - * - * Author: - * Alexander Peslyak, better known as Solar Designer - * - * This software was written by Alexander Peslyak in 2001. No copyright is - * claimed, and the software is hereby placed in the public domain. - * In case this attempt to disclaim copyright and place the software in the - * public domain is deemed null and void, then the software is - * Copyright (c) 2001 Alexander Peslyak and it is hereby released to the - * general public under the following terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted. - * - * There's ABSOLUTELY NO WARRANTY, express or implied. - * - * See md5.c for more information. - */ - -#ifdef HAVE_OPENSSL -#include -#elif !defined(_MD5_H) -#define _MD5_H - -/* Any 32-bit or wider unsigned integer data type will do */ -typedef unsigned int MD5_u32plus; - -typedef struct { - MD5_u32plus lo, hi; - MD5_u32plus a, b, c, d; - unsigned char buffer[64]; - MD5_u32plus block[16]; -} MD5_CTX; - -extern void MD5_Init(MD5_CTX *ctx); -extern void MD5_Update(MD5_CTX *ctx, const void *data, unsigned long size); -extern void MD5_Final(unsigned char *result, MD5_CTX *ctx); - -#endif diff --git a/embedded8266/web/md5.h b/embedded8266/web/md5.h new file mode 120000 index 0000000..4c7ba1d --- /dev/null +++ b/embedded8266/web/md5.h @@ -0,0 +1 @@ +../esp82xx/web/md5.h \ No newline at end of file diff --git a/embedded8266/web/mfsmaker.c b/embedded8266/web/mfsmaker.c deleted file mode 100644 index f2915c2..0000000 --- a/embedded8266/web/mfsmaker.c +++ /dev/null @@ -1,146 +0,0 @@ - -//Copyright 2015 <>< Charles Lohr Under the MIT/x11 License, NewBSD License or -// ColorChord License. You Choose. - -#include -#include -#include -#include -#include - -#define SPI_FLASH_SEC_SIZE 4096 -#define MFS_STARTFLASHSECTOR 0x100 -#define MFS_START (MFS_STARTFLASHSECTOR*SPI_FLASH_SEC_SIZE) -#define MFS_SECTOR 256 -#define MFS_FILENAMELEN 32-8 -#define ENTRIES 8192 - -#define ENDIAN(x) x//htonl - -struct MFSFileEntry -{ - char name[MFS_FILENAMELEN]; - uint32_t start; //From beginning of mfs thing. - uint32_t len; -} mfsfat[ENTRIES]; - -unsigned char mfsdata[131072*8]; - -unsigned long fatpointer = 0; -unsigned long datapointer = 0; - -int main( int argc, char ** argv ) -{ - int i; - DIR *d; - struct dirent *dir; - - if( argc != 3 ) - { - fprintf( stderr, "Error: [tool] [directory to pack] [output packed .dat file]\n" ); - return -1; - } - - d = opendir( argv[1] ); - - if (!d) - { - fprintf( stderr, "Error: cannot open folder for packing.\n" ); - return -2; - } - - - memcpy( mfsfat[fatpointer].name, "MPFSMPFS", 8 ); - mfsfat[fatpointer].start = 0; - mfsfat[fatpointer].len = 0; - fatpointer++; - - - while ((dir = readdir(d)) != NULL) - { - if( dir->d_type & DT_REG ) - { - char thisfile[1024]; - struct stat buf; - int dlen = strlen( dir->d_name ); - int sprret = snprintf( thisfile, 1023, "%s/%s", argv[1], dir->d_name ); - - if( sprret > 1023 || sprret < 1 ) - { - fprintf( stderr, "Error processing \"%s\" (snprintf)\n", dir->d_name ); - continue; - } - - int statret = stat( thisfile, &buf ); - - if( statret ) - { - fprintf( stderr, "Error processing \"%s\" (stat)\n", dir->d_name ); - continue; - } - - if( dlen >= MFS_FILENAMELEN ) - { - fprintf( stderr, "Warning: Fle \"%s\" too long.\n", dir->d_name ); - continue; - } - if( fatpointer > ENTRIES ) - { - fprintf( stderr, "Warning: Not enough entries to fit \"%s\".\n", dir->d_name ); - continue; - } - - if( buf.st_size + datapointer > sizeof( mfsdata ) ) - { - fprintf( stderr, "Error: no space left.\n" ); - return -1; - } - - memcpy( mfsfat[fatpointer].name, dir->d_name, dlen ); - mfsfat[fatpointer].start = datapointer; - mfsfat[fatpointer].len = ENDIAN( buf.st_size ); - fatpointer++; - - if( buf.st_size ) - { - FILE * f = fopen( thisfile, "rb" ); - if( !f ) - { - fprintf( stderr, "Error: cannot open \"%s\" for reading.\n", dir->d_name ); - return -9; - } - fread( &mfsdata[datapointer], 1, buf.st_size, f ); - fclose( f ); - int rs = buf.st_size; - rs = (rs+1+MFS_SECTOR)&(~(MFS_SECTOR-1)); - datapointer += rs; - printf( "%s: %d (%ld)\n", thisfile, rs, datapointer ); - } - } - } - - closedir(d); - - int rs = (fatpointer+1)*sizeof(struct MFSFileEntry); - rs = (rs+1+MFS_SECTOR)&(~(MFS_SECTOR-1)); - for( i = 0; i < fatpointer; i++ ) - { - mfsfat[i].start = ENDIAN(mfsfat[i].start + rs ); - } - - printf( "%d %ld\n", rs, datapointer ); - - FILE * f = fopen( argv[2], "w" ); - - if( !f || ferror( f ) ) - { - fprintf( stderr, "Error: cannot open \"%s\" for writing.\n", argv[2] ); - } - fwrite( mfsfat, rs, 1, f ); - fwrite( mfsdata, datapointer, 1, f ); - fclose( f ); - - return 0; -} - - diff --git a/embedded8266/web/mfsmaker.c b/embedded8266/web/mfsmaker.c new file mode 120000 index 0000000..6fab8c1 --- /dev/null +++ b/embedded8266/web/mfsmaker.c @@ -0,0 +1 @@ +../esp82xx/web/mfsmaker.c \ No newline at end of file diff --git a/embedded8266/web/page/index.html b/embedded8266/web/page/index.html index 8432b8e..bb4a64b 100644 --- a/embedded8266/web/page/index.html +++ b/embedded8266/web/page/index.html @@ -1,11 +1,11 @@ - + ColorChord Control Panel - + +{{PAGE_SCRIPT}}

    L34-Plx1`1cIzT_ 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 v zgZYnSk08O71&4x!w`KYrd%)|wvkIF-cEoILp0dM2ZGSC<^EKG?&P_O)50vNh=^Y~( zb=YDz3@E8>b2cz8=v6GSr1LZC?znCI=<0=#jwzY^pgO}kVg2puMS9Pa?1Ps=P9IV> zhpgp;{oB?yPs!?hiX0C+9x`YV167=cqv_A1Wka7Vyuh@*sO*tI-8gZ|4rtP?>Rqh# z;V%l$$f>E{6P!p=tu}mhfPIAk8jJu8^pndX$=0|BF_9C4~I3cj%p#NldcbAd@ zdaikZ)JvU|)Kb&~hzW!LMKd!i;_U123lJ9Vyu1irp83r!U!FA-W##lZ;|%G3XXlUb zX~ZI(e!4i`?D$sB{|w3oH4DlVYUvyVDI zrNUrDXCD^mqi5M8J|zD$c?K1e%NxC=UQD&_dn+iW+X-*hCy}*)d`4k4YQnshe(KID zrLp1%(RaJ+WBK{hDq6*|S;w!_Y33iTIYDayQOo+9g9H8IfdLuo4>0);AuRcq~+!Pq3#%Y^NIiOOzU~P9_K4Wh=e(U^0G>eV>!f%DTH$fYmxB=2> zcH!QT)k{0yra}u4br5zw8}C^ee!!);K#EEb7 zE{U>?CuXrFRrHNl+T7vE3b7*>^GU{3290Sc~rBHG?D7QDWfz9AM=Tmac7LF6# zjZ0>!B`?$Wh|`wUV4H*e)AhklR-EH-etX}g(rk|Rma4Cr!{06QXc`JusRIBPT&}mo z{0*-#eyjASR@xK|`TQFt!;N`a&`c0p7X*#GaXvNym8~CMLM0IbDQodB^Kl8`#ytA3 zucF-tb5~QuRI3@)@8!KQ>%F<&yTA#21nd9^R5req{DCW^e zf~V!n*-GUu060%Vh&SS5sE&rw4Hy8bj;eBKj$CXB`15W^I8NLpQh?FmeAiY zPa~|mhFG*1SBF zmjxW_)8N+_;kc-@^Kf~N{fGiW;f3F0@wCl}K25`ehuYPfS%+qE99rP{75D;w=!#cU)!QVSowI=|YkEc&L}uG$yZ z6uooHgDJdsM5HMg$1d-J$j*Ci3u7*ETnnIFmz+-_!D-ot^}M z{JRq(P1;KMMbC>=1>Y9pFY%Vu`Pr9Y8KXdjC(ci6|7I6f4_fI%i@<|IL=2^l>PuL7 zp6n1>5eR6&rL6VZt9vIid-dMz4mnk$2WzgSC3*RLnML3vwMijtmJ>`0a;x489Lkrr&@HSW zNE~qU3f;(V01xx;$A$sgKOr3Tzk1lvn=Y*qwc~P)WhC(2ob$PqCR+GDxln&K23`iazTa)WQ1L2&mqpOD~=kgZf0}`H_h6$AxUDl{^cx9g}d}6o~4D$=5PcU4+r|9_tJi0Y+{R=nD~@JAktqmD89)2Pi9(Q5LWZd38l2Mh|CO&hOK;4_W4(ND69HqM)xi zMHA21n)HcRsi74gr?&&V_^LBh%h%$#?0iUj);+9K#aYgd}OCCaD~(=J*Qn*-vdwE zYGJUKaNeBZo*WUM!B7u5)kJVjRsGFDPZ{5&!XDOAtjP2|R=aL*8&IgG0@k~2O13s+ zb8!$xo}Ul^X2>qODyh`4mV#womYNT{GODFV^hsiP<1}q!qaNO4W1r!{z@R_hVtLhj zW8^DWmXwV82lNpf8Z4Qy8b74vxeg(!S1_Ix2K5QioDdn_UKVo2CJZ*Ny(#1X0gQQY zpifbl+xH`m$SAEd>S9+QDx3#Ix2)jHlS1R|0D1XXNd?WP{&xb}BX>Oxc$7|UqdP#R z_7Z==rjJp{^SfBmz7zjz(yZ5Hb+McWz7J=4o02>|E$?ApqACUf+m*IVg3Y=J@A75& z>7}Kr$0)fm0O@%K+EdGy!( zuxnEacBed?W49@L`H+$cy0e+Rvq(`^Z`M)B%=10(UxA;4vMhUrYBaazQ@PI7JBd^u z=c=`q>O;4UMPla(4Q!;ZO;PPm`G1VP3tUuX{y%=6GZ$v$49pBTUO=03gmK8Bn896P zlXm9lAm*^an2062%t(kEmQJ?nrW>G;=CmP}X;C|%d2d5%D}S}$1r)>@OzEPQ>?&Q< z)V@e&n!@?LpEGFge!s8(@82tR&h5EBpXYOZe^~V{rmpL{X`iLB>ze67%T4C(R_37Q zu0hj7!+X01OoL`i5nHY3L3sd&48ewn5W@aWsv=y?;T|Q)9?v`Cl2_ zYPIV10q)rj7XwUt3U`GmQ0*D$_?psDT)~b#)QVE3w5ZA-3Zd}%#^|&_i|L>++sI~r zA)VgWRCU)E;S5eteGLqUktB&0kGg4i|OTd=g3}x*+5^UGAOc2_ViT71J zw13b%Bh{uPzo8dEnvA>j`JP-||J{}Sxk=VH{GERnSZXz1|BRO6tf7?bKO9VA0x%O56YP^UZNvfKG?s7v-E^blGc{4C*V0(dUc?0zrIJ6jU z<(?iWII>jc-^PdCX7k^`vs?9MtBVx=)you=!so@pn4Z=4hNS+~B(wSQ6##V#j3!Z| z_ad~mIKH4GsxEY7x;+y{Fh4^YLw(%gQ(x;tujzrLwZOIKcl;CQceV;hGMLf1`fyN*(W3#6)!O4h2{4OpvhPpMJU4ONKx;8ke;KJ0kjLb1G%UjkhU7B=k z-`<_ADMx|!LNkUuHEq)!2`TpXC@%ZNn{7e$XhgkeJ^JomRCq+FoitAsFs8jT;-zM9 zTH@No-e!hWF-%iaeBK&8PW7gg4Vw(}Hv#NJm^;k8xux#V4fv~@{-i4X4V!&JvizCt zI3_iwCYfIPp_wNDX-6<U-y})Z-3t$J2Lvcg5A;G zN?kz70eE0hkGZ&~rC{J2f4AiCsPL<^fFfV;c62~n5IA_FV0^US{0Eci>oWDxk9M0j ze)UKa(tV)tUx)|#Thxp{^$(`(FRd0+e{T!RMEgzKq62M%1tWR^*;u92HKK|&2*ohZ z-;~qXEj4~n(Ksxt^uFoM+Je#V7P$^10W! zD6~9~Q(*eTF>AI-IEE_J56Q2%7e+Na{W_<`^Sb-+{8Re;Q~G=+t*>6zFTy~CWx&GW zpv_!r&fwSVwpi|=BE0I)k~;({o-CUQcE5t%V!!_YIIeH1T z36<#ES4;ByYa*}Mk-At(YX1HGRr32^P+2fwFhXR7j7paGp?h5S_!kXBM;>Rba#mDN z9;h+E)&x<$V%h?g#W}@db~f4!rFYu-?A-{XNNQgxLD_@Oxc6N*HB+Zn+lUC4+f*-) zK@M<%ni8hAPa25iGdClUU6W8U`|Xj9O5%K>Wx}rQDSMigOp&Jf!@i~msKT~L!y5G8 zIHR|jH73g|jrPw5#H|H{p`o42kf79CKB8du zHU5s>bTCv)B*@f^S3we&%$_LQUjhnE6+3HD@x=L?3(q*0!aLABWqvO*NI#} z0nL;$AQpHPP>W3TinB!pL8yi(7B(y3McVY%#Ab13qk?S|ADEFozwR)#K2d#DZH1ww z*Jt+o68e2SV7S|SV;w%B+jqy@RW#5*!}jw6>r2d4!Q3tSMw0}31Sfue_KyBLqR)<< z8~v>W7?pQy!${w*gA?xO5mhq1Vs8Q z=G0>?^LKUo$LiRzTwrVrOb#PQ6k*o@-1+d>1!TDa1qb+qY6x22N~ITew1p_1birJe z1ElhMrEqu{1f9dQ4+TagnL5zRkFH~oaV%8798#iJV&C{Us&O1rD?J;{XASg=1d)v* z55@AdX=H)#OjAK3^bbLUC|FF0EDxg22Rt2bRQsQNyai`=S?muQWT_YZ;f zpSe_}P*+qbO@)^lw(Y75&D(Jw8yC}mpEGKoYVR+bqux`sg-Y6H#fgle}VvIfP} zq{;im_!w@uGrbiXqK)3}cuPWhfu$IegVMq6ta`5`q#7(jgQz+_<{2Tq*-t7w2@dJ6nR=GzvudaQ7Auk97Bwj;BDkq?^E$5(Thp zId@dsaP9P=y(e0G*fu0fP!`OMhUji(thN;&Qx84co>z0oo(J-|zj~8Dob<#PL;?T( zC)!LT^7!~C+P=xk>MwC8gQ)s`5)xxIPnjQ9n%i1OpdE$;g&`H%VB~{LaXtCfx|BNoo_kEH1wqLx8 zSlEb?C6E(BL?<-?Rl%aF26(OF@!>Q@-s^u8USx zMJoc)ERI5GAFHC36`KhoW8dJia_X6I}yI#_Nu8A0B+X^#9MNFI|j$ zI`!1~Rq7NdqfuKRTIGmV)S)&Q+%}sXsBI~M@of>ni#D6>&t06f8MT>8q8NOW82RS^ z(ZbP@7MhZj`|La6*qw5z?(Vr-@_q^@X84|*v23xwor3S|ehAPz8e+XvW_Z`WgU3jz zm5eSL7MjR52MNB$7H@11MF8mU|`em4u ztaZXdlY`fq-t5Lfq-u~h3iO8~Jgd;Q;xm|*=Gat&12t}m|CL17onGyeTp5ym%gatV zs$89ieM0S%>vsYb*~!5>1Ih;hxDc1#d@+CoZ?_`-9X1BMz{x4OR2!-k4}8}??7I|> zU$s*;41l`=mUxJG(LHr84C2!9TE@V;q1h=_Uv_iB6Xt$0=eKA^w*^@^XlCYHiEZknG^Sdb&X@pFw_0A6N~l zLsv)8xy08R&$F~&c@#x7Fu}Rh!ra0!IjP|T{3YbaC0VklsAgKJyehy>e1mE@-G96apFyHAn5VYD zj1Ca=h-+C0^HZ{K@Yly*f!QUwE+;YL`4U4@!UP! zNKU33kPQo-hsZfEueZxDCOa9thr*!HYLnS|vSt^eESSn3MX7Ou1F%zZ z$^6V6Y#?$%D+i#My~%tiYimp_L$WQ#u3(w96bVu ztISBDL2WGUx_?^}r}}+L(4gBf1Y!IZ1~1ejktn1RF4>(ps7ipH#ZCXBx7@GB7wK|i zgoaoyUG?EWM*D)b}E5z$?YQst%<=vd)#0) zVent|@Iisoa7Th|r$5YA3cW!}K@A3Y<1r2XCABK@cQxLyElCtWJf577A`n`mZ2bkP4 zz~;&;rCK)#r1Rh&2wda9FZ_L=h5#W3ZX&mD3@dz!>@;Mb&N>|aFmj|&;sk$jPj$0Y z4}b$TB|2DjFxm)18>4**W2zg(JKDS_8LOF7r84ejDLaa3nQO)wgd{?odhvHVGhBhF)yM|6fcU<8UFE!SJ3fOv09~wA zgo{+0zI{GZAIR9_P{fwTX{lDfdLwm!S@AKnkk2uyN3iRIeq@5VBH=D=Ir{rE%_zgZ zLwSJgYy$$ip%wUN4D0z*n{9&XJ*j%T6kL%(G+19~_pL*%1-jl%k?*ie$&u~+bqRf> zL-olvylBP7H`G_rBPotQwB0eaBC@Ckef{*1%C4xK{a3qsH#S3H+yL_WEn4&gemlku z@SC=$r7bBP!Eq-h?TdpCOeZxqqwNQ8It@aDRzqQ58UD@f@}i57&gxBr)w|A@8d>!6 z=f3f~BJWTl2lBdc(7l7cQ+@ficksxyVJDg{C=1A|+e^iG6f2nj;FwwvtjZCCQ(Ke_ z*|Z%UNP_cX-JohKEyCS*vk1B9a9s86V_J`~X~GyC!5;@at=4Sk4oz4hu?ZK6UPtKA z-jeOPT=Rs=W=|3+pqL19BB4)E+(+b|?YJg$w`-hj%n@YzxZt^9=GbgtdK+V08wVXp zpL!dd*h`L*PuuuJN2r436Mh9@(PAC}jMwVrgYG(vPBh;p*(beD^0%Qh-{7Xj>nNg$ zfBt~G7Ek}$#*daY4v*0G!TuU^1+4di$i+?8yOdtmoRUP|czuE$joXU3vD_+%{bcMe6z_ga(kw0rX*j?8 z_wigng}(;P6~*|K|YU%2;8n{lB)E`iKZw{43&RNI^9LYVJu2nj1b=#VEsT>KIixlT+f* z5ktiEiMEklZTh1Y^vMeuDtDlBy{1x*0w`VdYmk3R`-l5+qCcHUGJV`b`waVd0D_D~ zx~`%7$o}c&inY)tXCfaRT9>Hiriz|(HJ?k~ma7HsD?&&mmm(KXz#Us|Sb!qrGTTR~ zIWNS#n`Loj+=(4NfQuW}@~V+)KpA0phgVM-sKMm>!Zd9O1y(p`hZl`{2M<_%D7}Pir-QvmOy%4PhI}#L+c%idGycC6 z7uiGkf_fz~lZ?+g)PZS@IhPOjBP4qOUJEecJK@d@9Tfw3w~q$As*0$GM~m!YKl^CK zRBCx1@o*yGB8$uH#Z!+$h_D7dqdPh*7E1fT-Q6bx0)uqe!@~XHk3}XryxPlf z;a~U}U46&8Q)fmXEM9d*T9f~Dv!W{|B|o7Dohi+F5B0BW>E)Q?{K-G{a|F1BVJUn> z0GbJ>412@r$jKI*h~XHH^Ma-{;7rKCmI~K9v)7{@>NeU(TSooW$-=>Nc0?{;WcMt( zv~Gao`c8(rQxDgtQjGw{_kKFQ!Co?N5HBT!TUwSxP5y$@Q2-5$r0%MVLSE33tbAzD zuUYBU{Auy>f%$(Mnc!ZO91?`XKzsD&{K+AV%}~5JPdWdEZ>Sse`n*BEcID#72L7&o z`9}ax5J4r?1rY)ovpHOH3}SV~uH<6&FkLZ6 z?;n8e{m99Xkb0QdDN#)b_bxn)=W-|iMZ4I0|4O=IuDT+9L|NBdk!5=N4q8^s%A@xV z)H^xu$c>QW?!)8b9P$tyto@EQ5J}eJj&PxbaKHJZ{^G;^F|_0#C!hZh9to`=23kJ| z2_8h=P8B5q){G1Toe)eSoYEI#8d?wF4CsdRus#N zzo52wR_MX0*OQz{Z<>>MX56YhM-ZM>$30fjM4H~UH#N6Z>;$5^z3IK$zV{5FU7@C3 zwb!2sJ@aP8YQA>ahJfcW!Skq@SrX2}Zl9uh7_gR)E%jqLa;sD&KT9_9d0ZN=#}>SA zN`;b$;$lW)uTe7Lk_rXMRj9$Lu!}1goY!_&?+xyU&x)xoN8u0``;)r4E#}ge;$N(a z+M?9aTTtzWf2>OC9=|Dy8`oaM)PNd)b@S+_9HN#4;pF{zX?)bM^fZJ!iH`#{B2M+t zEe;FsfJch3SB?XE5cU#sWh0%TAB3!us^!Zz14~W-=D~BS~*OwMp-piPma@S1*qM|DC!bpFZo|%Hm7Z0zy)75r|DB;+t1y=gNy-aN@y%u^>c&U zjEVKHLb)HF<-T~MLxF6Kvw|-P;aQ0r$TA95lX3CV_umD#V3k{(<1Be*%c3zEJ-Dh@ zG{c4O<=9??-Q622wESf1j^Scpi|B_;Kls&Eu*2D{`v704EEun?;+Tr(CstHUd~p-oVP@8^ z=-s3>r67^w(MD+ZAA*B{_eB&9Le$NT%Ve85M%KbB8#yL7CKQ_3C@K@Z#6-EBATqP3 z#)w<}jMS#i?xz^r`vJ(!hyBNsQBm3!!AWFro3 zhDb*zP$<^i81hHj&FprGp@#%wCHsAvZl7A~qCxu?*)B}2?l@Z?YTt2#2EPKBKT(H} z9%$5yi{DxaqFkK;HG4breU&bAQW;38`;&{f{ull0w-@`NW?xA97qZu~;JR}mPTbmb z^uktwJ8S>l0Q_bI0U!mmV-D`@k@QgiJfD#23wGNJF-~uhf6yoW3vthndoyuwANfC# zdwwAV-4vDTs{bB$bi@rVX}XT()FX=HQ@IrzI0WYpM6mOYK$ziMVD zCi~y$nytWr7`En0FVBQBRMVxj&c)sJ1rDsoJ9)+m_#pI)yEF?Bx5 zLa83Tp5t*SouKtoomP*~Hj;co$K26ynJQ_lp3Z!F?H+y?op|}eDXfmS z=?9Tkyh(p@N~;H4kdT!4rQZ~Tw~EtS$zSOcbsTdgPmgqR_-ZG;(SA`<(;P(%d5vCD zXxR!HD?)XXA*eP~9}Fyh@k@YvMrCU}QS(OtZ@_tEho|no?lm4q&e2=!ro(xJwJ9CW z?q>Ww<7oTwZ%d7*c^Af=QGGv{jkE$x5@cy-J(8C^Ai(s9jtKGf`N$XWGQVjw#YlQJ5SIHS;HO}x()1SC3%cqkWYR* zI%R8}`Kjh3gL_gM%@w7i$Kbn@cmc|iGWrUey7c`c*0lHQsA*NlG)MoPP5ndZjKn<^ z*0en$ZtiLP*;x7z{Q^q@W$3=Zw4OsQ2#sOMB9S(VK zz5-zqDKDYD+pzl(&oWKtTpKIM1Tz`ARg=dhGABbwDO~?}OzCwUUfr!?T?!YanOn`vcf_OVpL-~E<@$Vl{^WNGM_>*b2F3P*aQugOKpBj6M`?;Fmf42ppCk%KJ?4^*rpAbxN!gnYi zwoirdF%%npsWXSdlt%esP$`J?0AQ$jj#G;b7 zXy64@G|)|xz4UioqORfcDbrd_w4S znwP6g!*=~34g6ex>} zn~u?J$~hZYFO0t%UF!PuUX#~0_0 zmi4KikCMSGAlGy$Q=v7mZ{I`8=O}qel-%_c!ou1lOSB?kH$d z=hwb*$OSRS=iTzna8|vLNl0c*=elBBDp0eNS+qCm44YjB2Dqi=^1-^ZH4npT^%LGm zn{0Lz>C)1sGI37k?gkk1*n)G_nKxhnfka%yVE~n!5op|oPFJqZeJBPM@<$~sIT6RX zj`iyl@T#s%=&jSKDk}7w$yx)+q)p^R(j={a@{|KHO4`13vuSyht?hM2+_utjA0V5q zll$qk4zMP#Doe*b#Fgx$bN#~exJeoSeTX!+jBx+3@x@~?^)qv0iJngSo&bUbpSvz@ zt0q6tT41yw{!<#b5aR-m*5J`v@*RCdY9;Ot)DF+narzPSM#BA7aDs{(;Nn$1;W`~c zRkx%bi^0Tw#FgHaM4q74i+3fV`YcX(0I$Fm!+IT$kh>Wy;yBu7|6NGagAjjjfzA|C zSc{h#_iPtZGuv|s0{pXdR=;X85f*0F_hzvo-qIymOT?~Z_fKrNO-2B4q-Iv%OZsz1 zMv$4Wt{=i?W*DaLBlE#zwq_IcTtYJwI@tC zh(2FuqZC^nYQbAsb*#l=I>l-9*M~5nnA{4t7i|MV)}2g>!4!^i z*eq6JdOXT&OMZnFZAnayGofVK+av)nh2HXHe|eIBIxGswaGw;XvuQ%5FdfQ=y*3s| zwv;YRSHS18(Uz=tI-7P?HcnSo*^&ad%yCvMtqe>D@0cu3S37LUX&ElZ^eDk*fj!Mg zL8P!y1fEg#Nk?+cf{%d4yJ6P&OmSgcErUqqSWw|N0*LUl z`P6<5RYsw{4hnY;@~*1PT*VQ1KvL(7U4;5)fQyooBvn*guH%#+w6AqA$g74#Nr0;o zT68Vkxu{GX|B*!MLa1{^KlmyKr=4+f_m=HVI{pLLZsq&EHN8@E3?T=lrZ<(QM}8P; zXbnAjNSjn3UM?3ppw46tyqWAQ##jiUr@+0tZcu3j)(V)6%&a-Z5Uk^`N@OW5Q)96E zwzw8HK=o7dN1^0NValSPLyvFKj&BgJnlf&Pc61tW7Kj>KGahDDWJjrD z)P5$)!64z10p2VXrDhOjmQi8J!dg+m5cAVbYf15<%R4eSQyODlW7Qg%!j?t9YRP+h z6{kuoSe0R)y>4n~dkak5|7@seYI&!LMDHs8y`IzOO~>j=`v7A>pJ7M2$pPq52p-Pv5dLPD+jq zhxioIrMPb#Hzi_j&t=&LW;|5X^Ez1Yd0(4kGB=L_u1 z;n6gQpKdth%Ouc9#c}b8F96jn!>|r8_!`1`qDZb>LcZTHS|Aw#!^kRw$w90lN%9i& zCf5%8yL_`JrqL5y=YbNyAbN}rPh6EJKHxD4p3#2KNFkhn6o`wKxhmGUsyxF3o)Lb} zs7_ym*tXM=p!M73`e7wkAw>*g?KEVa4YhaLNou4A|JG)o+~&pdH#4DvAm%ywFV8}> zsp`L_3|CJ6d$uzBG9G9Jh`EcZ@@N7ct=}`Ob1@k$7Z#};b0ME;a#=39taO+bUO?tz ztAP%g!xP1Nw1P(iUBP>3%`lC<(S#-EX%OwAy<9Ff*z z+&{Nbx$wCCNg;BCQl9BXTZ-JedlY_fz!aU^w{KteD-YXv|4^tucIVJL{s&*^S~r-O&Gv ze8RZe*ETk52)ADhm2ksXTv?F2plD92H+Q61q;?buDP7tg0D8;r4DujC0{a?9 z`Dcick~+w*y|`LOV(1m8%f1YrnXV}W-fzX7n|#we+(XhQ3ac+eeOP%JB|TMsC$b+} z5t9t3XR!gJgZ5LDq{%E1X=79N&}=+v=|Lrd%hGYI;edh=yvC<#??@ z(+@PRUL^a3!;T*D%b$r9B!oqKG^aRY3LF%Nw7l~Bhj>xJ00V+$PS~f_W|VCyZ0u6Z zf8p*PNJ1quG%!<0K@`v?mQJ{>)X)Cgnxo?MISx} zb?MMic-2Q~SQ^q(8Zs6Kg$!s>VberZd$7BV-MEpNWExgxoFRNx0Pa)Q7jbE(`|1#X z!hX)BHC$A3dQR8b>pZe*Pkkn-f7Y59?ia#Vss$lkverQ#cC52OZL@B2+Py8ET-uRU z1?2;gj-7SUagrBn^vrE>!|(h>w1BZnn2PgSoWg`BMyHS8a8X{%w(rNksh#}%_=!rP z?TD_=8!8_Ew_*NJ>G)sb#!g+ICu;mVT2I;d3|t=v{!dGo%LKrEf6TVC6IrEqE zbX`PDJ#=-T7f5UbuMq6JKkZs|P%qOTDBGZNGq;&jNjs1Ayw1)|t^C&>-&HC9inIyK zs&=QV_HV8SnTkA8yt%4kk)A1gqG@vr^7tTNI|LL&JIGT7qc3L6l%L|s=~~RDTuj%V z8MaOK&iq;s-=+GBo%)JhhKjWWykYI8C%~tGjakltq)Kbx*UV*yaczl7WoO z?a-}(EtAI(xOF;E5)`GUZ)b5A*&Lw%(~6hrIQ6$Q6gImbHg#A%2w4B>IcH3b@I@9w zPqqjx(N$}8gry(CS;BD*c&<9~JpJ|}w?oHiKiGvFSdqw2N<|_Wp`nMWXA{PWp+@^Y ziF{8(wSc=#(FRoDD?wjZ(*m%dnN-CG>Fkt$a|2{f$>TZXXeoa+j3I027xrtC4Um^9 z2J%l@rjAV^L1Ox)DqQugMG}BXoeNfsiPQ6ywUPNY^th#-yqALO`!fs_)l~6WrjJmr2jA}2r}^c zYH!o2Qz5{`3%1cudC9 z8$bhuW(>NRg|WC7Xw^?AIY(9R=<>I|n)e;-oW(~!kYu=m&_=S7P6V_wp^zBbM3&Jj zC_W!8-s4A9Bl&v+uF)R&s76)(msGXT5?Gk*Uzn6l7)xTZWvGsOe~#BT#->o6ls5X+7(oX=l14BTlCI~_YoXPo`kN%Qj^(C0 zT9=T{$h|bYe**6-pk#Hl<|QiIr<@g9aaU~3^8%aE65z+!V6O=rOd?-NC}v|b21s@n z8b#fOaHz^-VgJ44EHR_Ka6JIxQl#4ALHe_adnt{Nv}8#2}VHMx9Am~rj*U*woG6qV1=~aROM_zL^W-(! zalz)ZU&Q4Lq=8=Aza32F#Kw*AF@A+!53Ny@2d{pC6^ghiBZ@UtqwO!MfztijEmFq> zt1#H{qQB7LzlS!0eiNbD(AKbRX`LD!_w4 z!dLpm_E#XVGR)=@4=PR7 zBe;b%!Pu@z*TyJ%%;P%%~+Fjso;R}<$Hybu;SdvJPpm+jkbbZYsP8$jxFVA`&W`FV9D?} z_FpOZK3NEtI}RIcN-~XpZ|Y659?du{+KN0X1WAeIMflz{Ff4kZ>6f|y;`9%Wv}9?n ztW>?7%hq&AeNQV3axV34Qku^7u_30>b`M)_FzsTSZAJ6XCn3%$r&X?Xk9#Ro(EJ_$ zvXrqmmjjqqxj|Klh(4jbG~<$K|0skDnhspxR^w$Z&QV@0v_0|iy=2{=(W0^jvFj(( z*o*;?}+x8-=+zLSrUPYEt}5vv7D`E@`hPVPVJO@K5|>gHRnQ-Afd(!YNcQ zOW1Tr;|Im9hu{QpkOnZpPS7fD{ebMJ7sp$L@`p^~KeJ+xI_Ux0x$g407%DD4<5J%^ zWuF!n*f|%P7(>d9w22#pH~t0tak<|7o*ol~X<`7_QC>u{>4#Vpzb4tGQrX<-(gMo~ z+WHY^vJvKfc%FkFrgxdE>&V8&V_u#`R1K0NK*A`qSJ~#3T4Sng4|96Uaiygb%oF@& zSnO|{)ef7_v)bF{-ZT=2y^Cz^3wQb-e)R_EYNI4rS< zrDt&^wEnW%g>&=XM1{Ll68Yf)euPbdvvKk_0E%JxkzjHltd1GPyTBk>aT!3*$}MK) zmQ;r2N6SbhsCS62fY|9B{!(ps`}mtDIm4{^vn1hvrmTnRl`10SMeyA*XT9Gyc6lXe z42TYh4G`D)aTk@QHz#!|Fa_M?L#<+XkgMqD&HcX7%y0E`PMfx-3*iBin2wZyN5$7N z?W+fbkLCeMrjmB7k-q~xvoVdccteBlwr=`AA}_EX{f^71@&Hp{iRd$dR@Hexqs*)a zqOObeDA?3_P2ZUTzKsOmUXL=kq|~h8)qggBXSSF%4xVp8^x1djUXS`zp)2RK*P{xT zl-=j|jRHp%NG%C~E#XJGtqL<$9Yx`H^>{@;2Hm4M_GmPI)WPw?6IJKYusy`lmE`ax zGJR&D1seY`{U606Uo#x71%8Z|Pwe}(SyWy3tA2`1v|n}Y=8voR;r*0g#znW%nd1`O zD*11<{CAWX(vTpX$^MTn`}qVfKPJE@dfP7t4qguU62UUff1$n@xJ;|shf9|-1{{3C z%QhSoPti}f(RDop0AtftFkR4p)%35ZI(}?$UzSz~Q&RT?eevD(!S}MFg|G`>E~Ym$ zm4%gizyO;r7=`dW1bJpL3$}2c|@2#uy=NPib)MpGaoVudLt?g|;Mjl$6nsN)nYMo8HCZPgFWE0sG%4BE69X zK6^NtowAqQORrN27(yW7@AdP;NdaX8Q|TM_3pYfMpN_J}C%*PHd6l;F(wQ4iKbqoA zy(j!NBJnx#wdcqtx%~p#&mktl%g6e|`9cp)ls(nwS$LcKnqPJ_Fn)`QQ=<8 zTbBi<_N4K<09H$2b54`)&<#Qj$t`z7bZH`CJj zzWdGY%?eZh1u%{ca64E^X3^?lbbb|A%Sb-G>i9y&-M>~zAsA@_m>y(U08{a0RK`*3 z>6})Mf!U6v@Rt^Z^p$!t|$h!XWY;^)2mzu z27vZ|Gsy~7EkJ(+z0{$_DfwF8x%DS1FDiPJY{)+?jfYA^!K@g7Hh?au<{<5#E`s$j zl*B{~=>>(lZGXPtQ|fs$=4glf78q@O@erLa8lz;*&u}e-<3p0_1Gb>;r&OpO@pvK? z^$WVMaXO@FW-hl-oMNXV1WJAinis9B3yREpXwYNZ9+E?gqTKtsx!`%DtQ>}pR2w94 z3GjLm$|v)E@YYZbvbU5aGLL#w4@7l@NW#srZ;zYC>90&-uZ%0dvT*X-xtTcmCw(~< zdax?%c-fJsb@eKt~EiVe#jNRo~!TFmK*JMVoS({mBo7Y`#EFHymm(Nb+ z*z$Yb7o-#K3$}-k^I+7^(p`Lu!^LR!6|sQX)Cbe8qQ$6jB+J!2Tx3e?OeEcmARUf#ssC0)gT+FOGH8+XUlz@d3zuI{$komMwT^htE>3m>f-n2-`)w>3R z@b9qE^&qqb$(eQNJ*U(VvApjI9B=I5rq;dDlQ^TXRnOkX3im0R?<3HRiT9}- z_bIUmxDl3qrKOjwWNeCcbN#KR94^u<@jzkqb~dp%(5k0QMie49!X7cShErKN3c)dl z2Xg4&q|T#5=?vj_2wj9Xlm=ORCBn0s5?9lg)rr~PO~oaKtr@(tp217VLpTwcggV^XHw+g@l>EC7I_eqDLz(dy^mJ4@@! zi^zx}a6@2|z!{-DFh_KIbg}Dh^qvF?MKHL*DwbBMF!d0P@HaHTSb8TeINtaNSE2O) zrvTdrLqNvUJz%OMyzwPLP*FbvAw4VBYE;z@QilNW={>T&9{EW6rBpDr4~e$9)o(~9 zQB6M|K|e1LuVXSGmYGf|_&>k}ipk|15Jb54cUbyT41EboLAV8hSNJ`h@+=Y|31a~K zL`lNK^k#SYJ+}^}n-U(UM@9t9!A35MuEY6px39wm;__yw>!DLjh092+2FB(+v5Xi0 za<74l?Dmc7_a(5t5p5Lhada1p!!)wF>om7$NMtdg&6)B_+V%ij{{{7ZQaA4O^!kjY!o8s3j{<N_hl)on+G@gabg>LTg^ylf~=Tvm|TE>_~JxgJoxaMDCms?AQc*T zLkvTn0$+Ti&s672tnv+C^n^0ti-YTIzt7O#C)p4G zgW(#6V~{sMB#NaS_$g~o%)%Hh85|$g7lG^9eFLF@mxaI4`?>nl@jQ)(6XM6E}v^)+o?cThS4jglj#b?Oq&F7ffGa zwU(%su_^iZ*Zl;WL(dg;5gRy3tX$w=cn(=NcaE!lt4yvkT-EOm!r>UfyZ&*S?()g? z+5E2tbGhnTM1;B~4Hj|>Icv45R$hOPQn`d<0=9YU=WH$=p~7JR5v{v?&ZaqaDM@Qm z*y$sWAZ1j_Z8^t!Kb2$dC~edDL4#T#eZ2_C*P+wG+8C^YPD#;TFR5W@UXc?Fu9B}` zrQT1$)$(tM!{1AV^}%X-RlQAugRI|H7_5;WLVM`kOG8nN`izu) z7o(oQbc|SC6%8*@xZju5T@r8FjQ#EiYp~zN5Q7b$KZtlJ z`hseQ)NvqE=$|D(^U^IWi*}~&|EABYLsG~4@^klQ2}#N1LaU{YcjRBy_~vg?#{1i5 zBGw8oKO@!bm2xiBmw0XZlf%ny1V0Pd48f=6ivB6p?2^{JzpW5hHE8nFQpYxF(@E2U zbMhs|Z;Q0!r0I`m<;ylH`!DEFeFFLuZUH#2JOl1Gq?*lA#z|A$H}oxcz0~o7+z!<$ zDSLwy9GBq@Zn*7uh7*i`jyJe5AQY`Q3wu()Uo@vp*EdPaFdqDYb}ItB+eTqxp#D^Fu2j7Wn0Zyk*v>9I$i`P^rn5ePzs=g_-GSp_t?oJg7DzUD$U$IwHCeTK+Mg&sM56IbXMV6(7{qAuA&`L zsYUsi`@H)_X?@aN4~cI)J){SxBG zw&lU_hsFMbq`n|oPnw!3wwR**UsCqj$cjEG0rD~r=eig&gBf9c(T7@7D!U@y+&fa% zJN74KHjsDLV%V$=;G+cUDhmF8b^AZQDO{gLkZfhy+?>j?a&Qw(rH0>^`#W+vTUBQV zS6ty3vl_Y)n#$J+o30$tJ>*Fvgv+3fE_XP}4WxiBA!uyPFt(R#S6C5UrTXz^=(x;# z!M`$HW1Li*f-sM_ro}~Z4C^<-K;`WwUe%Jk*{<-{YmCd_C6usqc?Kq_T_17ii5O5A zhS7hX?BswY3oSL}v&DH1ah`!jO+aP*xYm;~FQq(lh0JjNw^TTpQwLQGCd0il7fdJB z8mo#2Z|9$BA_NK$;6reiRdgq?`BNKmS)^FxI(-=<%I0sH-Be@POrBX9IGE$k8C-E4 z0})LJB4QLpdxqMAc5r5Po&jDwoO(r{S^Xwny4h&CwVH9k3NZ6SH`#H9a7E6l;8fVZ z;kH|9))r0)y50Q}Y*nTD6J_bkri8OqKS>ZROxthZ_*7q#ea|DjtEo-Rf`J!CoGPJe zpYo#dr!1)m%UyA1(IS1Iyr@i#y;tgJe^p{_cm~Q_{fYduc=U?naNe%M7iB5XAg&m^ zElAqRWhAs+Qw;hn;WQ=)oU zaS9w1gehuaifY9;)}wHElo?s=8suHo2%czj*%RhPKgjx|VX{|{=DaNYiwU*jem@rHz4jd__XkgHvm_+fI?{NY@j(5`3Qh!fXUxnmmLvC9%^(-pMo>2)Hh z5`q7!fM4(o!SuMAI|Tpxkq-B;G?d|vE~{^DWQtd>%6Y%(U9)rDhIhlYo6JpXH&lrX z_2?4G1fl-$8q(HgeCFAM87WyYtVkL~CQ%9Rv;SIyZJ5d(5nAfn2J3RM3u%bVkV^+_ zNEilY5$J>?RGVgKY4h={&y4kN?Dh#G{KIG1vIv}7IhFgOw6RV#y4y;d-9w`M@pz;= z;%bq7H!D>Ck~TIfK9{X+7hqre4T+|Kcu2b>Hr%i8X-U-)HN7E}$ICLh0z5QWyccQX zy32=Cd}zKKC~_3?&P>gcILqMU5s79#XCF{s#HQ?tN>xBv766CqQDrGVkCEr%3BQN+ zdK5DlGgV_LSr5sLdBjF4Xwi@S`I+!pd+;NwIzn|%(tDqWX}I{m1&f0~Uc02-d*Ud~ zuTITDJ#4C~{_pi0>JQYvRyc;c+mDzIy}#o~aqOz7>d{H^hb9p4c4Jko9R& z8cNLxsmhFoT;hJ3q^ySl+AbXsNe4L_^! zvPuUFFH-}&Oug`xLB+FZ#khQWLk!-2z|VrAxUrxFnx40p8Y+)UPj85Rq;cnxI+g%e zcJpc~iqUm<&3DW5MoE3nIk@+qFxaM&209em?picCmSev?*&FJK)*;%ELp&!rQwzVY zgK^pT8IG%oWj;uskUlBv7eCe}6dDdCBP?pd)ak##LwdhUkuc@h#11gUXKG=+&eG)= zAiiv@gSqY`5I(4NHZ;`jxpCD2^zv=l@h$s%)-G9op?T}8IHLPiE=a%nS-H#S#qP8{U@>nOzUQ{ zMP|B}nbFML2UwK6_smYgoYrGTX450@nVXuHgumcQ+FG*FV(9;##!!?UJ>DAZplQ`} zTt&L}XGnpdPNg}az9I#5sG!}UE@rRLcOT)Q`9(eZon$k;KCjDIEZp^{w45cKM%Y-L zkf-w1tXEZkgX$qsLM?qOSBJB~MV_U<*}I;?2l&ys{&>ULy_!l{r^%VHdrw@-+&jG? zAWS)QT6+`|X0{wtS`H$c&B+?hX!%iTIfGPg;WojBKzX6gHZ4X)RnysJiyixKc&91K z7H6*aW-G0W*H%6xkOye(*7e+~>a_zj^K7HD=-tJeDjR3~_UQ#t$S>cLOIwWbK#J*Q zt>A`z51h36XvRm#zW zw0S(e&RJZR?<{nAvx_qF#VNnF=EHTT?RRkU#dakhXs7UU5kfk|RPM;;z0 zKONC%xnzyj)e7}0XrQX~-#}$!y_5ru))a2|kVZ=d;r)x}GlEcaXnFs^>=eTsJ0y{V z&QwVBdpeK0{a95um0GkGUyRom3z?|RhvPF22bPlatKbs_HHiY`V?7-O);6;g2t8fD z6Lm!n-EU#}!qQJmyNpVzL-3_heI>2Dz}g9G{8Ig zr16WaA@yaLyi!KEiM9Smc`?%-4~ZB%g&$O#22#PXF`r~Gs~8=fjcaY}WkCE|f> zEgHl`ymB>=L+>}eKt06xvyhQg6{LuRCxu|UpQ=&ZPhp?|^Wu`d53vTzEJC8C%ED?5#j5GrD;|)q~|Fm(bH1e!;|J7{=epsvG1oW@;&GXydI*SWOiX0?YI`fNd4;t^}uwMT!ac=_`WtIL9pZlH{2Dk@iK+yto<^~ZIY-X^;R@#{f2vXabQ3y)gnZZUZ zESNB@r5Z*dEiIrIwY7GJT60@dptfwS-2nx)#R76uD>kGw-O`YJ!4mH0d+r&KZGXSd z|9PIz^Z7h|8a(%PpL6c(yj|xy*W1~_ZAnvfI@3)>^W5O5dl8c^mp`!6w(@cJfrH0R zxZ>irGR1l>Zmv39n-$Ui5&6u?fUA{~(ggY<2+lb~Uh=}PWSp#bDVr|YSYnuFN(N_u z4Uh6!qP@-;3?|hHL2sYU_aKzNDwScrq1e2een-#Yku=HC46`|k&_jILQ(!LAIh{cY zi`$vE@?|y9<$Z}V8iuDO7Akwn>Oct6%%zO&OV-vt8CE9L@DfA}o7;F6)ZoKpqh2&M z{mkg?bV0meiN*kq^Tio`FE(P9FMtV_hvy4B4bZ!M1-sFr^v)xlHHNf;tBKCE!tXze zdtHhLdX$cp7EQTpb9B0Np^SNf3I}!$BKwpq(4f-vHCZ)70t~C@(@NQztfDD3mj!g5 z5V{sAbS|@{vvL1~(6|ux5Zi8J({4-dk|qbxYv#0~(yaEWOkv|s-n2y=>zdqAlpZ(n zYC~FK;rl-~rsc%l{WGmQPZ_HHynqPb^vnxd96sn!_B*)a&5xc~QGLiS#+S-)iWC?w zZqh-m3XXZ7P%51B4@L~ zgATgq))XtZ4rINVK9yPrM53N&%{(!feecG%Q>+W4DPez;zFi0@T~Wn&Qr`5rNXlia zDJl0KYd+mN)UBuwZAh47`Fg4wovX#7S_=<=`SdUVQkbcAX{1@yRnV|6t4NPIWN!1& z2oVP@NzY?7JWIbew(doHS4f+qK(d2I6`D3puY_~AzfV9>`;{yxDyw8bT44tfB(3C} zrmycpkih2L!4%bRd-1@zNm$6SIqx(7DX@ob0_tvvz^DaP?%eM7qryw(;c*0$r4y+z z<|?a{^2%VG$Zh%OJ-iwRZ}1i{3`@q=L|B0nHk2B`_rZn)T<# zB|=JW_>u)3%6V7#9(<>*k>sg^ZM9^pAcsS)QuSsRmCYi&SHwKopD5YYha9NjazG75 zF^6r`cRixV!5wPu1vNP=&yp@=YGyMEYfAk_)q#H8E!7cA;>r<{+x*OuJjY57TXcSB zmNe&eU_SyrK|-lW{yYP08qJQy|ldU^z20m}olq5Z~awNjj?# zPFmp?XO!v%YG)G&Z@zN=%!%XOhgxCndl(dAVc0O|j*=K8h@>orQPy3Ud-%Y+`BeiQ z99dt_J?cvN@xX?Gw1~^Md^eC`GJpKrlxo{y72h_S`7Wpm8qV~mRKrB9<}HL?Or0`% zx*L;r<<}ScQ>$G`vUfNBX|Qu>Ve~UgQ>s@gdEQ*}l2B;7lIPE?H)c=B&vL~+3w_ha z>7e$#>(C4k{>*CFXuyu+IDJl&9(ae99~TTC|8^nQe^>=8iBBn;(wPX}@;`i3ENmxy5SF(0KF78mkUsjoZhOiz1O+D7-n6Emm*7NG_&{ z9Y1Xa`+DcnJyzS74EWa|uV-t|4HAf(=unPl;0g9~ z3H6xq7mMD$SDLB6FJ+zvd)Rr|gP$NC5@V)Q0qfhWyw|2&iX|>`5uK@4y3TRr%hm+f zIY^4pc)_Jnt;C7naQL@NquP%M!>n9Nt}vy*FiW{KYK;j7*264aACHj2ub4qCbop5@ z+^hKultK%mmqwLZ)4Be_586))8*P+Q)I7rc!YdXy$5PG+9vUoPcNjauVzicHZ4(=d zu~T0L@13gNRzAAoWKRm6jiu^saa@D!AzY$M1qY++D!34tv4vPeNoXx1C5vNjql|kb zWRk}#4mtAc&tMMGBWcgRg|MzrGP$(#`Lr23`>DwxCfg7NP>NF2jA_}qEY+0L4C|jP zCEoSW1Ad%0Ox%V!w$Ljvq@~9F$RY;4SoVxqS!dE{@%FbM8xW0*_S2FZu@mJ+0`)kX zfQ{l`;t&h~iD|SPc6)RHSc6+(X9~)#p+F3^<58T*Bg=QHn)zu_9iFM7sz&#wc_6Pp(Y(rqk*16o= z`P+Pdar4}IUDpL&#(rjqYRn4zucr86UaDk_IvUUD8v>Z#T8HKnYZI^4$1>;BQ;1jLci+J7|*uTKG zxQp8UT&bqKF?c>|TZ8LmA*0|WOfVD}q#@-ljmyBh_g}TARN6@;<}WsnusNzF{b4PU ztVC+?jm%L^Pu3*Cw?zs9z43*Wn3L&IkRBa|WyvordN_84zF0f|YF0FYt@8A^FAw$_ z=}JnT5|*4!@A(@PPW)3a%rd#wMkc2#%(KkN>rT(ZB!KB|Vp7xq-FwS49&`$U*BMK4sAf>EFE%K4|D zsLx{x*(>h-ekbR!aZWUq3STT2?s|{jvE!b#$TeLXUVp%z5G>fKW~y&@h`_&krH)M_rZ z*-95VOBcIK3!qRa{f#VhO!$s_qW4{`Xh0-fe)%HH?B@;3Z=-BKh;bH1Z$P_|-tp_E z!>-*Rq>*rMh!HHu7(YVC`2)msn1HRP&*@;@4haks!DpMmCqE7(5aP;UHzBq)2lp30 zZ#Nt4w`$i2Oe~$_nT!@UJIbvO3s@uf{mOaYZy*@Ci+(Cot;OZ^%b3ODcfS?dBM8DJ zr%Me<3(QFiaYRbdX6o~*YyN`|0>cdLS{PF(7V3DOXLm7y&2fWLqQPPL@4SOyEc6w# zcXK%7>WNH&onscs*?1L7`kIs9@LHyn(Km0lu3Kx`U!N9cPO4@OZAJc?Q{OlqeGv+S z+*vu{r5%7MY#0}h}t0swU--~a|A~6u0*NpFcZ!mn)Q!a znSO3r_zjGbemAB0%7dx*@*gMnQ}ckVC?dy=;Qb3}g$ zsujK@SG)8z=FtXV12?_rDDp5Wq%r%MO`(TNTR0ka>uLIk&d8H-jZoFf+9Qefq*$4( z8!AHmSG0^LROU>u%;WTNOtDD!4jTD>LA}Db(`eABU5lpbkBqR1i;LJ~dqi@1e6nXQ zly0iKILXG_v>%Vuz%3RBF_qXSPMNZpS?;}*tlO<#|1j-CZC`ikk7onz64pd}Z zuKrP2{UZ2Xk8M# z!111%fM+@_htELTZXqm{dE+O;53%O{5A}rbyZNW;!T-V!wBUckZ^lpm_v-BxIK}FT zT>a;`&8+UlKwS#O6m2K8zY))rD&?pj%~>gxK&0bb5A&q~FM6HhAs<>h_lCK%!f#ED zg89mw;SYx28~(%xJKtT9X;zYXvb$cG>QplB&XLtG#T{}qC?#Gc8w|BU5PZX;X5ojr%Irp`K*&eqN$5F>EWS8izJNDCz5 zou0kwrZ+V{--SO}<8D#*MX1BxVrva#`}NmxVBa9t6br`-c{gNQHQ07;xcvOLsHkJQ zSW(!cx7s-36e}9tY>KUM7ZrUq>ZeeVmTaFGtf+6aqCL0nuxb!k<<`qDf4g0jY7AnJ z5Ni;9dF!`4^<5v?+R6IwSN(+8gt(PfAhbM$ur`Zs5n0LhVUqi z$gFE468Ak08uu8K1ozb3{=CViWSpHN%U{fND`gEzwvmpDl)#}FgR+%IM5%uHN-+G% zQ=2C=D#IF-a=04<0!2(+oj&=x|7Fyk>CNKWI)_fZ#=_+j2AMs={NA=sI%;Wb$4t@& z9|bn`hCw9(<2|z%EDPMB&{c82iRk;add^OIf8qA2Q($6hMd6Qwg^R4EH^dic5bfrM zV(VRhIJrITpg2>&%w2{gNSG`16iCGuI$XLXS;;UL#baUra7wjk8~s2vT|R6rVnm7i#5?oN^D~WWGbZC2rD(|K8FWmA69l5n_c*5X(~HHfL*#i_#~%($mt{e-*(=BP{~awp z*c$g)3zHQE1{9#*(63Q5HKZ5NG&DwFv&DCL;=3sET@Fp-#G=(;la6AJ(VBW%=i!Lc zn(*0kFv7;dpBKunM0zew=fZKC8Z_Q4zJNsp(it=jn|xf%3pWL~R%>fjE$BdW`5x_* ze(eo|+NrFT2a9AoPxDc$`*><5M|_aAH{tir9@?)ySOhv9@UWX`cEs=wmBFEgtX-wo zn0=h=iHENEJCJ{x#s& z0DKkLU*?oduyzgUH;$OwMvOO!`XC9l!(3h>L$J}>tHPubg>~tOe(gxdCE+Qg?-|j1 zM>??8ApO!sePF0#KnN>2WL-3(e{`hdES+225Vye%6973XN0d=Bfoh)1cAHtVSu&r8 z>~pDnc?n`&H<%^Cmv}Xw=TayAH!!S3iNbh~j83y8z93x&U)_`?VO;99>fN+@SPopP zeq2p>iC6P^)D%pPuL){D#H}e4W7l*Yx1MnnS6`_(WI}8#wlf1Kj~H^xV5*iQA57~d z`EbXDUd*i}7%~&?M$j^W9|BoXpBLCp%cIwnSiyF2ZtP9>k3DAmYGb@bCsg;JB{|%R;1~ zyQ@wnYoHcmDz&B^j(ubKv1$IFb+Y#a7K+647Xuw3wv^v&?HI1~c`pGP7QDn5!nL!5rx|D;mw=E#`<0 zIdM%3COC_MU$?r}R^*R%V zUQsld)n0Q{qdB_8tTLEmyyn>CxNukU7hEEiSQZeN&}g36Vvb928O)QMW+uUlHJ@fcv6V_`)i#f8<%o)s4UUPJE+;z#x6GWs>4vkf@RFVtcFR{g}ZZyXj%&}fG z8ago{7f4e~L8U-Pz$?5WvGHane_IwJGqe06GjDQfI5!UwZ+dvnkMt%M{QE7UJcm?b zBmnwLV+jOSR2=tHGl1~wE3MGvL7xCGYHduq)Rh11_B+`Qo*c{WNl$Vs&mg+xoJp)} zlCszVryvtF0}Id8vLy602~S}oiwaCG-u(4L2S#R3F%yhNC z9InrJ7C8{ehUXpMI}t${p&OPYF%i#VqMlECmQ|j?4#C?UJxKK85&}nOR&G3em*Pio zt35P+Sl$}5=5g3m#E-0uu6Z$BI~CrEG%Cc#2K`6Ek_*fbb-B?WpcR{aPUc7Y*ek|_ zu%#<$REW%aKwN3lnYlk8!~;S=WLCg?xEG4XI_8Nd@h&KF9BQRT12_b_=E<1mPZ6mo zIe~R8`It%nAr~ffL}Sos$+Mt1JWnssNnvxQUL2(`244U#f-0%QtoG8Tg&d3oPhHer z*u*7z7Qk;SaFEJIYEp(qi(niF3_Ywtk{Zq=Cr(MuxIVdLQu1vwdP;s6<~_2@h`bsBS7%!^